Powershell專欄: html
https://www.jb51.net/list/list_234_1.htmshell
https://www.pstips.net/get-wmiobject-becomes-obsolete.htmlide
原文: https://www.jb51.net/article/56233.htm工具
使用WMI歸根究竟是對WMI類的訪問,如何找到合適的類是其中關鍵的一步。我一直在爲找不到合適的類和命名空間苦惱。你也有這樣的問題嗎?網站
類層次結構搜索引擎
WMI的類是以命名空間和繼承層次方式組織的,呈樹形結構。命名空間的根是root,在它的下面還有十幾個命名空間,最經常使用的是root\cimv2。命名空間的信息存儲在靜態類__Namespace類中,要查詢當前命名空間下的全部命名空間,能夠查看__Namespace類的實例。如下是在個人機器上使用PowerShell查詢到的命名空間:
spa
PS C:\Users\idsswtt> Get-WmiObject -Class __namespace -Namespace root | select name
name
----
subscription
DEFAULT
cimv2
Cli
Nap
MicrosoftIISv2
SECURITY
SmsDm
CCMVDI
RSOP
WebAdministration
ccm
WMI
directory
Policy
virtualization
Interop
Hardware
ServiceModel
Microsoft
aspnet
.net
關於命名空間更詳細的信息,能夠寫一個遞歸的腳原本取得,或者從WMI入門(二):如何使用WMI中提到的WMI CIM Studio工具中查到。code
經常使用WMI類htm
WMI體系結構中有成百上千個類。咱們常常用到的只有其中一部分。其中有些是用來查詢實例的,另外一些用來查詢類的Schema的。除了上面提到的__Namespace類,咱們還會用到__Win32Provider類,來查詢當前系統中都有哪些提供程序。這兩個類是系統類。
此外,還有兩類WMI類咱們常常用到:CIM_*類和Win32_*類。前者是WMI的核心類和公共類,不少時候也被稱爲CIM核心類和公共類。後者是Win32擴展類,咱們查詢實例多在Win32擴展類中查詢。例如Win32_Product、Win32_LogicalDisk等。
WMI類查找手冊?
很遺憾的是,到目前爲止。我沒有發現一個好用的WMI類查找手冊。但在微軟MSDN網站上,有一個分類。咱們能夠依照這個分類來作查詢。如下幾個連接是我常常用到的,貼在這裏,但願你能用到。
結語
看完上面我寫的這些東西,若是你仍是找不到你要的類,那你就只能怪微軟了。我以爲微軟爲WMI作的仍是太少,至少在類查詢這一起是這樣。在微軟爲WMI投入更多以前,咱們只能依賴經驗和搜索引擎來尋找適當的類了。