Как получить медиатип, используя diskpart, используя PowerShell? - PullRequest
0 голосов
/ 07 ноября 2019

Я хочу получить медиатип diskpart. Я хочу получить медиатип конкретного DeviceID. Я пытался таким образом на моем компьютере, он работает, но я пытаюсь с другого компьютера, он возвращает DeviceNumber не найден.

$DeviceID = "1"
$Get = Get-PhysicalDisk -DeviceNumber "$DeviceID"
$Get.MediaType

Обновлено

Я использую этот способ

$DeviceID = "1"
$Get = Get-PhysicalDisk | Sort-Object -Property DeviceID
$MType = $Get[$DeviceID]

Get-PhysicalDisk | Select-Object DeviceID, MediaType дает этот вывод:

DeviceID MediaType
-------- ---------
       2 HDD
       0 SSD
       1 SSD

1 Ответ

0 голосов
/ 07 ноября 2019

Ваша переменная $Get содержит список объектов. Идентификатор устройства является одним из свойств этих объектов, и к нему нельзя получить доступ через оператор индекса. $DeviceID = "1"; $Get[$DeviceID] даст вам второй элемент в списке $Get, а не элемент, свойство которого DeviceID совпадает со значением переменной $DeviceID. Даже если вы отсортируете выходные данные Get-PhysicalDisk, вы получите желаемый объект только по совпадению, т.е. только если идентификаторы устройств являются последовательными числами, начинающимися с 0.

Чтобы получить объекты, свойство которых DeviceID имеетконкретное значение использовать Where-Object фильтр:

$DeviceID = 1
$disks = Get-PhysicalDisk
$MType = $disks |
         Where-Object { $_.DeviceID -eq $DeviceID } |
         Select-Object -Expand MediaType
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...