List 列出Powershell中的所有设备、分区和卷
我有多个卷(现在几乎每个人都有):在Windows上,它们最终被指定为C:、D:等等。如何在带有Powershell的“ls/mnt/”的Unix计算机上列出这些 要获取所有文件系统驱动器,可以使用以下命令:List 列出Powershell中的所有设备、分区和卷,list,powershell,device,List,Powershell,Device,我有多个卷(现在几乎每个人都有):在Windows上,它们最终被指定为C:、D:等等。如何在带有Powershell的“ls/mnt/”的Unix计算机上列出这些 要获取所有文件系统驱动器,可以使用以下命令: gdr -PSProvider 'FileSystem' gdr是的别名,它包括注册表的所有“虚拟驱动器”等。首先,在Unix上使用的是mount,而不是ls/mnt:许多东西没有装入/mnt 总之,有一个mountvolDOS命令,它在Powershell中继续工作,还有特定于Powe
gdr -PSProvider 'FileSystem'
gdr
是的别名,它包括注册表的所有“虚拟驱动器”等。首先,在Unix上使用的是mount
,而不是ls/mnt
:许多东西没有装入/mnt
总之,有一个mountvol
DOS命令,它在Powershell中继续工作,还有特定于Powershell的Get-PSDrive
在Windows Powershell上:
Get-PSDrive
[System.IO.DriveInfo]::getdrives()
wmic diskdrive
wmic volume
此外,实用程序dskwipe:
这是相当古老的,但我发现以下值得注意:
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
没有过滤属性,在我的测试系统上,从4399.4196ms到1777.7237ms。除非我需要返回PS驱动器对象,否则我将坚持使用WMI
编辑:
我认为我们有一个赢家:
PS N:>(测量命令{[System.IO.DriveInfo]::getdrives()|%{${.name}| out host})滑石粉
110.9819
您将获得:
DriveLetter、FileSystemLabel、FileSystem、DriveType、HealthStatus、SizeMaining和Size。尽管这不是特定于“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
每个驱动器有多个卷(有些卷安装在驱动器的子目录上)。此代码显示装载点和卷标的列表。显然,您还可以提取可用空间等:
gwmi win32_volume|where-object {$_.filesystem -match "ntfs"}|sort {$_.name} |foreach-object {
echo "$(echo $_.name) [$(echo $_.label)]"
}
运行命令:
Get-PsDrive -PsProvider FileSystem
有关更多信息,请参阅:
net use
您也可以使用以下方法查找驱动器上的“总”磁盘大小
获取CimInstance-ComputerName yourhostname win32_logicaldisk | foreach对象{write“$($.caption)$({0:N2}'-f($.Size/1gb))GB总计,$({0:N2}'-f($.FreeSpace/1gb))GB空闲“}get-psdrive将返回此名称提供程序根目录CurrentLocation-------文件系统A:Alias别名C文件系统C:\scriptsTo标记on,您还可以在另一个答案
-PSProvider:“文件系统”
中包含一个标志,以仅显示文件系统。Get-Volume似乎仅在Windows Server 2012和Windows Server 2016上可用。Get-Volume适用于运行powershell 5.1的我。也许他们在最近几年/最近的更新中制定了这个标准。这个答案应该得到更多的关注。现在这是正确的答案。使用Get-PDDrive的答案适用于较旧版本的powershell。这不显示网络驱动器是否可以使用powershell获取卷?(对于windows 7)这还包括CD-ROM,我不确定在所有用例中都需要CD-ROM。请记住这一点。或者您也可以使用Get-WmiObject Win32_LogicalDisk这似乎是前面答案之一的一个非常小的变化。什么是你的好处,而不是在其他?
Get-PsDrive -PsProvider FileSystem
net use