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?

War es hilfreich?

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:

scroll top