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

时间:2009-11-02 20:42:18

标签: list powershell device

我有多个卷(现在几乎每个人都有):在Windows上,它们最终被指定为C:,D:等等。如何在带有Powershell的“ls / mnt /”的Unix机器上列出这些内容?

11 个答案:

答案 0 :(得分:59)

要获取所有文件系统驱动器,可以使用以下命令:

gdr -PSProvider 'FileSystem'

gdrGet-PSDrive的别名,其中包含注册表的所有“虚拟驱动器”等。

答案 1 :(得分:12)

GET-量

你会得到: DriveLetter,FileSystemLabel,FileSystem,DriveType,HealthStatus,SizeRemaining和Size

答案 2 :(得分:8)

在Windows Powershell上:

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

该实用程序dskwipe:http://smithii.com/dskwipe

dskwipe.exe -l

答案 3 :(得分:4)

首先,在Unix上,您使用的是mount,而不是ls /mnt:许多内容未在/mnt中安装。

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

答案 4 :(得分:2)

这是相当古老的,但我发现以下值得注意:

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:> (measure-command {[System.IO.DriveInfo] :: getdrives()|%{$ _。name} | out-host})。to talmilliseconds 110.9819

答案 5 :(得分:1)

虽然这不是'powershell'特定的......你可以使用diskpart,list volume轻松列出驱动器和分区

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

答案 6 :(得分:0)

我们每个驱动器有多个卷(一些安装在驱动器上的子目录中)。此代码显示装入点和卷标的列表。显然你也可以提取自由空间等等:

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

答案 7 :(得分:0)

运行命令:

Get-PsDrive -PsProvider FileSystem

有关更多信息,请参见:

答案 8 :(得分:0)

您也可以在CLI上使用

net use

答案 9 :(得分:0)

您也可以使用以下方法查找驱动器上的“总”磁盘大小。

Get-CimInstance -ComputerName yourhostname win32_logicaldisk | foreach-object {write " $($.caption) $('{0:N2}' -f ($.Size/1gb)) GB 总计,$('{0:N2}' -f ($_.FreeSpace/1gb)) GB 免费"}

答案 10 :(得分:-1)

alt text

PS功能:> 获取-PSDrive来