列出Powershell中的所有设备,分区和卷

问题描述:

我有多个卷(如今几乎所有人):在Windows上,它们最终被指定为C:,D:等等。如何在具有Powershell的“ls/mnt /”的Unix机器上列出这些内容?列出Powershell中的所有设备,分区和卷

+0

GET-PSDrive来 将返回该 名称提供者根CurrentLocation ---- -------- ---- ---- ----------- A文件系统A:别名别名 C FileSystem C:\ scripts – streetparade 2009-11-02 21:02:48

为了让所有的文件系统驱动器,可以使用下面的命令:

gdr -PSProvider 'FileSystem' 

gdrGet-PSDrive的别名,其中包括所有注册表等

“虚拟驱动器”的
+0

该死的你比我快:-) – streetparade 2009-11-02 21:04:58

+1

请注意,这可以缩短为'Get-PSDrive -PSProvider' FileSystem''。我发现'| Where-Object'在很多情况下非常缓慢。 – 2013-01-01 22:07:39

+1

@BaconBits我已经更新了我的答案,以反映你更好的选择。为了后代,我原本有'gdr |其中{$ _。Provider.Name -eq“FileSystem”}' – bdukes 2013-01-08 20:06:06

首先,在Unix上,您使用的是mount,而不是ls /mnt:很多东西没有安装在/mnt中。

无论如何,还有mountvol DOS命令,它继续在Powershell中工作,并且还有Powershell特定的Get-PSDrive

alt text

PS功能:>GET-PSDrive来

+0

这是一个提示的漂亮配置。你介意分享这些细节吗? – wishi 2009-11-02 22:40:21

于Windows PowerShell:

Get-PSDrive 
[System.IO.DriveInfo]::getdrives() 
wmic diskdrive 
wmic volume 

而且效用dskwipe:http://smithii.com/dskwipe

dskwipe.exe -l 
+0

要标记,您还可以包含来自另一个答案'-PSProvider'的'FileSystem'标志以仅显示文件系统。 – Pred 2016-04-25 17:37:17

这是公关etty老了,但我发现以下值得注意:

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 

无滤波特性,我的测试系统上,4319.4196ms到1777.7237ms。除非我需要返回PS-Drive对象,否则我会坚持使用WMI。

编辑: 我认为我们有一个赢家: PS N:>(措施命令{[System.IO.DriveInfo] :: getdrives()|%{$ _名称} |出主机}) 。要talmilliseconds 110.9819

获取批量

您将获得: 驱动器号,FileSystemLabel,文件系统的DriveType,HealthStatus,SizeRemaining和尺寸

+0

Get-Volume似乎仅在Windows-Server 2012和Windows-Server 2016上可用。 – Bram 2016-11-28 09:46:36

+0

Get-Volume为我运行PowerShell 5.1工作。也许他们在近几年/最近的更新中制定了这个标准。这个答案应该得到更多关注。 – 2017-06-17 03:59:42

虽然这不是具体的 'PowerShell的' .. 。您可以使用diskpart轻松列出驱动器和分区,列表卷

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 
+1

是否有可能使用powershell获得Volume ##? (对于Windows 7) – Chand 2017-08-04 16:00:45

我们每个驱动器有多个卷(某些安装在驱动器上的子目录中)。此代码显示挂载点和卷标的列表。很明显,你还可以提取空闲空间等:

gwmi win32_volume|where-object {$_.filesystem -match "ntfs"}|sort {$_.name} |foreach-object { 
    echo "$(echo $_.name) [$(echo $_.label)]" 
}