使用PowerShell获取分区名称

使用PowerShell获取分区名称,powershell,drive,removable-storage,Powershell,Drive,Removable Storage,我有一个闪存驱动器,格式化后驱动器上的卷标是“PHILIP” 我正在使用Get PSDrive H-PSProvider FileSystem确定驱动器是否已插入,但是我确实希望确定驱动器是否已通过卷标插入,即Get PSDrive-VolumeLabel PHILIP-PSProvider FileSystem。当然,VolumeLabel参数不存在,因此这不起作用 有没有办法按卷名列出计算机中的驱动器?我想您可以使用WMI: Get-WMIObject Win32_Volume | ? {

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

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


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

我想您可以使用WMI:

Get-WMIObject Win32_Volume | ? { $_.Label -eq 'PHILIP' }
您也可以使用.NET framework中的类:

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" }

我用乔伊提议的方法来获取WMIObject。 为了将wmi结果链接到例如get分区,我使用caption参数。 在本例中,我将卷Philip的分区字母设置为D

$datavolume=获取WMIObject Win32|U卷|?{$\标签-eq'PHILIP'}

$datavolume=$datavolume.Caption

get partition-DiskNumber 0 |其中{$\.accessPath-like“$datavolume”}Set partition-NewDriveLetter D