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. Les lecteurs 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

Les lecteurs Windows PowerShell

Les lecteurs Windows PowerShell et la navigation

Vous allez voir à travers ce chapitre l’ensemble des lecteurs Windows PowerShell auxquels vous avez accès avec l’interpréteur de commandes. Système de fichiers, registres, certificats sont, pour ne citer que ceux-là, des magasins de données accessibles avec Windows PowerShell. Dans chacun d’eux, il est possible de naviguer et d’y effectuer des actions sur les éléments qui les composent.

1. Qu’est-ce qu’un lecteur Windows PowerShell ?

Un lecteur Windows PowerShell est un emplacement de magasin de données, tel qu’un lecteur de système de fichiers. Cependant, les fournisseurs de Windows PowerShell créent par défaut plusieurs lecteurs sur différents magasins de données, et vous offrent ainsi la possibilité d’accéder aux lecteurs de système de fichiers (C:), les lecteurs de registres (HKCU: et HKLM:), le lecteur de certificats (Cert:), et plus encore. Dans tous ces lecteurs Windows PowerShell, l’ensemble des actions habituellement réalisées via l’interface graphique de Windows sont possibles en ligne de commandes.

Voici un tableau des lecteurs Windows PowerShell les plus importants :

Nom

Type

Chemin racine

C

Système de fichiers

C:\

Env

Variables d’environnement

 

HKCU

Registre

HKEY_CURRENT_USER

HKLM

Registre

HKEY_LOCAL_MACHINE

Et… il peut y en avoir d’autres ! En effet, les fournisseurs Windows PowerShell peuvent créer de nouveaux lecteurs à d’autres magasins de données. C’est le cas par exemple d’IIS (serveur web de Microsoft), que vous pouvez installer sur un poste de travail. Après avoir importé le module dédié, un nouveau lecteur Windows PowerShell sera alors créé et accessible (IIS:).

En tant qu’administrateur de postes de travail, savoir effectuer des opérations dans ces lecteurs Windows PowerShell est incontournable. Copier, déplacer, renommer, ou tout simplement supprimer des fichiers font partie des tâches courantes....

Le système de fichiers

Le système de fichiers permet le stockage des fichiers, et par conséquent des données. Ces fichiers peuvent être organisés dans un ou plusieurs dossiers, de façon hiérarchisée.

Deux types de cmdlets se distinguent : les cmdlets utilisées pour naviguer afin de se rendre dans un lecteur et/ou dans un dossier souhaité, et celles qui permettent de manipuler des objets (comme par exemple renommer un dossier, copier un fichier, etc.).

1. Les cmdlets dédiées à la navigation

Dans cette section, vous allez voir une grande majorité des cmdlets nécessaires à la navigation dans les lecteurs Windows PowerShell. Car désormais, avec Windows PowerShell, il n’y a plus de commandes spécifiques destinées à un seul type de lecteur. En effet, avec l’invite de commandes Windows, les commandes telles que cd, copy, ou encore delete, ne fonctionnent qu’avec le système de fichiers. La commande reg se destine quant à elle, uniquement à la base de registre Windows.

Avec Windows PowerShell, les cmdlets telles que Set-Location, Copy-Item ou encore Get-Content sont valables aussi bien dans le lecteur Windows PowerShell de type système de fichiers que dans celui du registre... et dans les autres lecteurs Windows PowerShell que nous avons mentionnés précédemment !

a. Get-Location

Get-Location permet simplement d’obtenir le répertoire actif au moment de l’exécution de la commande :

PS C:\Windows\system32> Get-Location 
 
Path 
---- 
C:\Windows\system32 

b. Set-Location

Tout administrateur système connaît la commande cd (Change Directory) de l’invite de commandes. Dans Windows PowerShell, si cd fonctionne encore, c’est en réalité grâce à un alias qui pointe vers la cmdlet Set-Location.

Ainsi, pour aller dans un dossier spécifique, écrivez :

PS C:\Windows\system32> Set-Location D:\ 
PS D:\> 

Si le chemin d’accès spécifié contient des espaces, il faut placer celui-ci entre guillemets (simple ou double) :

PS D:\> Set-Location 'C:\Program Files' 
PS C:\Program Files> 

Il est toujours possible d’utiliser des chemins relatifs : « . », « .. »...

La base de registre Windows (HKCU et HKLM)

Les cmdlets décrites précédemment permettent de naviguer, mais aussi d’effectuer des actions dans le système de fichiers. Mais elles ne se limitent pas seulement aux lecteurs de système de fichiers. En effet, c’est avec les mêmes cmdlets qu’il est possible d’interagir dans la base de registre de Windows. 

Chaque administrateur système connaît l’exécutable regedit.exe (Registry Editor), qui permet d’ouvrir l’interface graphique pour naviguer dans la base de registre de Windows, et d’y apporter des modifications (maintenance, comportement logiciel, réparation système, etc.).

Voici quelques exemples de commandes qui peuvent être exécutées dans Windows PowerShell.

Images/02EI02V496.png

L’Éditeur de Registre Windows

1. Se déplacer dans la base de registre

Outre naviguer dans le système de fichiers, il est possible de naviguer dans la base de registre, avec la commande Set-Location :

PS C:\Windows\system32> Set-Location HKCU: 
PS HKCU:\> 

Enfin, Get-ChildItem permet de lister l’ensemble des clés de registre présentes à la racine HKEY_CURRENT_USER, ainsi que l’ensemble des valeurs (colonne Property) incluses dans chacune d’entre elles :

PS HKCU:\> Get-ChildItem 
 
 
    Hive: HKEY_CURRENT_USER 
 
 
Name                         Property 
----                         -------- 
AppEvents 
Console                      HistoryNoDup           : 0 
                             FullScreen             : 0 
                             ScrollScale            :...

Les certificats

Au même titre que le système de fichiers et la base de registre, la gestion des certificats est possible via Windows PowerShell. Celle-ci a été grandement améliorée depuis Windows 8, avec la mise à disposition de cmdlets supplémentaires dédiées.

Images/02EI04V496.png

La console MMC avec le composant logiciel enfichable Certificats

1. Gérer les certificats avec Windows PowerShell

La gestion des certificats peut également se faire via Windows PowerShell. Grâce à l’accès au lecteur de certificats (Cert:), il est possible directement d’agir sur les certificats déjà présents, d’en rajouter, mais également de les supprimer. 

L’accès aux certificats avec Windows PowerShell se fait de la même façon que pour la base de registre :

PS C:\Windows\system32> Set-Location Cert:  
PS Cert:\> Get-ChildItem  
  
  
Location   : CurrentUser  
StoreNames : {Local NonRemovable Certificates, SmartCardRoot, Root Trust...} 
  
Location   : LocalMachine  
StoreNames : {TEstSignRoot, ClientAuthIssuer, OemEsim, Remote Desktop...} 

Comme le montre l’exemple de code précédent, il est possible de gérer l’ensemble des certificats qui concernent le poste de travail (LocalMachine), et ceux qui concernent l’utilisateur actuellement authentifié sur la machine (CurrentUser). Les exemples et les explications fournis dans cette section concernent les certificats machine.

Voici un aperçu des différents magasins de certificats :

PS Cert:\> Set-Location .\LocalMachine   
PS Cert:\LocalMachine> Get-ChildItem   
  
  
Name : TestSignRoot 
 
Name : ClientAuthIssuer 
 
Name : OemEsim 
 
Name : Remote Desktop 
 
Name : Root 
 
Name : PasspointTrustedRoot 
 
Name : TrustedDevice 
 
Name : CA 
 
Name : TrustedAppRoot 
 
Name : eSIM Certification Authorities 
 
Name : AuthRoot 
 
Name : Windows Live ID Token Issuer 
 
Name : TrustedPublisher 
 
Name : FlightRoot 
 
Name : TrustedPeople 
 
Name : My 
 
Name : SmartCardRoot ...

Web Services-Management

Le magasin de données WSMan contient quant à lui tous les paramètres liés à la gestion de Windows Remote Management (WinRM). Ce dernier étant l’implémentation du protocole de communication WS-Management.

La fonctionnalité PowerShell Remoting, apparue avec Windows PowerShell version 2.0, permet d’administrer une ou plusieurs machines distantes par le biais de WinRM.

Cependant, Windows PowerShell et sa fonctionnalité PowerShell Remoting ne sont pas les seuls à exploiter WinRM pour la gestion à distance des machines. Exchange Server, des outils de la gamme System Center, et bien plus encore l’utilisent.

Il se peut que vous ayez à effectuer des réglages avancés de WS-Management : l’ensemble de ses paramètres sont présents dans un lecteur dédié, appelé WSMan. Comme pour les autres lecteurs, vous pouvez y accéder par l’intermédiaire de la commande suivante :

PS C:\Windows\system32> Set-Location WSMan: 

Notez que pour accéder à WSMan, le service WinRM (Gestion à distance de Windows (Gestion WSM)) doit être démarré, et vous devez également posséder les droits administrateur lors du lancement de la console Windows PowerShell.

PS WSMan:\> cd .\localhost\ 
PS WSMan:\localhost> ls 
 
 ...

Internet Information Services (IIS)

IIS est un serveur web développé par Microsoft. Il est disponible dans Windows sous la forme d’une fonctionnalité à installer : ouvrez le Panneau de configuration, sélectionnez Programmes et fonctionnalités (catégorie Programmes), puis dans le menu de gauche, sélectionnez Activer ou désactiver des fonctionnalités Windows. La fonctionnalité à sélectionner se nomme Internet Information Services.

Images/02EI05V496.png

Ajout du composant IIS dans les fonctionnalités Windows

Une fois le composant installé, vous avez accès au Gestionnaire des services Internet (IIS) en saisissant inetmgr.exe, soit en utilisant la recherche Windows (raccourci-clavier [Windows] S) ou par la fenêtre Exécuter (raccourci-clavier [Windows] R). Ce gestionnaire est l’outil permettant la gestion et la configuration des différents sites web hébergés sur votre poste.

Images/02EI06V496.png

Le Gestionnaire des services Internet (IIS)

Voyons ensemble comment gérer ce service avec Windows PowerShell. De la gestion des sites à la configuration des paramètres, l’ensemble est accessible via un lecteur Windows PowerShell. Pour commencer, il faut importer le module WebAdministration pour avoir accès au lecteur de IIS, ainsi qu’à toutes les cmdlets permettant la gestion du serveur web. Pour procéder à cela, il faut passer par la cmdlet Import-Module :

PS C:\Windows\system32> Import-Module WebAdministration 

Pour savoir si le module est bien chargé, vous pouvez utiliser la cmdlet Get-Module. Cette commande retourne en résultat les modules qui sont chargés dans Windows PowerShell.

PS C:\Windows\system32> Get-Module  
 
ModuleType Version    Name                                ExportedCommands  
---------- -------    ----                                ---------------- 
Binary     1.0.0.0    CimCmdlets                          {Export-BinaryMiLog... ...