Blog ENI : Toute la veille numérique !
Jusqu'à ce soir ! : -25€ dès 75€ sur les livres en ligne, vidéos... code FUSEE25. J'en profite !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici

Les conditions

Qu’est-ce qu’une condition ?

Une condition, également appelée « structure conditionnelle », permettra de rendre vos scripts performants dans n’importe quel cas.

L’écriture d’un script PowerShell peut parfois s’apparenter à une enquête policière.

Lors d’une enquête policière, avant d’arriver au résultat final et de trouver un coupable, il faut passer par différentes étapes. Il faut analyser différents aspects, tels que l’emploi du temps des suspects, leur mobile, leur relation avec la victime…

On peut donc faire un schéma du type :

  • si telle personne n’arrive pas à justifier son emploi du temps au moment du crime,

  • si cette personne était en relation avec la victime,

  • si cette personne avait des raisons d’en vouloir à la victime,

  • alors nous tenons probablement le coupable,

  • sinon ce n’est probablement elle.

Le schéma se compose alors de si ça, si ça, sinon si ça, alors, ce que l’on appelle dans le langage informatique « algorithmie des structures conditionnelles » ou tout simplement conditions.

Pourquoi les utiliser ?

L’utilisation des conditions est importante dans l’écriture d’un script.

Cela permettra de les rendre performants et de pallier toutes les situations non souhaitées en ajoutant ce que l’on peut appeler des garde-fous.

Par exemple, nous souhaitons exécuter une action sur tous les postes, mais il faut tout d’abord vérifier que celle-ci n’a pas déjà été réalisée. Nous voulons également que cette action soit exécutée uniquement sur certains postes comme des ordinateurs portables et non des postes fixes. Enfin, cette action doit être exécutée uniquement si la session utilisateur est ouverte.

Une condition ou structure conditionnelle permettra d’orienter votre script ou code vers tel ou tel bloc d’instructions.

Prenons l’exemple suivant :

Nous souhaitons afficher une notification à l’utilisateur si une mise à jour Windows a été installée sur son poste mais que ce dernier n’a pas encore été redémarré (ce qui retarde l’installation complète de la mise à jour). Lorsque cette notification s’affiche, un fichier texte est créé sur le disque permettant d’indiquer que le script a déjà détecté ce cas. Lors de la prochaine exécution, le script...

Les différentes instructions

1. Condition simple : If

a. Fonctionnement

Cette structure conditionnelle est la base des vérifications en langage PowerShell. Elle se traduit par « si ».

Comme évoqué au chapitre Comment s’améliorer, pour apprendre PowerShell il est important de maîtriser un minimum d’anglais technique.

La structure du If se présente de la manière suivante : « Si (votre condition) est vraie, alors nous faisons cela. » La partie « nous faisons cela » se traduit par deux accolades {} (ouverte et fermée).

b. Structure

Ci-dessous la structure en termes de code :

If(votre condition) 
    { 
           Code à exécuter dans le cas présent 
    } 

c. La condition If en exemple

Prenons l’exemple suivant :

Nous souhaitons vérifier si un dossier existe (ici C:\Windows\Debug).

Si oui, nous afficherons le texte : "Le dossier existe".

Pour vérifier l’existence du dossier, nous utiliserons la cmdlet Test-Path.

Test-Path "C:\Windows\Debug" 

Vous trouverez davantage d’informations sur cette cmdlet dans le chapitre Les cmdlets indispensables.

Le code complet avec la structure conditionnelle If sera le suivant (plusieurs possibilités d’écriture existent :

If((test-path "C:\Windows\Debug") -eq $True) 
    { 
           write-host "Le dossier existe" 
    } 
 
If(test-path "C:\Windows\Debug") 
    { 
           write-host "Le dossier existe" 
    } 
 
$Test_dossier = test-path "C:\Windows\Debug" 
If($Test_dossier) 
    { 
           write-host "Le dossier existe" 
    } 

Ci-dessous le résultat :

images/16RI01.png

2. Si/Sinon : If/Else

a. Fonctionnement

La structure conditionnelle du If/Else est similaire au If, nous allons juste ajouter un bloc...