Come elencare tutte le proprietà di un oggetto PowerShell


121

Quando guardo la classe di Win32_ComputerSystem , mostra i carichi di immobili come Status, PowerManagementCapabilities, ecc, tuttavia, quando in PowerShell faccio il seguito ho solo indietro di un paio:

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

Come posso vedere tutte le proprietà?

Risposte:


139

Prova questo:

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

Per alcuni oggetti, PowerShell fornisce una serie di istruzioni di formattazione che possono influire sui formati di tabella o elenco. Di solito hanno lo scopo di limitare la visualizzazione di risme di proprietà alle sole proprietà essenziali. Tuttavia, ci sono momenti in cui vuoi davvero vedere tutto. In quei casi Format-List *mostrerà tutte le proprietà. Tieni presente che nel caso in cui stai cercando di visualizzare un record di errore di PowerShell, devi utilizzare "Format-List * -Force" per vedere veramente tutte le informazioni sull'errore, ad esempio,

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

Nota che il carattere jolly può essere utilizzato come un carattere wil tradizionale in questo modo:

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

1
Io preferisco Get-WmiObject -Class win32_computersystem -Property *. È breve e dolce
Kolob Canyon

38

Se vuoi sapere quali proprietà (e metodi) ci sono:

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

6
Non ti deluderò a causa della formulazione della domanda originale. Ma vale la pena sottolineare che Get-Member non elenca le proprietà e i loro valori solo i nomi ei tipi di proprietà / metodo.
rapina il

1
Ciò è molto utile durante lo scripting per conoscere il tipo di dati che ogni campo contiene e per elencare tutti i nomi di campo disponibili senza recuperare i dati. Grazie!
Yanick Girouard

30

Puoi anche usare:

Get-WmiObject -Class "Win32_computersystem" | Select *

Questo mostrerà lo stesso risultato di Format-List * usato nelle altre risposte qui.


4
Questo è effettivamente migliore del metodo nella risposta accettata, poiché usando questo metodo hai ancora oggetti ricchi, mentre l'uso Format-Listdistruggerà tutti gli oggetti lungo la pipeline.
Jessie Westlake

7

mi piace

 Get-WmiObject Win32_computersystem | format-custom *

Questo sembra espandere tutto.

C'è anche un comando show-object nel modulo PowerShellCookbook che lo fa in una GUI. Jeffrey Snover, il creatore di PowerShell, lo utilizza nei suoi video scollegati (consigliato).

Anche se il più delle volte uso

Get-WmiObject Win32_computersystem | fl *

Evita il file .format.ps1xml che definisce una visualizzazione tabella o elenco per il tipo di oggetto, se presente. Il file di formato può anche definire intestazioni di colonna che non corrispondono ad alcun nome di proprietà.


4
format-custom *sembra la risposta che mostra davvero tutto
Chris F Carroll

4

Il modo più succinto per farlo è:

Get-WmiObject -Class win32_computersystem -Property *

1
Succinto, forse, ma incompleto. Questo elenca solo le proprietà viste originariamente (5) rispetto alle 83 che vengono visualizzate quando si utilizza: Get-WmiObject -Class "Win32_computersystem" | Seleziona *
boB
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.