Anzeigen aller zugänglichen Laufwerke in PowerShell

Anzeigen aller zugänglichen Laufwerke in PowerShell

Mir ist aufgefallen, dass cd \ zum Stammverzeichnis meines Laufwerks navigiert.

Es gibt aber noch weitere Laufwerke auf die ich auf meinem Rechner zugreifen kann.

Gibt es in PowerShell einen Befehl, der alle Laufwerke auflistet, mit denen ich eine Verbindung herstellen kann?

Antwort1

Dies hängt etwas davon ab, was Sie als „Laufwerk“ bezeichnen. In PowerShell gibt es Laufwerke, die Ihre üblichen lokalen oder netzwerkzugeordneten Volumes darstellen, sowie Laufwerke, die andere Objekte wie Aliase, Umgebungsvariablen, Funktionen, PowerShell-Variablen, Registrierungsstrukturen und mehr enthalten.

Um eine Liste aller „Laufwerke“ in PowerShell anzuzeigen, verwenden Sie:

Get-PSDrive

Oder Sie können den integrierten Alias ​​verwenden:

gdr

Get-PSDrive( Sie können es überall unten ersetzen gdr.)

Um nur Dateisystemlaufwerke abzurufen, z. B. lokale oder im Netzwerk zugeordnete Volumes oder Medienschächte, verwenden Sie:

Get-PSDrive -PSProvider FileSystem

Zu bekommenNurlokale Laufwerke oderNurFestplatten, ich konnte keine geeignete Eigenschaft oder Methode in den Objekten finden, nach denen ich Get-PSDrivefiltern konnte. Ein wenig googeln später fand ichMicrosofts Get-PSDrive-Dokumentation auf TechNetDort sind neben Einzelheiten zur Verwendung Get-PSDriveauch einige andere über PowerShell zugängliche Methoden zur Laufwerksaufzählung aufgeführt. Eine Methode, die ich nützlich fand, ist die über die Klasse System.IO.DriveInfo im .NET Framework.

Der folgende, über PowerShell ausführbare Befehl listet nur lokale Festplatten auf.

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -eq 'Fixed'}

Wenn Sie beliebige lokale Laufwerke einschließen möchten – nicht nur Festplatten – verwenden Sie Folgendes:

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'}

Wenn Sie nur Laufwerkbuchstaben sehen möchten, leiten Sie die Ausgabe Select-Objectwie folgt an weiter:

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'} | Select-Object -Property Name

Beachten Sie, dass Where-Objectund Select-Objectauch integrierte Aliase von ?und select, respectively. (Where-Object is also usable aswhere` haben - es ist wirklich nur eine Frage der Präferenz.) Die Klasse System.IO.DriveInfo kann auch auf IO.DriveInfo verkürzt werden. Der letzte Befehl könnte also wie folgt ausgeführt werden, wenn Sie möchten:

[IO.DriveInfo]::getdrives() | ? {$_.DriveType -ne 'Network} | select -Property Name

Natürlich gibt es noch viel mehr, was Sie mit tun können Get-PSDrives, und die .NET-Klassen, auf die über PowerShell zugegriffen werden kann, sowie viele andere verfügbare PowerShell-Verknüpfungen. Ich empfehle, sich auf TechNet und ähnlichen Websites weiterzulesen und die Cmdlets und zu verwenden, Get-Helpum Get-Commandsich besser mit der Umgebung vertraut zu machen.

Antwort2

Verwenden Sie den folgenden Befehl, powershellum alle Laufwerke auf Ihrem PC aufzulisten

gdr -PSProvider 'FileSystem'

oder

Get-PSDrive -PSProvider 'FileSystem'

verwandte Informationen