Получить имя раздела с помощью 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