Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 列出Powershell中的所有设备、分区和卷_List_Powershell_Device - Fatal编程技术网

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

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

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

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

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
有关更多信息,请参阅:


您也可以在CLI上使用

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