В PowerShell я хочу написать дискеты (deviceid
) из drivetype
(здесь тип 2) в массив (переменная $letters
). В driveletters должны быть отсортированы так:
$ букв = @ («а:», «б:») и т.д.Написание аппаратных средств диска на массив
В строке ниже я нашел отлично работает с win32_diskdrive
, но я не могу добавить DriveType.
$letters = Get-WmiObject win32_diskdrive |
Where {$_.interfacetype -Like "USB"} |
ForEach {Get-WmiObject -Query "ASSOCIATORS OF {Win32_DiskDrive.DeviceID=`"$($_.DeviceID.replace('\','\\'))`"} WHERE AssocClass = Win32_DiskDriveToDiskPartition"} |
ForEach {Get-WmiObject -Query "ASSOCIATORS OF {Win32_DiskPartition.DeviceID=`"$($_.DeviceID)`"} WHERE AssocClass = Win32_LogicalDiskToPartition"} |
ForEach {$_.deviceid}
Следующая строка ниже содержит Win32_LogicalDisk
вместо win32_diskdrive
, но я не могу получить чистый массив-вывода, как $letters = @("a:", "b:")
$letters = Get-WMIObject Win32_LogicalDisk -filter DriveType=2 | Select ($_.deviceid)
дает
\\WIN7\root\cimv2:Win32_LogicalDisk.DeviceID="H:"
Как я могу объединить drivetype
с win32_diskdrive
или как я могу получить только «H:» с Win32_LogicalDisk
?
Спасибо, он работает с вашей подсказкой хорошо с $ letters = Get-WMIObject Win32_LogicalDisk -filter DriveType = 2 | Select -Property deviceid Теперь я узнал, что он показывает также выталкиваемые, но все еще подключенные диски. Как показать только устройства с размером раздела (раздела)? – scriptinghomer
Хорошо, найдите ответ byselfe: Get-WMIObject Win32_LogicalDisk -filter DriveType = 2 | Выберите -Интерфейс устройства, размер | где {$ _. size} – scriptinghomer
@scriptinghomer см. мое обновление. – Matt