Получить имя раздела с помощью PowerShell

У меня есть флешка, которую я отформатировал так, чтобы метка тома на диске была "PHILIP".

введите описание изображения здесь

я использую Get-PSDrive H -PSProvider FileSystem чтобы определить, подключен ли диск, однако я действительно хотел бы определить, подключен ли диск по метке тома, т.е. Get-PSDrive -VolumeLabel PHILIP -PSProvider FileSystem, Конечно VolumeLabel Параметр не существует, так что это не работает.

Есть ли способ перечислить диски в компьютере по имени тома?

2 ответа

Решение

Вы можете использовать WMI, я думаю:

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

Вы также можете использовать класс DriveInfo из.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 командлет (оба ? а также Where псевдонимы), чтобы отфильтровать это по объему, который вы ищете:

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

Я использую Get-WMIObject, как предлагает Джои. Чтобы связать результаты wmi, например, с разделом get, я использую параметр caption. В этом примере я установил букву раздела для тома Philip на D

$ datavolume=Get-WMIObject Win32_Volume |? {$ _. Ярлык -eq 'PHILIP'}

$ datavolume= $ datavolume.Caption

get-partition -DiskNumber 0 | где {$_.accesspaths-like "$ datavolume"} | Установить-Раздел -NewDriveLetter D

Другие вопросы по тегам