Jak wyświetlić listę wszystkich właściwości obiektu programu PowerShell

121

Kiedy patrzę na klasy Win32_ComputerSystem , pokazuje mnóstwo właściwości, takich jak Status, PowerManagementCapabilitiesitp Jednak, gdy w PowerShell zrobić poniższy ja tylko wrócić parę:

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

Jak mogę zobaczyć wszystkie nieruchomości?

lara400
źródło

Odpowiedzi:

139

Spróbuj tego:

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

W przypadku niektórych obiektów program PowerShell udostępnia zestaw instrukcji formatowania, które mogą wpływać na formaty tabeli lub listy. Zwykle mają one na celu ograniczenie wyświetlania ryz właściwości do tylko podstawowych właściwości. Jednak są chwile, kiedy naprawdę chcesz wszystko zobaczyć. W takich przypadkach Format-List *pokaże wszystkie właściwości. Zwróć uwagę, że w przypadku, gdy próbujesz wyświetlić rekord błędu programu PowerShell, musisz użyć opcji „Lista formatów *-Force”, aby naprawdę zobaczyć wszystkie informacje o błędzie, na przykład

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

Zwróć uwagę, że symbol wieloznaczny może być używany jak tradycyjna karta wilcard:

Get-WmiObject -Class "Win32_computersystem" | Format-List M*
Keith Hill
źródło
1
Wolę Get-WmiObject -Class win32_computersystem -Property *. To krótkie i słodkie
Kolob Canyon
38

Jeśli chcesz wiedzieć, jakie właściwości (i metody) istnieją:

Get-WmiObject -Class "Win32_computersystem" | Get-Member
manojlds
źródło
6
Nie zamierzam cię oceniać z powodu sformułowania pierwotnego pytania. Warto jednak zaznaczyć, że Get-Member nie wymienia właściwości i ich wartości, a jedynie nazwy i typy właściwości / metod.
okradł
1
Jest to bardzo przydatne podczas pisania skryptów, aby poznać typ danych zawartych w każdym polu i wyświetlić listę wszystkich dostępnych nazw pól bez pobierania danych. Dzięki!
Yanick Girouard
30

Możesz także użyć:

Get-WmiObject -Class "Win32_computersystem" | Select *

Spowoduje to wyświetlenie tego samego wyniku, co lista formatów * użyta w innych odpowiedziach tutaj.

Rikels
źródło
4
Jest to właściwie lepsze niż metoda w zaakceptowanej odpowiedzi, ponieważ używając tej metody nadal masz bogate obiekty, podczas gdy użycie Format-Listzniszczy wszystkie obiekty w rurociągu.
Jessie Westlake
7

podoba mi się

 Get-WmiObject Win32_computersystem | format-custom *

Wydaje się, że wszystko rozszerza.

W module PowerShellCookbook znajduje się również polecenie show-object, które robi to w GUI. Jeffrey Snover, twórca PowerShell, używa go w swoich odłączonych filmach (zalecane).

Chociaż najczęściej używam

Get-WmiObject Win32_computersystem | fl *

Unika pliku .format.ps1xml, który definiuje tabelę lub widok listy dla typu obiektu, jeśli taki istnieje. Plik formatu może nawet definiować nagłówki kolumn, które nie pasują do żadnych nazw właściwości.

js2010
źródło
4
format-custom *wydaje się, że odpowiedź naprawdę pokazuje wszystko
Chris F Carroll,
4

Najbardziej zwięzłym sposobem na to jest:

Get-WmiObject -Class win32_computersystem -Property *
Kolob Canyon
źródło
1
Być może zwięzłe, ale niekompletne. Wyświetla tylko pierwotnie widziane (5) właściwości w porównaniu z 83, które pojawiają się podczas używania: Get-WmiObject -Class "Win32_computersystem" | Wybierz *
boB