Як перелічити всі властивості об'єкта 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, вам потрібно використовувати "Формат-список * -Форс", щоб справді побачити всю інформацію про помилку, наприклад,

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

Зауважте, що макіяж може використовуватися як традиційний wilcard таким:

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 не перераховує властивості та їх значення лише імена та типи властивостей / методів.
пограбувати

1
Це дуже корисно при написанні сценаріїв, щоб знати тип даних, яке містить кожне поле, і перелічити всі доступні імена полів без отримання даних. Дякую!
Янік

30

Ви також можете використовувати:

Get-WmiObject -Class "Win32_computersystem" | Select *

Це покаже той самий результат, що і Формат-Список *, який використовується в інших відповідях тут.


4
Це насправді краще, ніж метод у прийнятій відповіді, оскільки при використанні цього методу у вас все ще є багаті об'єкти, тоді як використання Format-Listзнищить усі об'єкти вниз по конвеєру.
Джессі Вестлейк

7

мені подобається

 Get-WmiObject Win32_computersystem | format-custom *

Це ніби розширює все.

Також в модулі PowerShellCookbook є команда show-object, яка робить це в GUI. Джефрі Сновер, автор 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" | Виберіть *
boB
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.