如何顯示 PowerShell 物件的所有屬性

  1. 使用 Get-WmiObject 顯示 PowerShell 對象的所有屬性
  2. 檢索類實例/對象資訊
  3. 使用 Format-List Cmdlet 顯示屬性
  4. 結論
如何顯示 PowerShell 物件的所有屬性

有關尋找 Windows 機器及其組件(例如網路、應用程式和服務)的資訊,有一些要求。通用資訊模型 (CIM) 是一種開放標準,用於操作這些組件及其資訊。

微軟在 CIM 上實現了自己的標準,稱為 Windows 管理工具 (WMI),用於查詢和操作計算機、服務和網路資訊。

使用 Get-WmiObject 顯示 PowerShell 對象的所有屬性

Get-WmiObject 命令是一個強大的工具,特別適用於系統管理和管理任務。它允許訪問 Windows 管理工具 (WMI) 數據,其中包含有關系統的大量資訊,例如硬體詳細資訊、安裝的軟體、網路配置等。

Get-WmiObject 的一個鮮為人知但強大的功能是使用 -List 參數。此選項使用戶能夠檢索指定命名空間中的所有 WMI 類的列表。

Get-WmiObject -List 的基本語法為:

Get-WmiObject -List [-Namespace <String>] [-ComputerName <String>]

主要參數包括:

  • -Namespace <String>:指定 WMI 倉庫命名空間。默認為 root\cimv2,其中包含大多數常用的 WMI 類。
  • -ComputerName <String>:針對遠程計算機。沒有此參數時,命令在本地機器上運行。

因此,Windows 系統管理過程變得更加簡單。讓我們使用 Get-WmiObject 命令檢查可用的類。

Get-WmiObject -List

此命令將輸出您本地計算機的默認命名空間中所有可用的類。默認命名空間是 Windows 計算機中的 ROOT\cimv2

輸出:

獲取-Wmi 物件

可以指定不同於默認的命名空間(ROOT\cimv2)。我們可以使用 -Namespace 參數來更改默認命名空間。

Get-WmiObject -Namespace <custom_namespace>

檢索類實例/對象資訊

使用 Get-WmiObject -Class 主要是為了檢索有關系統某一特定方面的詳細資訊。例如,查詢 Win32_Processor 類可提供有關處理器的資訊,而 Win32_OperatingSystem 顯示有關操作系統的詳細資訊。

此 cmdlet 的 -Class 參數允許用戶查詢 WMI 銷售庫中的特定類,這些類本質上是表示系統資訊的對象模板。這些類涵蓋從硬體詳細資訊到配置設置的廣泛數據。

語法:

Get-WmiObject -Class <String> [-Namespace <String>] [-ComputerName <String>]

主要參數包括:

  • -Class <String>:指定所需資訊的 WMI 類。
  • -Namespace <String>:可選。指定 WMI 倉庫命名空間(默認為 root\cimv2)。
  • -ComputerName <String>:可選。將命令指向遠程計算機。

有數百個可用的 WMI 類。我們可以檢索給定類的資訊,如下所示。

Get-WmiObject -Class Win32_computersystem

在這裡,我們正在檢索 Win32_computersystem 類的資訊。它返回 Win32_computersystem 對象及其屬性,該屬性包含有關計算機系統的所有資訊,如下所示。

Get-WmiObject -Class

輸出中顯示的屬性數量有限。Win32_computersystem 對象包含比這些更多的屬性。

我們可以使用 Format-List cmdlet 來顯示檢索對象的所有屬性。

使用 Format-List Cmdlet 顯示屬性

Format-List 可以與另一個命令的輸出通過管道連接,以格式化結果。此 cmdlet 可以以可讀的格式顯示檢索到的 WMI 對象的指定或所有屬性。

語法:

Get-WmiObject -Class Win32_computersystem | Format-List -Property Name, Model, Manufacturer

讓我們為 Win32_computersystem 實例指定一些屬性。

  • Format-List [-Property <PropertyName[]>]:將輸出格式化為列表。
  • -Property <PropertyName[]>:(可選)指定要顯示的屬性。如果省略,則顯示所有屬性。

輸出:

格式-列表

Get-WmiObject 返回 Win32_computersystem 對象的默認屬性。然後,輸出將通過管道運算符(|)傳遞到 Format-List 命令。

我們可以將 -Property 參數傳遞給 Format-List cmdlet。這將用給定的三個屬性過濾最終輸出。

有時,檢查指定 WMI 對象的所有屬性和值是重要的。在這種情況下,您需要使用 -Property * 來檢索所有可用的屬性及其值。

* 表示所有屬性。

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

輸出:

Format-List -Property

輸出包含 Win32_computersystem 對象的所有屬性和可用值。我們可以省略上述命令中的 -Property 參數,並直接寫出來。

Get-WmiObject -Class Win32_computersystem | Format-List *

上述命令應顯示與上面相同的輸出。

結論

在這次對 PowerShell 的 Get-WmiObject 的探索中,我們揭示了它在 Windows 系統管理中的重要角色。-List 參數使得用戶能夠列舉所有 WMI 類,幫助識別相關數據來源。

專注於 -Class,我們展示了它在檢索詳細系統資訊方面的精確性,以 Win32_ComputerSystem 為例。添加 Format-List 提升了輸出的可讀性,這在處理大量屬性列表時至關重要。

要加深您的知識,可以深入研究各種 WMI 類,例如 Win32_ProcessorWin32_OperatingSystem。將 Get-WmiObject 融入腳本中可以簡化系統管理任務。

作為一個多功能工具,Get-WmiObject 迎合了初學者和資深用戶,體現了它在 PowerShell 中對各種 IT 任務和自動化的重要性。

Enjoying our tutorials? Subscribe to DelftStack on YouTube to support us in creating more high-quality video guides. Subscribe
Migel Hewage Nimesha avatar Migel Hewage Nimesha avatar

Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.

相關文章 - PowerShell Object