Одно из различий PowerShell разных версий.

Oct 25, 2020 17:38


Как оказалось, в PowerShell на Windows Server 2008 нельзя передавать в конвейер свойство класса WMI-объекта. Так конструкция вида: ((Get-WmiObject Win32_PhysicalMemory).Capacity | Measure-Object -Sum).Sum вернет "0".
Однако, если мы передадим в конвейер весь контекст класса и там уже отберем нужные значения - все работает. Пример: ((Get-WmiObject Win32_PhysicalMemory) | Measure-Object -Property capacity -Sum).Sum
При этом первый вариант является более правильным с точки зрения оптимизации процесса - мы не гоняем через конвейер весь контекст.
В Windows Server 2016 оба варианта работают.

powershell

Previous post Next post
Up