วิธีแสดงรายการคุณสมบัติทั้งหมดของวัตถุ 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

โปรดทราบว่าสัญลักษณ์แทนสามารถใช้เหมือน wilcard แบบดั้งเดิมได้ดังนี้:

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

1
Get-WmiObject -Class win32_computersystem -Property *ฉันชอบ มันสั้นและหวาน
Kolob Canyon

38

หากคุณต้องการทราบว่าคุณสมบัติ (และวิธีการ) มีอะไรบ้าง:

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

6
ฉันจะไม่ทำให้คุณผิดหวังเพราะถ้อยคำของคำถามเดิม แต่ควรชี้ให้เห็นว่า Get-Member ไม่ได้แสดงรายการคุณสมบัติและค่าของคุณสมบัติเฉพาะชื่อและประเภทคุณสมบัติ / วิธีการเท่านั้น
ปล้น

1
สิ่งนี้มีประโยชน์มากเมื่อเขียนสคริปต์เพื่อทราบประเภทของข้อมูลที่แต่ละฟิลด์มีและเพื่อแสดงชื่อฟิลด์ที่มีทั้งหมดโดยไม่ต้องดึงข้อมูล ขอบคุณ!
Yanick Girouard

30

คุณยังสามารถใช้:

Get-WmiObject -Class "Win32_computersystem" | Select *

สิ่งนี้จะแสดงผลลัพธ์เดียวกันกับ Format-List * ที่ใช้ในคำตอบอื่น ๆ ที่นี่


4
นี่เป็นวิธีที่ดีกว่าวิธีการในคำตอบที่ยอมรับเนื่องจากการใช้วิธีนี้คุณยังคงมีวัตถุที่สมบูรณ์ในขณะที่การใช้Format-Listจะทำลายวัตถุทั้งหมดลงไปในท่อ
Jessie Westlake

7

ฉันชอบ

 Get-WmiObject Win32_computersystem | format-custom *

ดูเหมือนว่าจะขยายทุกอย่าง

นอกจากนี้ยังมีคำสั่ง show-object ในโมดูล PowerShellCookbook ที่ทำใน GUI Jeffrey Snover ผู้สร้าง PowerShell ใช้ในวิดีโอที่ไม่ได้เสียบปลั๊ก (แนะนำ)

แม้ว่าส่วนใหญ่แล้วฉันจะใช้

Get-WmiObject Win32_computersystem | fl *

มันหลีกเลี่ยงไฟล์. format.ps1xml ที่กำหนดมุมมองตารางหรือรายการสำหรับชนิดอ็อบเจ็กต์หากมี ไฟล์รูปแบบอาจกำหนดส่วนหัวคอลัมน์ที่ไม่ตรงกับชื่อคุณสมบัติใด ๆ


4
format-custom *ดูเหมือนคำตอบที่แสดงให้เห็นทุกอย่างจริงๆ
Chris F Carroll

4

วิธีที่รวบรัดที่สุดคือ:

Get-WmiObject -Class win32_computersystem -Property *

1
รวบรัดบางที แต่ไม่สมบูรณ์ นี่จะแสดงเฉพาะคุณสมบัติ (5) ที่เห็นในตอนแรกเทียบกับ 83 ที่ปรากฏขึ้นเมื่อใช้: Get-WmiObject -Class "Win32_computersystem" | เลือก *
boB
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.