Cách liệt kê tất cả các thuộc tính của một đối tượng PowerShell


121

Khi tôi nhìn vào lớp Win32_ComputerSystem , nó cho thấy vô số tài sản như Status, PowerManagementCapabilitiesvv Tuy nhiên, khi trong PowerShell tôi làm dưới đây tôi chỉ lấy lại một vài:

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

Làm cách nào để tôi có thể xem tất cả các thuộc tính?

Câu trả lời:


139

Thử cái này:

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

Đối với các đối tượng nhất định, PowerShell cung cấp một tập hợp các hướng dẫn định dạng có thể ảnh hưởng đến định dạng bảng hoặc danh sách. Chúng thường có nghĩa là để giới hạn việc hiển thị hàng loạt các thuộc tính xuống chỉ các thuộc tính cần thiết. Tuy nhiên có những lúc bạn thực sự muốn xem mọi thứ. Trong những trường hợp đó Format-List *sẽ hiển thị tất cả các thuộc tính. Lưu ý rằng trong trường hợp bạn đang cố gắng xem bản ghi lỗi PowerShell, bạn cần sử dụng "Format-List * -Force" để thực sự xem tất cả thông tin lỗi, ví dụ:

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

Lưu ý rằng ký tự đại diện có thể được sử dụng giống như một wilcard truyền thống sau:

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

1
Tôi thích hơn Get-WmiObject -Class win32_computersystem -Property *. Đó là ngắn và ngọt ngào
Kolob Canyon

38

Nếu bạn muốn biết có những thuộc tính (và phương thức) nào:

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

6
Tôi sẽ không đánh dấu bạn vì từ ngữ của câu hỏi ban đầu. Nhưng điều đáng chú ý là Get-Member không liệt kê các thuộc tính và giá trị của chúng mà chỉ có tên và kiểu thuộc tính / phương thức.
cướp

1
Điều này rất hữu ích khi lập kịch bản để biết loại dữ liệu mà mỗi trường chứa và liệt kê tất cả các tên trường có sẵn mà không cần tìm nạp dữ liệu. Cảm ơn!
Yanick Girouard

30

Bạn cũng có thể dùng:

Get-WmiObject -Class "Win32_computersystem" | Select *

Điều này sẽ hiển thị kết quả tương tự như Định dạng-Danh sách * được sử dụng trong các câu trả lời khác ở đây.


4
Điều này thực sự tốt hơn so với phương pháp trong câu trả lời được chấp nhận, vì sử dụng phương pháp này, bạn vẫn có các đối tượng phong phú, trong khi việc sử dụng Format-Listsẽ phá hủy tất cả các đối tượng trong đường ống.
Jessie Westlake

7

tôi thích

 Get-WmiObject Win32_computersystem | format-custom *

Điều đó dường như mở rộng mọi thứ.

Ngoài ra còn có một lệnh hiển thị đối tượng trong mô-đun PowerShellCookbook thực hiện điều đó trong GUI. Jeffrey Snover, người tạo PowerShell, sử dụng nó trong các video đã rút phích cắm của mình (được khuyến nghị).

Mặc dù tôi thường xuyên sử dụng

Get-WmiObject Win32_computersystem | fl *

Nó tránh tệp .format.ps1xml xác định dạng xem bảng hoặc danh sách cho loại đối tượng, nếu có. Tệp định dạng thậm chí có thể xác định các tiêu đề cột không khớp với bất kỳ tên thuộc tính nào.


4
format-custom *Dường như câu trả lời rằng thực sự cho thấy tất cả mọi thứ
Chris F Carroll

4

Cách ngắn gọn nhất để làm điều này là:

Get-WmiObject -Class win32_computersystem -Property *

1
Succinct, có lẽ, nhưng không đầy đủ. Điều này chỉ liệt kê các thuộc tính được nhìn thấy ban đầu (5) so với 83 hiển thị khi sử dụng: Get-WmiObject -Class "Win32_computersystem" | Chọn *
boB
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.