Powershell V5 pour windows 10, Windows Management Framework 5.1

Powershell 5 est installé par défaut sur votre système d’exploitation windows 10

Le dossier d’installation se trouve dans le répertoire suivant:

C:\Windows\System32\WindowsPowerShell\v1.0

Vous pouvez retrouver cette information avec une commande powershell:

$PsHome

Pour connaitre la version powershell installée exécutez la commande suivante:

$PSversionTable

ce n’est pas parceque vous voyez le dossier v1 que votre version powershell est en V1 …
Dans mon cas c’est la 5.1.15063.674

Pour Windows 7 Windows 8 et serveur 2012 vous pouvez téléchargez  Windows Management Framework 5 qui contient la version 5 de powershell
https://www.microsoft.com/en-us/download/details.aspx?id=50395

Infos diverses:
– PowerShell ISE est une version améliorée du powershell de base
– la gestion du copier/coller est plus simple sur PowerShell (par rapport à cmd.exe)
– Il est possible d’utiliser les commandes phonegap cordova avec la console PowerShell
à ce jour la dernière version est la Windows Management Framework 5.1

Powershell ISE:
– la mise en page se fait dans le menu Options

Pour modifier les couleurs selon les messages (erreurs etc…)

$configColor = (Get-Host).PrivateData

$configColor.ErrorForegroundColor    = « Red »
$configColor.ErrorBackgroundColor    = « Black »
$configColor.WarningForegroundColor  = « Yellow »
$configColor.WarningBackgroundColor  = « Black »
$configColor.DebugForegroundColor    = « Yellow »
$configColor.DebugBackgroundColor    = « Black »
$configColor.VerboseForegroundColor  = « Yellow »
$configColor.VerboseBackgroundColor  = « Black »
$configColor.ProgressForegroundColor = « Yellow »
$configColor.ProgressBackgroundColor = « DarkCyan »

Reset de la config des couleurs:
[Console]::ResetColor()
Set-PSReadlineOption -ResetTokenColors

Ouvrir powershell dans un dossier spécifique en ligne de commande:

powershell -NoExit -Command « Set-Location ‘d:\\dossier\sousdossier' »
powershell_ise -NoExit -Command « Set-Location ‘d:\\dossier\sousdossier' »

Equivalent de rm -rf (linux) pour powershell

rm .\dossier\ -Recurse -Force

Afficher l’historique des commandes utilisées dans la console

h
history
ghy

Répéter une commande de l’historique avec son id (exemple le 3 ème)

Invoke-History 3
ihy 3
r 3

Afficher la liste des variables d’environnement:

Get-ChildItem Env:
Dir Env
ls Env
gci Env

Récupérer le dernier fichier modifié du répertoire courant

(Get-ChildItem | Sort {$_.LastWriteTime} | select -last 1).name

Modifier la taille/largeur des lignes affichées sur la console

$psfenetre = (get-host).ui.rawui
$taille= $psfenetre .buffersize
$taille.width = 600
$psfenetre.buffersize = $taille

Raccourcis clavier pour supprimer la ligne courante

echap

Autoriser l’exécution des fichier script ps1 powersghell

Impossible de charger le fichier …ps1, car l’exécution de scripts est désactivée sur ce système. Pour plus d’informations, consultez about_Execution_Policies

Plusieurs solutions:
Désactiver pour un script

powershell -ExecutionPolicy unrestricted -Command « iex .monScript.ps1 »

Désactiver pour un utilisateur

Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser -Force
Désactiver définitivement sur le poste
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Force

Powershell recherche dans fichier avec conditions OR AND

Pour lire un fichier on utilise la commande suivante:
Get-Content (alias cat ou gc ou type)

Pour ajouter une condition on utilise la commande:
Where-Object (alias where ou ?)

Pour faire la recherche j’utilise les expressions régulières avec la commande:
-match

Enfin pour mettre du conditionnel
-or
-and

Ce qui donne

pour paginer l’affichage il suffit d’y ajouter derrière: