Powershell ですべてのデバイス、パーティション、ボリュームを一覧表示する
-
12-09-2019 - |
質問
私は複数の本を持っています (最近ではほとんどの人がそうであるように):Windows では、最終的に C:、D: として指定されます。等々。Powershell を使用して「ls /mnt/」を使用する Unix マシンのようにこれらすべてをリストするにはどうすればよいですか?
解決
ファイルシステムドライブのすべてを取得するには、次のコマンドを使用することができます:
gdr -PSProvider 'FileSystem'
gdr
は、のすべてを含む Get-PSDrive
の別名でありますレジストリのための「仮想ドライブ」など。
他のヒント
は、Get-ボリューム
あなたが取得します。 ドライブ文字、FileSystemLabel、ファイルシステム、DRIVETYPE、HealthStatus、SizeRemainingとサイズ
Windows PowerShellのオンます:
Get-PSDrive
[System.IO.DriveInfo]::getdrives()
wmic diskdrive
wmic volume
また、ユーティリティdskwipe: http://smithii.com/dskwipeする
dskwipe.exe -l
まず、Unix上であなたがmount
を使用し、ls /mnt
ない:多くのことが/mnt
にマウントされていません。
いずれにせよ、PowerShellでの仕事を続けてmountvol
DOSコマンドは、そこだし、PowerShellの固有のGet-PSDrive
はあります。
これはかなり古いですが、私は注目に値する次見つけます:
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
のプロパティをフィルタリングすることなく、私のテスト・システム上で、1777.7237msに4319.4196ms。私はPS-ドライブオブジェクトが返さ必要がある場合を除き、私はWMIに固執するでしょう。
編集: 私たちは勝者を持っていると思います: PS N:>(測定-コマンド{[System.IO.DriveInfo] :: getdrives()|%{$ _名} |アウト・ホスト。})talmillisecondsへ。 110.9819
これはあなたが簡単にDISKPARTを使用してドライブとパーティションの一覧を表示することができます...「PowerShellの」固有のものではないが、リストのボリューム
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
私たちは、(いくつかはドライブ上のサブディレクトリにマウントされている)ドライブごとに複数のボリュームを持っています。このコードは、マウントポイントとボリュームラベルのリストを示します。もちろん、あなたもそう上の空き領域とを抽出することができます:
gwmi win32_volume|where-object {$_.filesystem -match "ntfs"}|sort {$_.name} |foreach-object {
echo "$(echo $_.name) [$(echo $_.label)]"
}
コマンドを実行します:
Get-PsDrive -PsProvider FileSystem
詳細については、以下を参照してください。
PS機能:>の取得-PSDriveのの