Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Windows Server 2022
  3. PowerShell
Extrait - Windows Server 2022 Les bases indispensables pour administrer et configurer votre serveur
Extraits du livre
Windows Server 2022 Les bases indispensables pour administrer et configurer votre serveur
4 avis
Revenir à la page d'achat du livre

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.

images/R18RI01.png

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 la suite.

Enfin, la combinaison [Ctrl] C ou [Ctrl][Pause] permet de mettre fin à l’exécution de l’instruction courante pour la première combinaison et de mettre fin à l’exécution de la console pour la seconde.

3. La console Windows PowerShell ISE

Cette console facilite la création de scripts PowerShell. Il est donc possible pour ceux qui le souhaitent et d’effectuer la création de scripts à l’aide...

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.

images/R18RI03.png

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.

images/R18RI04.png

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 suivante doit être utilisée : Save-Help -DestinationPath CheminUNC -Force

Enfin, il est nécessaire d’exécuter sur les postes la commande suivante : Update-Help -SourcePath "CheminUNC" -force

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

images/R18RI05.png

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

images/R18RI06.png

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 syntaxique. Les guillemets (") sont généralement utilisés pour effectuer cette opération. Cette règle s’applique également à PowerShell.

Néanmoins, deux méthodes peuvent être utilisées pour délimiter une chaîne de caractères.

  • Les guillemets doubles " " qui permettent la substitution de variable.

images/R18RI07.png
  • Les guillemets simples ’ laissent le texte tel quel.

  • Reprenons...

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é de créer des raccourcis. Pour cela, le type symboliclink doit être utilisé.

Comme pour Office, PowerShell est maintenant "gérable" par l’intermédiaire de stratégies de groupe. Un fichier ADMX est présent dans le système d’exploitation et donne accès à quelques paramètres.