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 PowerShell
  3. Présentation de Windows PowerShell
Extrait - Windows PowerShell Administration de postes clients Windows (4e édition)
Extraits du livre
Windows PowerShell Administration de postes clients Windows (4e édition)
1 avis
Revenir à la page d'achat du livre

Présentation de Windows PowerShell

Introduction

Le nom de code « Monad » fait son apparition en septembre 2003, lors de la PDC (Professional Developers Conference), une conférence annuelle organisée par Microsoft (renommée //build/ en 2011). Derrière ce nom de code, se cache en réalité le futur Windows PowerShell, tel que nous le connaissons aujourd’hui. C’est trois années plus tard, en 2006, que Windows PowerShell sort en version finale. Mis à disposition pour Windows XP et Windows Server 2003, il faut alors le télécharger sur Internet et l’installer pour pourvoir utiliser Windows PowerShell sur ces systèmes d’exploitation.

Mais pour interagir avec ce nouvel outil dédié à l’administration des machines, il faut apprendre les nouvelles commandelettes, car les commandes sont quelque peu différentes en comparaison avec l’invite de commandes fournie depuis Windows 95. Il faut donc réapprendre le langage et les syntaxes. Également, l’absence d’un éditeur de script dans la première version de Windows PowerShell freine l’engouement pour cet outil.

C’est à partir de la version 2.0 de Windows PowerShell que les manques sont comblés : un environnement d’écriture de script est développé par Microsoft, mais en plus l’interpréteur de commandes est installé par défaut avec Windows 7 et Windows Server 2008 R2. Conjointement avec le succès de Windows 7, aussi...

Qu’est-ce que Windows PowerShell ?

Windows PowerShell est un interpréteur de commandes, orienté pour l’administration système des produits Microsoft. Si dans ce livre vous allez voir l’administration système pour Windows, il faut savoir que Windows PowerShell ne se limite pas seulement aux systèmes d’exploitation orientés client. Aujourd’hui, c’est l’ensemble des produits édités par la société de Redmond qui sont administrables par PowerShell : les produits orientés serveur comme Windows Server, Exchange Server, etc., mais aussi cloud avec Azure et Microsoft 365.

Microsoft a entrepris aux alentours des années 2004 et 2005 de revoir sa stratégie pour l’administration système de ses produits. Car dorénavant, tout ce que vous pouvez faire via l’interface graphique est possible via Windows PowerShell... et plus encore !

L’interface graphique de Windows, qui a contribué à son succès, est désormais limitée en comparaison des possibilités offertes par Windows PowerShell. Ce dernier prend même le dessus dans la gamme Windows Server : depuis la version 2012, l’installation de Windows Server proposée par défaut est celle sans interface graphique. L’ensemble de la gestion se fait alors en ligne de commande avec Windows PowerShell....

Et les scripts, dans tout ça ?

Que diriez-vous si vous pouviez automatiser toutes les tâches d’administration sur l’ensemble des postes de travail présents dans votre entreprise ? Et le tout, sans jamais quitter votre bureau. Imaginez cela sur un parc d’ordinateurs de plus de dix mille postes, avec parfois des contraintes de langue d’interface, de périphérique d’entrée (claviers AZERTY, QWERTY...), ou plus simplement de décalage horaire.

Windows PowerShell peut faire abstraction de toutes ces contraintes et automatiser l’ensemble de vos tâches sur un nombre indéfini de postes de travail. Le temps gagné est simplement faramineux comparé au temps qui sera pris pour l’élaboration de ces scripts.

L’intérêt des scripts ne se limite pas à un gain de temps. Ils permettent également d’approfondir vos connaissances dans les syntaxes Windows PowerShell, mais aussi de réduire les risques et d’augmenter la qualité et l’efficacité des actions effectuées sur les systèmes d’information : un script exécute l’ensemble des commandes qui sont écrites, alors que si vous effectuez les mêmes opérations manuellement des dizaines voire des centaines de fois (généralement avec l’aide de personnes supplémentaires)...

La syntaxe de Windows PowerShell

Le langage PowerShell est constitué de commandelettes (nous utiliserons dans ce livre l’abréviation cmdlets). Ce sont des commandes décrites sous la forme d’un verbe puis d’un nom séparé d’un tiret. Pour vous donner un exemple, voici quelques cmdlets :

Cmdlet

Description

New-Item

Créer (New) un nouvel objet (Item).

Get-Service

Obtenir (Get) les informations liées aux services (Service) Windows.

Set-ExecutionPolicy

Définir (Set) la politique d’exécution (ExecutionPolicy) de vos scripts PowerShell.

Au fur et à mesure des versions de Windows PowerShell, ce dernier a été agrémenté de nouvelles fonctionnalités : PowerShell Remoting (administration à distance), Windows PowerShell ISE et Script Debugging (permettant le débogage de script et l’exécution de ligne de commande pas à pas), Session Connectivity (établissement d’une session sur un poste distant), Help Update (mise à jour des documentations des commandes), mais également de nouveaux paramètres aux cmdlets déjà existantes. Ceci n’est qu’un aperçu de l’évolution de Windows PowerShell depuis la version 1.0.

Pour vous donner une idée des cmdlets possibles sur votre poste de travail, ouvrez une fenêtre Windows PowerShell et exécutez la ligne de commande suivante :

PS C:\Windows\system32> Get-Command 
 
CommandType    Name                                      Version   Source  
-----------    ----                                      -------   ------  
Alias          Add-AppPackage                            2.0.1.0   Appx 
Alias          Add-AppPackageVolume                      2.0.1.0   Appx 
Alias          Add-AppProvisionedPackage                 3.0       Dism 
Alias          Add-ProvisionedAppPackage                 3.0       Dism 
Alias          Add-ProvisionedAppSharedPackageContainer  3.0       Dism 
Alias          Add-ProvisionedAppxPackage                3.0       Dism 
Alias          Add-ProvisioningPackage                   3.0       Provisioning 
Alias          Add-TrustedProvisioningCertificate        3.0       Provisioning 
Alias          Apply-WindowsUnattend                     3.0       Dism 
Alias          Disable-PhysicalDiskIndication            2.0.0.0   Storage ...

Les différentes versions de Windows PowerShell

À ce jour, il existe sept versions majeures de Windows PowerShell. Voici un résumé de chacune de ces versions, et les principales nouveautés qu’elles apportent.

1. Version 1.0

Windows PowerShell apparaît dans sa version finale en 2006. Il est réalisé pour les systèmes d’exploitation Windows XP, Windows Vista et Windows Server 2003. Il est également intégré dans Windows Server 2008 sous la forme d’une fonctionnalité à installer.

Cette première version permet déjà de gérer plusieurs types d’objets : .NET, COM, Active Directory, WMI... en plus des cmdlets de base pour la manipulation d’objets tels que des fichiers, clés de registre, etc.

2. Version 2.0

La version 2.0 est intégrée à Windows 7 et Windows Server 2008 R2. Installé par défaut sur ces systèmes d’exploitation, Windows PowerShell est alors directement disponible en cliquant sur le bouton Démarrer, puis dans Tous les programmes, Accessoires, Windows PowerShell.

Cette nouvelle version apporte un nombre conséquent de cmdlets, et des fonctionnalités non négligeables, comme l’administration des machines à distance (PowerShell Remoting). Mais ce n’est pas tout, car elle intègre également un environnement et un éditeur de script : Windows PowerShell Integrated Scripting Environment (ISE) qui manquait considérablement à la version 1.0. Windows PowerShell ISE apporte une plus grande facilité pour l’écriture de scripts, et des outils de développement comme le débogueur.

Images/01EI05V496.png

Windows PowerShell ISE

Cette version commence donc à être intéressante d’un point de vue technique, mais également d’un point de vue scripting, grâce à l’éditeur de script.

3. Version 3.0

La version 3.0 de Windows PowerShell est quant à elle intégrée par défaut dans Windows 8 et Windows Server 2012. Microsoft a également à disposition les packages pour pouvoir l’installer sur Windows 7, Windows Server 2008 et Windows Server 2008 R2.

Cette version apporte son lot de nouveautés : amélioration de l’administration des machines à distance, planification d’exécution, mise à jour de la documentation par Internet... et bien entendu de nouvelles cmdlets.

4. Version 4.0

La version 4.0 de Windows PowerShell, livrée avec Windows 8.1 et Windows Server 2012 R2, inclut de nouvelles cmdlets, mais améliore également celles déjà existantes en proposant davantage de paramètres. Cette version est également disponible pour les systèmes d’exploitation suivants : Windows 7, Windows Server 2008 R2 et Windows Server 2012.

5. Version 5.0 et 5.1

La version 5.0 est livrée avec Windows 10 lors de sa sortie en 2015. Cette nouvelle version apporte de nombreuses nouveautés, comme la manipulation de fichiers d’archives ZIP ou la gestion des packages (permettant de trouver des packages logiciels sur des dépôts et de les installer sur les postes). De nouvelles cmdlets sont également à l’ordre du jour, offrant ainsi toujours plus de possibilités sur la gestion du poste de travail.

Version 5.1

Cette mise à jour mineure de la version 5 de Windows PowerShell a fait son apparition avec la mise à jour Anniversary Update (nom de code Redstone 1) de Windows 10, puis avec la sortie officielle de Windows Server 2016. Pour les versions précédentes de Windows et Windows Server, le package de mise à jour du Windows Management Framework est publié le 19 janvier 2017.

La version 5.1 apporte des nouveautés...

Connaître la version de PowerShell installée

Étant donné les différentes versions de PowerShell existant à ce jour, et les nouveautés qu’elles apportent, il est important de connaître la version de Windows PowerShell qui est installée sur le poste de travail.

Pour cela, une fois l’interface de Windows PowerShell ouverte, vous pouvez exécuter la ligne de commande suivante, à savoir $PSVersionTable qui retourne alors le contenu de la variable :

PS C:\Windows\system32> $PSVersionTable  
  
Name                          Value 
----                          ----- 
PSVersion                     5.1.22621.963 
PSEdition                     Desktop 
PSCompatibleVersions          {1.0, 2.0, 3.0, 4.0...} 
BuildVersion                  10.0.22321.963 
CLRVersion                    4.0.30319.42000 
WSManStackVersion             3.0 
PSRemotingProtocolVersion     2.3 
SerializationVersion          1.1.0.1 

Comme vous pouvez le voir, il s’agit ici de PowerShell en version 5.1 (valeur représentée par PSVersion). Il s’agit en l’occurrence de Windows PowerShell, car la valeur de PSEdition est Desktop.

Si cette commande vous retourne une erreur, c’est que la version de PowerShell présente sur votre poste de travail est la version 1.0. En effet, la variable $PSVersionTable est apparue à partir de la version 2.0. Celle-ci est définie automatiquement à chaque lancement de Windows PowerShell.

À titre d’exemple, voici le résultat d’une requête $PSVersionTable depuis une console PowerShell 7 :

PS C:\Program Files\PowerShell\7> $PSVersionTable   
   
Name                          Value  
----                          -----  
PSVersion                     7.3.4  
PSEdition                     Core  
GitCommitId                   7.3.4 
OS                            Microsoft Windows 10.0.18363  
Platform                      Win32NT  
PSCompatibleVersions          {1.0, 2.0, 3.0, 4.0...}  
PSRemotingProtocolVersion     2.3  
SerializationVersion          1.1.0.1 
WSManStackVersion             3.0 

Ici, la valeur de PSEdition est Core, qui ne laisse aucun doute sur l’édition de PowerShell utilisée : PowerShell Core, ou plus simplement PowerShell !

Voici une seconde méthode pour récupérer...