Verwalten von PowerShell-Laufwerken

Dieses Beispiel gilt nur für Windows-Plattformen.

Ein PowerShell-Laufwerk ist ein Speicherort für Daten, auf den Sie wie auf ein Dateisystemlaufwerk in PowerShell zugreifen können. Die PowerShell-Anbieter erstellen einige Laufwerke für Sie, z. B. die Dateisystemlaufwerke (einschließlich C: und D:), die Registrierungslaufwerke (HKCU: und HKLM:) und das Zertifikatlaufwerk (Cert:). Sie können auch eigene PowerShell-Laufwerke erstellen. Diese Laufwerke sind sehr nützlich, aber nur in PowerShell verfügbar. Sie können darauf nicht mit anderen Windows-Tools wie Datei-Explorer oder Cmd.exe zugreifen.

PowerShell verwendet das Substantiv PSDrive für Befehle, die mit PowerShell-Laufwerken arbeiten. Verwenden Sie zum Anzeigen einer Liste der PowerShell-Laufwerke in Ihrer PowerShell-Sitzung das Cmdlet 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

Die anzeigten Laufwerke hängen von den in Ihrem System vorhandenen Laufwerken ab. Ihre Anzeige sollte jedoch ähnlich wie die oben dargestellte Ausgabe des Befehls Get-PSDrive aussehen.

Dateisystemlaufwerke sind eine Teilmenge der PowerShell-Laufwerke. Sie erkennen die Dateisystemlaufwerke am Eintrag „FileSystem“ in der Spalte „Provider“. Die Dateisystemlaufwerke in PowerShell werden vom PowerShell-Anbieter FileSystem unterstützt.

Um die Syntax des Cmdlets Get-PSDrive anzuzeigen, geben Sie den Befehl Get-Command mit dem Parameter Syntax ein:

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>]

Mit dem PSProvider-Parameter können Sie nur die PowerShell-Laufwerke anzeigen lassen, die von einem bestimmten Anbieter unterstützt werden. Um beispielsweise nur die PowerShell-Laufwerke anzuzeigen, die vom PowerShell-Anbieter FileSystem unterstützt werden, geben Sie den Befehl Get-PSDrive mit dem PSProvider-Parameter und dem Wert FileSystem ein:

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

Um die PowerShell-Laufwerke anzuzeigen, die Registrierungsstrukturen darstellen, verwenden Sie den PSProvider-Parameter, damit nur die PowerShell-Laufwerke angezeigt werden, die vom PowerShell-Anbieter Registry unterstützt werden:

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

Sie können auch die standardmäßigen Location-Cmdlets mit den PowerShell-Laufwerken verwenden:

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

Hinzufügen neuer PowerShell-Laufwerke

Mit dem Befehl New-PSDrive können Sie eigene PowerShell-Laufwerke hinzufügen. Um die Syntax des Befehls New-PSDrive abzurufen, geben Sie den Befehl Get-Command mit dem Parameter Syntax ein:

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]

Um ein neues PowerShell-Laufwerk zu erstellen, müssen Sie drei Parameter angeben:

  • Einen Namen für das Laufwerk (Sie können einen beliebigen gültigen PowerShell-Namen verwenden)
  • Den PSProvider: Verwenden Sie FileSystem für Dateisystemspeicherorte und Registry für Registrierungsspeicherorte.
  • Das Stammelement, d.h. den Pfad zum Stamm des neuen Laufwerks

Sie können beispielsweise ein Laufwerk namens Office erstellen, das dem Ordner zugeordnet ist, der die Microsoft Office-Anwendungen auf Ihrem Computer enthält, z. B. C:\Program Files\MicrosoftOffice\OFFICE11. Geben Sie zum Erstellen des Laufwerks den folgenden Befehl ein:

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

Hinweis

Bei Pfaden wird im Allgemeinen die Groß-/Kleinschreibung nicht beachtet.

Auf ein PowerShell-Laufwerk wird über seinen Namen gefolgt von einem Doppelpunkt (:) zugegriffen.

Ein PowerShell-Laufwerk kann viele Aufgaben einfacher machen. Beispielsweise haben einige der wichtigsten Schlüssel in der Windows-Registrierung äußerst lange Pfade, die den Zugriff darauf mühsam machen und schwer zu merken sind. Wichtige Konfigurationsinformationen befinden sich unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. Zum Anzeigen und Ändern von Elementen im Registrierungsschlüssel „CurrentVersion“ können Sie ein PowerShell-Laufwerk mit dem Stamm in diesem Schlüssel erstellen, indem Sie Folgendes eingeben:

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

Sie können dann zum Laufwerk cvkey: auf dieselbe Weise wechseln, wie Sie zu jedem anderen Laufwerk wechseln:

cd cvkey:

oder:

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

Das Cmdlet New-PSDrive fügt das neue Laufwerk nur während der aktuellen PowerShell-Sitzung hinzu. Wenn Sie das PowerShell-Fenster schließen, geht das neue Laufwerk verloren. Wenn Sie ein PowerShell-Laufwerk speichern möchten, verwenden Sie das Cmdlet Export-Console, um die aktuelle PowerShell-Sitzung zu exportieren, und dann den PSConsoleFile-Parameter von PowerShell.exe, um sie zu importieren. Sie können auch das neue Laufwerk Ihrem Windows PowerShell-Profil hinzufügen.

Löschen von PowerShell-Laufwerken

Über das Cmdlet Remove-PSDrive können Sie Laufwerke aus PowerShell löschen. Wenn Sie beispielsweise das PowerShell-Laufwerk Office: hinzugefügt haben, wie im Thema New-PSDrive gezeigt, können Sie es löschen, indem Sie Folgendes eingeben:

Remove-PSDrive -Name Office

Verwenden Sie den folgenden Befehl, um das PowerShell-Laufwerk cvkey: zu löschen:

Remove-PSDrive -Name cvkey

Sie können es jedoch nur löschen, wenn Sie sich nicht auf dem Laufwerk befinden. Beispiel:

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

Hinzufügen und Entfernen von Laufwerken außerhalb von PowerShell

PowerShell erkennt Dateisystemlaufwerke, die in Windows hinzugefügt oder entfernt werden, einschließlich:

  • Zugeordnete Netzlaufwerke
  • Angeschlossene USB-Laufwerke
  • Laufwerke, die mithilfe des Befehls net use oder aus einem WSH-Skript (Windows Script Host) gelöscht wurden