PowerShell : Scripting

De Justine's wiki
Version datée du 10 février 2019 à 15:51 par Justine (discussion | contributions) (Page créée avec « = 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 p... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

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"