Я специалист по Linux, поэтому привык к "grep". С grep он сохраняет столбцы, однако в PowerShell он меняет вывод. Например:
Get-WmiObject -List | Select-String -Pattern "Win32_LogicalDisk$"
\\COMP\ROOT\cimv2:Win32_LogicalDisk
Где "Get-WmiObject -List" выводит такие столбцы, как:
CIM_Tachometer {SetPowerState, R... {Accuracy, Availability, Caption, ConfigManagerErrorCode...
Я хотел бы, чтобы мой «Выбор» выдавал весь столбец, а не только объект или что-то еще, что он возвращает. Я хотел бы подражать grep фактического вывода Get-WmiObject -List
Также в качестве побочного вопроса: помимо MSDN, какой хороший сайт содержит все объекты WMI и то, что они возвращают? Они кажутся очень мощным способом получить информацию о любом аспекте системы Windows. Я прав?
Вы не хотите использовать Select-String
. Powershell предлагает Where-Object
командлет для такого рода фильтрации:
Get-WmiObject -List | Where-Object { $_.Name -eq "Win32_LogicalDisk" }
Вы также можете использовать Select-Object
развернуть свойство «Свойства» объекта, возвращенного из Where-Object
:
Get-WmiObject -List | Where-Object { $_.Name -eq "Win32_LogicalDisk" } | Select-Object -ExpandProperty Properties
Если вы хотите изучить WMI, доступно множество инструментов. Одна версия Powershell, WMI Explorer могут представлять для вас особый интерес.