Get-PSDrive
Der Befehl Get-PSDrive gibt alle aktuell verfügbaren PowerShell-Laufwerke (PSDrive) zurück.
Ein PSDrive stellt einen Speicherort dar, auf den PowerShell über einen einheitlichen Pfad zugreifen kann. Neben klassischen Dateisystemlaufwerken (C:, D:) gehören dazu beispielsweise auch die Registry (HKLM:), Zertifikate (Cert:), Umgebungsvariablen (Env:) oder Variablen (Variable:).
Grundlagen
Ein PSDrive ist kein physisches Laufwerk, sondern eine Abstraktion eines PowerShell-Providers.
Dadurch können unterschiedliche Datenspeicher mit denselben Befehlen verwendet werden.
Beispielsweise funktionieren diese Befehle alle nach dem gleichen Prinzip:
Get-ChildItem C:\
Get-ChildItem HKLM:\
Get-ChildItem Env:
Get-ChildItem Variable:
Welcher Datenspeicher sich dahinter verbirgt, übernimmt der jeweilige Provider.
Syntax
Get-PSDrive
Ein bestimmtes Laufwerk abrufen:
Get-PSDrive C
Mehrere Laufwerke:
Get-PSDrive C, D
Nach Provider filtern:
Get-PSDrive -PSProvider FileSystem
Ausgabe
Die Ausgabe besteht aus Objekten vom Typ
System.Management.Automation.PSDriveInfo
Beispiel:
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
C 120.5 58.3 FileSystem C:\
Env Environment
HKLM Registry
Variable Variable
Eigenschaften
-
Name
-
Provider
-
Root
-
CurrentLocation
-
Description
-
DisplayRoot
-
Used
-
Free
-
MaximumSize
-
Credential
Name [String]
Der Name des PowerShell-Laufwerks.
Beispiele:
C
D
HKLM
HKCU
Env
Variable
Function
Alias
Der Name bildet gleichzeitig den Präfix eines PowerShell-Pfades.
C:\Temp
HKLM:\Software
Env:PATH
Variable:Error
Provider [ProviderInfo]
Der PowerShell-Provider, über den auf den Speicherort zugegriffen wird.
Beispiele:
| Provider | Beschreibung |
|---|---|
| FileSystem | Dateisystem |
| Registry | Windows-Registry |
| Environment | Umgebungsvariablen |
| Variable | PowerShell-Variablen |
| Alias | Aliase |
| Function | Funktionen |
| Certificate | Zertifikatsspeicher |
Root [String]
Der Stammpfad des Laufwerks.
Beispiele:
C:\
D:\
HKEY_LOCAL_MACHINE
Virtuelle Laufwerke besitzen häufig keinen klassischen Dateipfad.
CurrentLocation [String]
Aktuelles Arbeitsverzeichnis innerhalb des Laufwerks.
Beispielsweise:
Set-Location C:\Windows
(Get-PSDrive C).CurrentLocation
Ergebnis:
Windows
Description [String]
Optionale Beschreibung des Laufwerks.
Viele Standardlaufwerke besitzen keine Beschreibung.
Selbst angelegte PSDrives können hier eine Beschreibung erhalten.
DisplayRoot [String]
Angezeigter Stammpfad.
Diese Eigenschaft wird hauptsächlich bei Netzwerk- oder benutzerdefinierten Laufwerken verwendet.
Bei normalen Dateisystemlaufwerken ist der Wert häufig leer.
Used [Int64]
Belegter Speicherplatz.
Nur für Dateisystemlaufwerke verfügbar.
Angabe erfolgt in Bytes.
Free [Int64]
Freier Speicherplatz.
Nur für Dateisystemlaufwerke verfügbar.
Angabe erfolgt ebenfalls in Bytes.
MaximumSize [Nullable[Int64]]
Maximal verfügbare Größe.
Diese Eigenschaft wird nur von wenigen Providern genutzt und ist meistens $null.
Credential [PSCredential]
Anmeldedaten, mit denen das Laufwerk verbunden wurde.
Bei Standardlaufwerken normalerweise $null.
Relevant hauptsächlich für mit New-PSDrive eingebundene Netzlaufwerke.
Parameter
-
Name
-
PSProvider
-
Scope
-Name
Gibt nur bestimmte Laufwerke zurück.
Get-PSDrive C
Mehrere:
Get-PSDrive C, D
-PSProvider
Filtert nach einem bestimmten Provider.
Dateisystem:
Get-PSDrive -PSProvider FileSystem
Registry:
Get-PSDrive -PSProvider Registry
Alle Variablen-Laufwerke:
Get-PSDrive -PSProvider Variable
-Scope
Zeigt Laufwerke eines bestimmten Scopes an.
Dies ist hauptsächlich relevant für mit New-PSDrive erstellte Laufwerke.
Typische Beispiele
Alle Laufwerke anzeigen:
Get-PSDrive
Nur Dateisysteme:
Get-PSDrive -PSProvider FileSystem
Nur Registry:
Get-PSDrive -PSProvider Registry
Freien Speicherplatz anzeigen:
Get-PSDrive -PSProvider FileSystem |
Select-Object Name, Used, Free
Nur Laufwerksbuchstaben:
Get-PSDrive -PSProvider FileSystem |
Select-Object -ExpandProperty Name
Tipps & Tricks
Dateisystemlaufwerke erkennen
Nicht jedes PSDrive ist ein Festplattenlaufwerk.
Get-PSDrive -PSProvider FileSystem
liefert ausschließlich echte Dateisysteme.
Speicherplatz in GB berechnen
Die Eigenschaften Used und Free werden in Bytes zurückgegeben.
Get-PSDrive C |
Select-Object Name,
@{N="Used (GB)";E={[math]::Round($_.Used / 1GB,2)}},
@{N="Free (GB)";E={[math]::Round($_.Free / 1GB,2)}}
Mentales Modell
Get-PSDrive zeigt alle Speicherorte, die PowerShell wie Laufwerke behandeln kann.
Nicht jedes PSDrive ist ein Datenträger.
Ein PSDrive ist lediglich die Kombination aus:
-
einem Namen (
C:,Env:,HKLM:) -
einem Provider
-
einem Stammverzeichnis (Root)
Dadurch können Dateisysteme, Registry, Umgebungsvariablen oder Zertifikate mit denselben PowerShell-Befehlen angesprochen werden