Как перечислить все свойства объекта PowerShell


121

Когда я смотрю на класс Win32_ComputerSystem , он показывает множество свойств, таких как Status, PowerManagementCapabilitiesи т. Д. Однако, когда в PowerShell я делаю следующее, я получаю только пару:

PS C:\Windows\System32\drivers> Get-WmiObject -Class "Win32_computersystem"

Domain              : YYY.com
Manufacturer        : VMware, Inc.
Model               : VMware Virtual Platform
Name                : LONINEGFQEF58
PrimaryOwnerName    : Authorised User
TotalPhysicalMemory : 2147016704

Как я могу увидеть все свойства?

Ответы:


139

Попробуй это:

Get-WmiObject -Class "Win32_computersystem" | Format-List *
Get-WmiObject -Class "Win32_computersystem" | Format-List -Property *

Для определенных объектов PowerShell предоставляет набор инструкций по форматированию, которые могут влиять на форматы таблиц или списков. Обычно они предназначены для ограничения отображения множества свойств до только основных свойств. Однако бывают случаи, когда очень хочется все увидеть. В тех случаях Format-List *будут показаны все свойства. Обратите внимание, что в случае, когда вы пытаетесь просмотреть запись об ошибке PowerShell, вам необходимо использовать «Format-List * -Force», чтобы действительно увидеть всю информацию об ошибке, например,

$error[0] | Format-List * -force

Обратите внимание, что подстановочный знак можно использовать как традиционный символ:

Get-WmiObject -Class "Win32_computersystem" | Format-List M*

1
Я предпочитаю Get-WmiObject -Class win32_computersystem -Property *. Это коротко и мило
Каньон Колоб

38

Если вы хотите узнать, какие есть свойства (и методы):

Get-WmiObject -Class "Win32_computersystem" | Get-Member

6
Я не собираюсь ставить вам отметку из-за формулировки исходного вопроса. Но стоит отметить, что Get-Member не перечисляет свойства и их значения, а только имена и типы свойств / методов.
rob

1
Это очень полезно при написании сценариев, чтобы узнать тип данных, содержащихся в каждом поле, и перечислить все доступные имена полей без извлечения данных. Спасибо!
Яник Жируар

30

Вы также можете использовать:

Get-WmiObject -Class "Win32_computersystem" | Select *

Это покажет тот же результат, что и Format-List *, используемый в других ответах здесь.


4
Это на самом деле лучше, чем метод в принятом ответе, поскольку при использовании этого метода у вас все еще есть богатые объекты, тогда как использование Format-Listуничтожит все объекты в конвейере.
Джесси Уэстлейк

7

мне нравиться

 Get-WmiObject Win32_computersystem | format-custom *

Кажется, это все расширяет.

В модуле PowerShellCookbook также есть команда show-object, которая делает это в графическом интерфейсе. Джеффри Сновер, создатель PowerShell, использует его в своих отключенных от сети видео (рекомендуется).

Хотя чаще всего использую

Get-WmiObject Win32_computersystem | fl *

Он избегает файла .format.ps1xml, который определяет представление таблицы или списка для типа объекта, если таковые имеются. Файл формата может даже определять заголовки столбцов, которые не соответствуют никаким именам свойств.


4
format-custom *кажется ответ, который действительно показывает все
Крис Ф. Кэрролл

4

Самый лаконичный способ сделать это:

Get-WmiObject -Class win32_computersystem -Property *

1
Возможно, кратко, но неполно. Здесь перечислены только первоначально видимые (5) свойств по сравнению с 83, которые появляются при использовании: Get-WmiObject -Class "Win32_computersystem" | Select *
boB
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.