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...
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...
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
}
} ...