Gestion des lecteurs PowerShell

Cet exemple s’applique uniquement aux plateformes Windows.

Un lecteur PowerShell est un emplacement de magasin de données auquel vous pouvez accéder, au même titre qu’un lecteur du système de fichiers dans PowerShell. Les fournisseurs PowerShell créent pour vous certains lecteurs, comme les lecteurs du système de fichiers (y compris C: et D:), les lecteurs de Registre (HKCU: et HKLM:) et le lecteur de certificat (Cert:). Vous pouvez également créer vos propres lecteurs PowerShell. Ces lecteurs sont utiles, mais ils ne sont disponibles que dans PowerShell. Vous ne pouvez pas y accéder à l’aide d’autres outils Windows, tels que l’Explorateur de fichiers ou Cmd.exe.

Les commandes associées aux lecteurs PowerShell comportent le mot PSDrive dans leur intitulé. Pour obtenir la liste des lecteurs PowerShell dans votre session PowerShell, utilisez l’applet de commande Get-PSDrive.

Get-PSDrive
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
A          FileSystem    A:\
Alias      Alias
C          FileSystem    C:\                                 ...And Settings\me
cert       Certificate   \
D          FileSystem    D:\
Env        Environment
Function   Function
HKCU       Registry      HKEY_CURRENT_USER
HKLM       Registry      HKEY_LOCAL_MACHINE
Variable   Variable

Bien que les lecteurs répertoriés varient en fonction des lecteurs de votre système, les vôtres doivent être similaires à la sortie de la commande Get-PSDrive ci-dessus.

Les lecteurs du système de fichiers sont un sous-ensemble des lecteurs PowerShell. Les lecteurs du système de fichiers sont identifiés par l’entrée FileSystem dans la colonne Provider. Les lecteurs de système de fichiers dans PowerShell sont pris en charge par le fournisseur de système de fichiers PowerShell.

Pour afficher la syntaxe de l'applet de commande Get-PSDrive, tapez une commande Get-Command avec le paramètre Syntax :

Get-Command -Name Get-PSDrive -Syntax
Get-PSDrive [[-Name] <String[]>] [-Scope <String>] [-PSProvider <String[]>] [-V
erbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-
OutVariable <String>] [-OutBuffer <Int32>]

Le paramètre PSProvider permet d’afficher uniquement les lecteurs PowerShell pris en charge par un fournisseur particulier. Par exemple, pour afficher uniquement les lecteurs pris en charge par le fournisseur FileSystem de PowerShell, tapez une commande Get-PSDrive avec le paramètre PSProvider et la valeur FileSystem :

Get-PSDrive -PSProvider FileSystem
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
A          FileSystem    A:\
C          FileSystem    C:\                           ...nd Settings\PowerUser
D          FileSystem    D:\

Pour afficher les lecteurs PowerShell qui représentent les ruches du Registre, utilisez le paramètre PSProvider pour afficher uniquement les lecteurs PowerShell pris en charge par le fournisseur de Registre de PowerShell :

Get-PSDrive -PSProvider Registry
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
HKCU       Registry      HKEY_CURRENT_USER
HKLM       Registry      HKEY_LOCAL_MACHINE

Vous pouvez également utiliser les applets de commande Location standard avec les lecteurs PowerShell :

Set-Location HKLM:\SOFTWARE
Push-Location .\Microsoft
Get-Location
Path
----
HKLM:\SOFTWARE\Microsoft

Ajout de nouveaux lecteurs PowerShell

Vous pouvez ajouter vos propres lecteurs PowerShell à l’aide de la commande New-PSDrive. Pour obtenir la syntaxe de l'applet de commande New-PSDrive, entrez la commande Get-Command avec le paramètre Syntax :

Get-Command -Name New-PSDrive -Syntax
New-[-Description <String>] [-Scope <String>] [-Credential <PSCredential>] [-Verbose] [-Debug ]
[-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <St ring>]
[-OutBuffer <Int32>] [-WhatIf] [-Confirm]

Pour créer un lecteur PowerShell, vous devez spécifier trois paramètres :

  • le nom du lecteur (vous pouvez utiliser n’importe quel nom PowerShell valide) ;
  • PSProvider : utilisez FileSystem pour les emplacements du système de fichiers et Registry pour les emplacements du Registre
  • la racine, c'est-à-dire le chemin d'accès à la racine du nouveau lecteur.

Par exemple, vous pouvez créer un lecteur nommé Office qui est mappé au dossier contenant les applications Microsoft Office sur votre ordinateur, par exemple C:\Program Files\MicrosoftOffice\OFFICE11. Pour créer le lecteur, tapez la commande suivante :

New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Microsoft Office\OFFICE11"
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
Office     FileSystem    C:\Program Files\Microsoft Offic...

Notes

En général, les chemins d’accès ne respectent pas la casse.

Un lecteur PowerShell est accessible à l’aide de son nom suivi d’un signe deux-points (:).

Un lecteur PowerShell peut simplifier de nombreuses tâches. Par exemple, certaines clés importantes dans le Registre Windows ont des chemins d'accès tellement longs qu'il est difficile d'y accéder et de s'en souvenir. Les informations de configuration critiques résident sous HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. Pour afficher et modifier des éléments dans la clé de Registre CurrentVersion, vous pouvez créer un lecteur PowerShell ayant pour racine cette clé en tapant :

New-PSDrive -Name cvkey -PSProvider Registry -Root HKLM\Software\Microsoft\Windows\CurrentVersion
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
cvkey      Registry      HKLM\Software\Microsoft\Windows\...

Vous pouvez ensuite modifier l'emplacement du lecteur cvkey: comme vous le feriez pour tout autre lecteur :

cd cvkey:

ou :

Set-Location cvkey: -PassThru
Path
----
cvkey:\

L’applet de commande New-PSDrive ajoute le nouveau lecteur uniquement à la session PowerShell active. Si vous fermez la fenêtre PowerShell, le nouveau lecteur est perdu. Pour enregistrer un lecteur PowerShell, utilisez l’applet de commande Export-Console pour exporter la session PowerShell active, puis utilisez le paramètre PowerShell.exePSConsoleFile pour l’importer. Vous pouvez aussi ajouter le nouveau lecteur à votre profil Windows PowerShell.

Suppression de lecteurs PowerShell

Pour supprimer des lecteurs de PowerShell, utilisez l’applet de commande Remove-PSDrive. Par exemple, si vous avez ajouté le lecteur PowerShell Office:, comme illustré dans la rubrique New-PSDrive, vous pouvez le supprimer en tapant ce qui suit :

Remove-PSDrive -Name Office

Pour supprimer le lecteur PowerShell cvkey:, utilisez la commande suivante :

Remove-PSDrive -Name cvkey

Cependant, vous ne pouvez pas le supprimer pendant que vous êtes dans le lecteur. Par exemple :

cd office:
Remove-PSDrive -Name office
Remove-PSDrive : Cannot remove drive 'Office' because it is in use.
At line:1 char:15
+ remove-psdrive  <<<< -name office

Ajout et suppression de lecteurs en dehors de PowerShell

PowerShell détecte les lecteurs de système de fichiers qui sont ajoutés ou supprimés dans Windows, notamment :

  • Les lecteurs réseau mappés
  • Les lecteurs USB attachés
  • Les lecteurs supprimés à l’aide de la commande net use ou d’un script WSH (Windows Script Host)