PowerShell
Introduction à PowerShell
PowerShell est une plateforme permettant l’exécution de scripts, il a également la fonction d’interpréteur de commandes.
1. Présentation de PowerShell
Cette plateforme n’a cessé de s’enrichir et offre une multitude de jeux de commandes. Les commandes DOS peuvent également être utilisées avec la console PowerShell et ce à l’aide des alias (get-alias pour avoir la correspondance).
Depuis Windows Server 2008 R2 et Windows 7, PowerShell est directement intégré au système d’exploitation. Pour les plus anciens (Windows Vista, XP, 2008…), il est nécessaire de procéder à une installation. Notons également que certaines applications (par exemple : Microsoft Deployment Toolkit) nécessitent obligatoirement la présence de la plateforme PowerShell pour fonctionner.
2. La console PowerShell
La saisie des différentes commandes s’effectue par le biais de la console PowerShell. Cette dernière a un aspect graphique très proche d’une invite de commandes DOS.
L’autocomplétion d’un chemin, d’un nom de commande, etc. peut s’effectuer à l’aide de la touche [Tab]. Pour rappel, l’autocomplétion consiste à saisir le début d’une commande ou d’un chemin, le système tente de compléter...
Aide avec PowerShell
Nous avons tous à un moment donné saisi le fameux /? dans une console DOS, ceci nous permettant de récupérer la syntaxe de la commande et un descriptif des différents commutateurs.
Avec PowerShell, la syntaxe est quelque peu différente. En effet, l’aide s’affiche en saisissant l’instruction help commande.
Les fichiers d’aide peuvent aisément être mis à jour. Il est néanmoins nécessaire d’avoir des droits d’administrateur et de lancer la console en tant qu’administrateur.
Une connexion Internet est également nécessaire.
Cette opération s’effectue avec la commande update-help.
Cette mise à jour concerne uniquement les fichiers de la langue utilisée et du module actif. Si vous souhaitez mettre à jour le module dism alors que le module actif est AppLocker, il faut rajouter à la commande précédente le commutateur -Module dism.
Il est possible de déposer les fichiers d’aide sur un partage réseau afin que les postes qui ne sont pas raccordés à Internet puissent profiter de la mise à jour. L’opération va cette fois être scindée en deux parties (copie des fichiers sur un partage réseau et mise à jour des postes depuis ce partage réseau).
Pour effectuer cette opération, l’instruction...
La syntaxe PowerShell
Une commande est constituée d’un verbe et d’un nom séparés par un tiret (-). Le verbe a pour but de décrire l’action effectuée :
-
Get (obtenir une information)
-
Set (effectuer une action)
-
Add...
Le verbe est complété par un nom (Acl, etc.). Ce dernier constitue la commande.
Comme pour les commandes DOS, l’analyse de la syntaxe PowerShell n’est pas sensible à la casse.
1. Les commentaires
Comme dans tous langages de programmation, il est possible de placer des commentaires dans les scripts.
Pour différencier une instruction d’un commentaire, il faut utiliser le caractère dièse "#" en début de ligne. Ainsi la ligne est considérée comme commentaire.
De plus, l’ajout de commentaire après l’instruction peut être effectué.
Pour commenter un bloc entier, une syntaxe particulière doit être utilisée.
Les caractères <# doivent être insérés au début du bloc de commentaire puis, afin d’en marquer la fin, on insère les caractères #>.
La ligne mise en commentaire ne sera pas prise en compte par l’interpréteur de commandes.
2. Les guillemets
Il est nécessaire de délimiter les chaînes de caractères, ceci afin d’aider la compréhension de la syntaxe par l’analyseur...
Les boucles avec PowerShell
Les boucles sont très utiles dans un langage de programmation pour exécuter x fois une même action.
1. La boucle While
Ce type de boucle permet de répéter les instructions présentes dans la boucle tant que la condition est vérifiée (vraie).
Cette boucle s’écrit de la manière suivante :
While condition
{
Instruction1
Instruction 2
...
}
2. La boucle Do-While
Ce type de boucle est identique à la précédente, néanmoins le test est effectué à la fin.
La syntaxe est la suivante :
Do
{
Instruction1
Instruction 2
...
}
While condition
La boucle est obligatoirement exécutée au moins une fois, le test s’effectuant à la fin.
3. La boucle For
Ce type de boucle offre l’avantage de pouvoir déterminer le nombre de fois où le bloc d’instructions doit être exécuté. L’exécution est effectuée tant que la valeur indiquée au départ n’est pas atteinte. Le pas d’incrémentation est également déclaré.
La syntaxe de ce type de boucle est la suivante :
For (<Valeur Initiale> ; <Condition> ; <Increment>)
{
Instruction 1
Instruction 2
}
PowerShell V5
Avec l’arrivée de Windows Server 2016, une nouvelle version de PowerShell a vu le jour. Cette section présente quelques-unes de ces nouveautés.
Une nouvelle cmdlet, Write-Information, a été ajoutée. Elle permet de spécifier comment les flux d’information pour une commande sont traités. Les paramètres InformationVariable et InformationAction permettent de déterminer la manière dont les flux d’information sont affichés.
Il est maintenant possible de gérer les archives. En effet, un nouveau module le permettant a été intégré à la plateforme. Les mêmes opérations pouvaient être effectuées sur les anciennes versions mais nécessitaient l’ajout de modules développés par la communauté Microsoft.
Il est donc possible, et cela de manière native, de générer une archive (compress-archive) ou d’effectuer une extraction (expand-archive). Attention néanmoins, il est important de noter que seules les extensions zip sont gérées. L’opération de mise à jour (ajout d’un fichier dans l’archive) ainsi que le taux de compression peuvent être définis au moment de la génération.
La commande New-item a été enrichie, elle offre désormais la possibilité...