我記得在xp時代,經常使用的工具有一個叫做WMI Administrative Tools,是微軟官方提供的用來查看、編輯WMI對象的,只是現在好似不支持新的系統了。但是,在Win7、Server 2008下,這些功能都可以方便的通過PowerShell來完成。 首先,先來認識一下什么是WMI對象: WMI是作為一個基本的數據庫存在于Windows系統中的。我們可以連接到WMI服務請求查詢其中所包含的信息。WMI包括了系統方方面面的信息,包括: • 機器信息:制造商、型號、序列號等 • BIOS信息 • OS信息 • CPU信息:種類、制造商、速度、版本 • 服務器內存總量 • 磁盤信息:容量、格式等 • 網絡信息:MAC、IP等 • 其他 可以看出WMI內容是多么的豐富,幾乎包括了計算機的方方面面。 利用PowerShell查看WMI成員 在PowerShell中通過以下命令列出WMI對象: get-wmiObject -list -namespace “root\CIMV2″ <enter> 需要具體查看某個類的成員,使用下面的命令(例如類"win32_process"):
那么,有兩個問題: 為什么要使用-namespace "root\cimv2"? cimv2是WMI的一個命名空間,每個命名空間下有不同的WMI對象成員。cimv2是其默認設置。可以按照以下步驟進行修改: 控制面板 -> 管理工具 -> 計算機管理 -> 服務和應用程序 -> 右鍵"WMI控制" -> 屬性 -> 高級 參數"-namespace"并非必須,但是,使用它有兩個好處,一是保證我們能準確的查看指定命名空間下的WMI對象,因為有時默認命名空間并非我們所希望查看的;二是如果不指定命名空間,被設置過的計算機可能拒絕我們的訪問請求。 注:因為我使用英文版系統,上述步驟中個別名稱可能不準確。 ![]() 在如上圖所示的界面,即可修改默認路徑。 另一個問題是,查看成員的類型有什么用? 如果一個成員是方法,那么,我們可以調用它。如果一個成員是屬性,我們則可以查看它的值。但是,需要注意的是,不同的屬性成員有不同的數據結構,有的是"System.String",有的是"System.UInt32",有的則是"System.String[ ]",在使用時,應當注意數據格式,否則會報錯的。 如果我們需要管理網絡中的計算機,則需要指定計算機名稱: get-wmiObject -list -namespace “root\CIMV2″ -computername 計算機名 <enter> 好了,現在來具體操作,查看具體信息。 例: 查看BIOS信息 get-wmiobject -class win32_bios -namespace "root\cimv2" <enter> 運行結果: ![]() 查看服務信息 get-wmiobject -class win32_service -namespace "root\cimv2" | format-list * <enter> 查看機器信息 get-wmiobject -class win32_computersystem | format-list * <enter> 在網絡管理環境中的多數情況下,我們可能要查看不同的計算機信息,因此,就需要使用計算機這一參數,例如: 查詢本地計算機的網絡信息 $items = get-wmiObject -class win32_NetworkAdapterConfiguration ' 例如: foreach($obj in $items) { |
免責聲明:本站部分文章和圖片均來自用戶投稿和網絡收集,旨在傳播知識,文章和圖片版權歸原作者及原出處所有,僅供學習與參考,請勿用于商業用途,如果損害了您的權利,請聯系我們及時修正或刪除。謝謝!
始終以前瞻性的眼光聚焦站長、創業、互聯網等領域,為您提供最新最全的互聯網資訊,幫助站長轉型升級,為互聯網創業者提供更加優質的創業信息和品牌營銷服務,與站長一起進步!讓互聯網創業者不再孤獨!
掃一掃,關注站長網微信