Разбивать и форматировать только механические жесткие диски - PullRequest
1 голос
/ 05 февраля 2020

первый пост здесь. Я пытаюсь создать сценарий, который будет форматировать только механические жесткие диски на компьютере и оставит SSD как есть. Может кто-нибудь объяснить, почему происходит следующее:

PS C:\Users\hekke> Get-PhysicalDisk | Where-Object -Property mediatype -EQ hdd

дает мне вывод:

Number FriendlyName           SerialNumber    MediaType CanPool OperationalStatus HealthStatus Usage            Size
------ ------------           ------------    --------- ------- ----------------- ------------ -----            ----
0      WDC WD10TPVT-00U4RT1   WD-WXH1A81P7778 HDD       False   OK                Healthy      Auto-Select 931.51 GB
1      WDC WD5000LPVX-22V0TT0 WD-WX71AA4H4EV2 HDD       False   OK                Healthy      Auto-Select 465.76 GB

Но когда я делаю:

PS C:\Users\hekke> Get-PhysicalDisk | Where-Object -Property mediatype -EQ hdd | Select-Object number

, это дает мне только пустая таблица чисел:

number
------

Я новичок в PowerShell, заранее спасибо всем, кто хочет помочь

1 Ответ

1 голос
/ 05 февраля 2020

Это случай, когда PowerShell слишком старается, чтобы сделать его удобным для пользователя. Причина, по которой вы не получаете свойство Number, заключается в том, что оно не существует. Если вы передадите это к | Get-Member, вы увидите список свойств, а Number нигде не будет найдено. Это вычисляемое свойство, которое создается, когда этот тип объекта выводится в таблицу с форматированием вывода по умолчанию. Вместо этого вы можете использовать DeviceId как таковой:

Get-PhysicalDisk | Where-Object -Property mediatype -EQ hdd | Select-Object DeviceId

Это должно точно соответствовать тому, что вы видели в первой таблице.

...