PowerShell : Scripting
Prérequis
L'outil de scripting de PowerShell s'appelle : "Powershell ISE".
Les commentaires se font avec #
Politique d'exécution
La politique d'exécution pour Windows PowerShell détermine comment vous pouvez exécuter les fichiers de configuration et les scripts. Pour connaitre la politique d’exécution actuelle il faut exécuter Get-ExecutionPolicy.
Pour modifier la politique d'exécution, la commande Set-ExecutionPolicy avec la politique souhaitée. Les politiques disponibles sont :
- Restricted
- AllSigned
- RemoteSigned
- Unrestricted
Pour la suite des exemples données ici nous utiliserons la politique "Unrestricted" (À faire en tant qu'administrateur). ELle permet de lancer n'importe quel script sur l'ordinateur.
Variables
Attributs
PS est un langage objet : il est donc possible et même intéressant de regarder les attributs.
Exemples :
- New-Item exemple.txt –Type File
- $fic = Get-ChildItem exemple.txt
- $fic.name
- $fic.extension
- $fic.length
- $fic.LastTimeAccess
- $fic.delete()
$? : Contient truesi la dernière opération à réussie et false si elle a échouée.
$_ : Stocke l'objet courant dans un ensemble d’objet du pipeline.
$home : Stocke le chemin complet du répertoire de l'utilisateur.
Simple quotes, doubles quotes
Vous pouvez placer les chaînes entre guillemets simples (' ') ou des guillemets doubles (" ").Lorsque vous placez une chaîne en single-quotation, la chaîne est passée à la commande exactement comme vous le tapez.
Exemples avec $varA = 200
- Write-Host 'The value of $varA is $varA.'
Renvoie : The value of $varAis $varA.
- Write-Host "The value of $varA is $varA."
Renvoie : The value of 200 is 200.
Tableaux ( ~ Équivalent des listes en python)
Nous avons des tableaux à une dimension ou bien à plusieurs dimensions.Pour déclarer et initialiser un tableau il faut indiquer le nom du tableau précédé de $puis des valeurs du tableau:
$tab = @(20,30,40)
$tab[0] #Pour l’accès aux valeurs il faut indiquer l’indice. Retourne 20
$tab[1]#Retourne 30
$tab[1]=60 #Affecte la valeur 60 à l’indice 1 du tableau
$tab[1]#Retourne 60 (a remplacé 30 dans le tableau)
$tab.length #Renvoie la longueur du tableau
Opérateurs
Les opérateurs sont :
- -eq : Equal
- -ne : Not Equal
- -gt : Greater Than
- -lt : Lesser Than
Conditions
If
Exemple 1 :
$mavar = "lpasr" if($mavar -eq "lpasr"){ Write-Host "Ok!" }
Exemple 2 :
$mavar= 10 if($mavar–gt5){ #Si $mavarest plus grand #que 5 on rentre dans la condition Write-Host “Ok!” }
Boucles
for ($i=0;$i -lt 6;$i++){ #On initialise $i à 0 pour $i allant de 0 à 5 on rentre dans la boucle puis l’incrémente de 1 Write-host $i # Résultat : 0,1,2,3,4,5 }
$tab = “je”,”suis”,”heureux” foreach($item in $tab){ #On parcours les éléments d’une liste/tableau et on les affiche Write-host $item }
Fonctions
Pour créer une fonction, tapez le mot functionsuivi d'un nom pour la fonction. Tapez le texte de votre commande, et vous l'enfermez dans des accolades ({}). La syntaxe de base pour l'utilisation de paramètres avec les fonctions est :
function FunctionName{ param($Parameter1Name, $Parameter2Name, ...) Commandes }
Exemple :
function Get-USB{ Param($description) $noms_usb= get-wmiobjectwin32_logicaldisk foreach($nom in $noms_usb){ if($nom.VolumeName-eq$description){ write-host $nom.deviceID } } } Get-USB "TEST"