Обидва приклади не працюють через неправильний синтаксис PowerShell. У наведеному нижче коді перераховані розміри гучності поточного хоста (використовуючи PowerShell 5.0):
Get-WmiObject win32_logicalDisk -filter "DriveType=3" | %{ $_.DeviceID; $_.FreeSpace/1GB }
У наведеному нижче коді перераховані розміри хостів, перелічені в сервері.txt :
Get-Content server.txt | %{ Get-WMIObject –computername $_ Win32_LogicalDisk -filter "DriveType=3" | %{ $_.DeviceID; $_.FreeSpace/1GB } }
Sidenote
Зауважте, що зовнішній власник місця $_
перераховує адреси сервера, тоді як внутрішній власник місця $_
перераховує пристрої. Це часті випадки для новачків PowerShell. Якщо ви хочете використовувати адресу сервера у внутрішньому циклі, вам доведеться призначити його новій змінній у зовнішньому циклі.
Програмне забезпечення форуму, яке тут використовується, є помилковим. У попередньому попередньому попередньому перегляді він відображається $_
правильно як $_
парний, навіть якщо не уникнути як код. Але остаточне повідомлення видаляє підкреслення, тим самим робить приклади PowerShell неправильними.