Cara membuat daftar semua properti objek PowerShell

121

Ketika saya melihat kelas Win32_ComputerSystem , itu menunjukkan banyak sifat seperti Status, PowerManagementCapabilities, dll Namun, ketika di PowerShell saya lakukan di bawah ini saya hanya mendapatkan kembali pasangan:

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

Bagaimana saya bisa melihat semua properti?

lara400
sumber

Jawaban:

139

Coba ini:

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

Untuk objek tertentu, PowerShell menyediakan sekumpulan instruksi pemformatan yang bisa mempengaruhi format tabel atau daftar. Ini biasanya dimaksudkan untuk membatasi tampilan rim properti hingga hanya properti penting. Namun ada kalanya Anda benar-benar ingin melihat semuanya. Dalam kasus tersebut Format-List *akan menampilkan semua properti. Perhatikan bahwa dalam kasus di mana Anda mencoba untuk melihat catatan kesalahan PowerShell, Anda perlu menggunakan "Format-List * -Force" untuk benar-benar melihat semua informasi kesalahan, misalnya,

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

Perhatikan bahwa wildcard dapat digunakan seperti wilcard tradisional ini:

Get-WmiObject -Class "Win32_computersystem" | Format-List M*
Keith Hill
sumber
1
Saya lebih suka Get-WmiObject -Class win32_computersystem -Property *. Itu pendek dan manis
Kolob Canyon
38

Jika Anda ingin mengetahui properti (dan metode) apa saja yang ada:

Get-WmiObject -Class "Win32_computersystem" | Get-Member
manojlds
sumber
6
Saya tidak akan menilai Anda karena kata-kata dari pertanyaan aslinya. Namun perlu diperhatikan bahwa Get-Member tidak mencantumkan properti dan nilainya hanya nama dan tipe properti / metode.
merampok
1
Ini sangat berguna saat membuat skrip untuk mengetahui jenis data yang dimiliki setiap bidang dan untuk mencantumkan semua nama bidang yang tersedia tanpa mengambil data. Terima kasih!
Yanick Girouard
30

Anda juga bisa menggunakan:

Get-WmiObject -Class "Win32_computersystem" | Select *

Ini akan menunjukkan hasil yang sama seperti Format-List * yang digunakan dalam jawaban lain di sini.

Rikels
sumber
4
Ini sebenarnya lebih baik daripada metode dalam jawaban yang diterima, karena menggunakan metode ini Anda masih memiliki objek kaya, sedangkan menggunakan Format-Listakan menghancurkan semua objek di dalam pipa.
Jessie Westlake
7

saya suka

 Get-WmiObject Win32_computersystem | format-custom *

Itu sepertinya memperluas segalanya.

Ada juga perintah show-object di modul PowerShellCookbook yang melakukannya di GUI. Jeffrey Snover, pencipta PowerShell, menggunakannya dalam videonya yang dicabut (disarankan).

Meski paling sering saya gunakan

Get-WmiObject Win32_computersystem | fl *

Ini menghindari file .format.ps1xml yang mendefinisikan tabel atau tampilan daftar untuk tipe objek, jika ada. File format bahkan dapat menentukan tajuk kolom yang tidak cocok dengan nama properti apa pun.

js2010
sumber
4
format-custom *tampaknya jawaban yang benar - benar menunjukkan segalanya
Chris F Carroll
4

Cara paling ringkas untuk melakukannya adalah:

Get-WmiObject -Class win32_computersystem -Property *
Ngarai Kolob
sumber
1
Ringkas, mungkin, tapi tidak lengkap. Ini hanya mencantumkan properti (5) yang semula terlihat vs 83 yang muncul saat menggunakan: Get-WmiObject -Class "Win32_computersystem" | Pilih *
boB