Listen Sie alle Geräte, Partitionen und Volumes in Powershell auf
-
12-09-2019 - |
Frage
Ich habe mehrere Bände (wie heutzutage fast jeder):Unter Windows werden sie schließlich als C:, D: angegeben.und so weiter.Wie liste ich diese alle wie auf einem Unix-Rechner mit „ls /mnt/“ mit Powershell auf?
Lösung
Um alle Dateisystemlaufwerke abzurufen, können Sie den folgenden Befehl verwenden:
gdr -PSProvider 'FileSystem'
gdr
ist ein Alias für Get-PSDrive
, das alle „virtuellen Laufwerke“ für die Registrierung usw. enthält.
Andere Tipps
Get-Volume
Sie erhalten: Laufwerkbuchstabe, FileSystemLabel, Filesystem, Drivetype, HealthStatus, SizeRemaining und Größe
Unter Windows Powershell:
Get-PSDrive
[System.IO.DriveInfo]::getdrives()
wmic diskdrive
wmic volume
Auch das Dienstprogramm dskwipe: http://smithii.com/dskwipe
dskwipe.exe -l
Zum einen auf Unix Sie mount
verwenden, nicht ls /mnt
. Viele Dinge nicht in /mnt
montiert
Wie auch immer, es gibt den mountvol
DOS-Befehl, der in Powershell arbeitet weiter, und es gibt die Powershell-spezifischen Get-PSDrive
.
Das ist ziemlich alt, aber ich fand folgende erwähnenswert:
PS N:\> (measure-command {Get-WmiObject -Class Win32_LogicalDisk|select -property deviceid|%{$_.deviceid}|out-host}).totalmilliseconds
...
928.7403
PS N:\> (measure-command {gdr -psprovider 'filesystem'|%{$_.name}|out-host}).totalmilliseconds
...
169.474
Ohne Eigenschaften Filterung, auf meinem Testsystem 4319.4196ms zu 1777.7237ms. Es sei denn, ich ein PS-Drive-Objekt zurückgegeben müssen, ich werde mit WMI bleiben.
EDIT: Ich denke, wir haben einen Gewinner: PS N:> (Maß-Befehl {[System.IO.DriveInfo] :: getdrives () |% {$ _ name} | out-Host.}) Zu talmilliseconds. 110.9819
Obwohl dies nicht ‚Powershell‘ spezifisch ist ... Sie einfach die Laufwerke und Partitionen mit Diskpart-Liste kann, liste Volumen
PS C:\Dev> diskpart
Microsoft DiskPart version 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: Box
DISKPART> list volume
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
Volume 0 D DVD-ROM 0 B No Media
Volume 1 C = System NTFS Partition 100 MB Healthy System
Volume 2 G C = Box NTFS Partition 244 GB Healthy Boot
Volume 3 H D = Data NTFS Partition 687 GB Healthy
Volume 4 E System Rese NTFS Partition 100 MB Healthy
Wir haben mehrere Volumes pro Laufwerk (einige sind auf Verzeichnisse auf dem Laufwerk montiert). Dieser Code zeigt eine Liste der Bereitstellungspunkte und Volumen Etiketten. Natürlich können Sie auch freien Raum extrahieren und so weiter:
gwmi win32_volume|where-object {$_.filesystem -match "ntfs"}|sort {$_.name} |foreach-object {
echo "$(echo $_.name) [$(echo $_.label)]"
}
Ausführen-Befehl:
Get-PsDrive -PsProvider FileSystem
Weitere Informationen finden Sie unter: