Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! Découvrez la Bibliothèque Numérique ENI. Cliquez ici

PowerShell et les scripts

Introduction

Nous avons vu dans le chapitre PowerShell, un langage de cmdlets que PowerShell est un langage de commandes ou plutôt de cmdlets formant des commandes. Nous avons également vu dans le chapitre Scripting et automatisation que PowerShell est un langage de script.

Nous allons maintenant aborder la notion de script, qui permettra de regrouper différentes commandes afin d’automatiser des actions.

Qu’est-ce qu’un script ?

Avant de parler de la création de scripts, il convient de définir ce qu’est un script en termes PowerShell.

Le mot script peut avoir plusieurs sens.

Dans le monde audiovisuel par exemple, un script correspond à un document regroupant tous les éléments d’un film (éléments de l’histoire, présentation et description des personnages et lieux, ou encore toutes les informations liées au tournage).

Avec PowerShell et de façon générale dans la programmation, un script permettra de regrouper vos commandes afin de les exécuter dans un ordre bien précis. Cet ordre est défini par PowerShell, qui agit de manière séquentielle. Ainsi, toutes les commandes contenues dans un script PowerShell seront exécutées les unes à la suite des autres.

Un script est en fait un simple fichier texte contenant une ou plusieurs commandes. Il ne s’agit bien entendu pas d’un fichier ayant pour extension .txt (pour texte), mais bien une extension propre à PowerShell. La création et l’enregistrement d’un script PowerShell permettra de l’exécuter afin d’implémenter, résoudre, modifier quelque chose et de le partager ou le planifier facilement. 

La partie exécution de script sera abordée dans le chapitre Exécution de scripts.

Format d’un script

Comme mentionné précédemment, un script PowerShell est un fichier texte mais ayant une extension propre à PowerShell.

Il existe différentes extensions liées à PowerShell :

  • PS1 : extension standard des scripts PowerShell.

  • PSM1 : extension liée à l’utilisation d’un module PowerShell.

  • PSD1 : extension liée à l’utilisation d’un module PowerShell, ce format permet de stocker des données spécifiques à un module ou un script.

L’extension standard est donc PS1.

Pourquoi cette extension PS1 ?

L’extension PS1 correspond à la version 1 de PowerShell :

  • PS pour PowerShell.

  • 1 pour la version de PowerShell.

L’idée était ensuite de garder ce nommage même en passant vers de nouvelles versions.

Plus d’informations ci-dessous : https://devblogs.microsoft.com/powershell/ctp-versioning/

Comme avec tous les programmes dans un environnement Windows, l’exécution d’un programme peut se faire en fonction de son extension. Ainsi, ce ne sera pas le même programme qui ira ouvrir Microsoft Word, Excel, Outlook ou PowerShell.

Pour visualiser cela, procédez comme suit :

 Dans la barre de recherche du menu Démarrer, saisissez « Programmes ».

 Cliquez sur Applications par défaut.

images/09RI01.png

 Dans la page vers le bas, cliquez sur Choisir les applications par défaut par type de fichier.

images/09RI02.png

 Naviguez jusqu’à .ps1.

images/09RI03.png

Nous avons donc ici la liste des programmes qui iront ouvrir par défaut les fichiers PowerShell en fonction de leur extension.

Créer un script

La création d’un script PowerShell peut se faire en utilisant différents outils.

La liste des outils permettant de créer et d’éditer des scripts PowerShell est disponible dans le chapitre Les outils PowerShell.

Nous utiliserons ici Notepad++ et PowerShell ISE.

1. Notre script

Le script que nous créerons sera le suivant :

$Choix = Read-Host "Souhaitez-vous continuer (Oui/Non) ?" 
write-host "Votre choix est : $Choix" 
 
If($Choix -eq "Oui") 
    { 
           write-host "Nous continuons" 
           $Chiffre = Read-Host "Saisissez un chiffre entre 2 et 10:" 
           write-host "Votre choix est: $Chiffre" 
           For($i=1; $i -le $Chiffre; $i++) 
                 { 
                        $i 
                 } 
    } 
Else 
    { 
           write-host "On ne continue pas" 
    } 

Ce script simple effectuera les actions suivantes :

  • Afficher un message : "Souhaitez-vous continuer ?"

  • L’utilisateur doit saisir sa réponse.

  • Si non, on arrête.

  • Si oui, on demande un chiffre entre 2 et 10.

  • En fonction du chiffre saisi, on affiche...