使用PowerShell获取分区名称

时间:2012-10-12 19:37:36

标签: powershell drive removable-drive

我有一个格式化的闪存驱动器,因此驱动器上的卷标是“PHILIP”。

enter image description here

我正在使用Get-PSDrive H -PSProvider FileSystem来确定驱动器是否已插入,但我真的想确定驱动器是否已通过卷标插入,即Get-PSDrive -VolumeLabel PHILIP -PSProvider FileSystem。当然,VolumeLabel参数不存在,因此不起作用。

有没有办法按卷名列出计算机中的驱动器?

3 个答案:

答案 0 :(得分:6)

我猜你可以使用WMI:

Get-WMIObject Win32_Volume | ? { $_.Label -eq 'PHILIP' }

答案 1 :(得分:4)

您也可以使用.NET框架中的DriveInfo类:

PS> [System.IO.DriveInfo]::GetDrives()
Name               : C:\
DriveType          : Fixed
DriveFormat        : NTFS
IsReady            : True
AvailableFreeSpace : 217269202944
TotalFreeSpace     : 217269202944
TotalSize          : 320070479872
RootDirectory      : C:\
VolumeLabel        : OS

然后,您可以将其传递到Where-Object cmdlet(?Where都是别名),以将其过滤为您要查找的卷:

PS> [System.IO.DriveInfo]::GetDrives() | ? {$_.VolumeLabel -eq "PHILIP" }

答案 2 :(得分:0)

我像乔伊建议的那样使用Get-WMIObject。 要将wmi结果链接到例如get-partition,我使用caption参数。 在此示例中,我将卷Philip的分区号设置为D

  

$ datavolume = Get-WMIObject Win32_Volume | ? {$ _。Label -eq'PHILIP'}

     

$ datavolume = $ datavolume.Caption

     

获取分区-DiskNumber 0 |其中{$ _。accesspaths -like“ $ datavolume ”} |设置分区-NewDriveLetter D