Skip to main content

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