日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

WMI腳本初級讀本

 xiezuoru 2006-06-12
譯者按]本人今日著迷于腳本,成天呆在Microsoft的網(wǎng)站上。遂決定將部分文件翻譯過來,以茲共享。也希望大家能加入這個行列。另外,在翻譯的過程中,只會注重重要的部分,某些無所謂的或者客套的東西就不花時間了,請原諒。還有,翻譯水平和技術(shù)水平有限,不要見笑。


WMI腳本初級讀本:第一部分
Greg Stemp, Dean Tsaltas, and Bob Wells
Microsoft Corporation

Ethan Wilansky
Network Design Group

June 13, 2002

摘要:Scripting Guys的第一個Scripting Clinic專欄。本文介紹了如何使用WMI腳本庫創(chuàng)建有用的Windows系統(tǒng)管理腳本

WMI(Windows® Management Instrumentation)是Microsoft保持得最好的秘密,或者曾經(jīng)被這樣告知過。就是這樣,沒錯的。WMI是Windows的主要管理允許技術(shù)。這對你意味著什么?好,如果你管理者Windows服務(wù)器和工作站,或者你創(chuàng)建Windows管理程序,你需要知道WMI.本文是教授WMI系列的第一部分,說準(zhǔn)確點,是怎樣使用WMI腳本庫賴創(chuàng)建Windows大量的系統(tǒng)管理腳本。

(以下省略。主要是一些客套,感謝Andrew Clinick,不知是什么人。然后是介紹作者自己, Scripting Guys以及他們的業(yè)務(wù))

What Is WMI?
WMI最初是作為Windows NT4.0 SP4的附加組件發(fā)布的,現(xiàn)在已成為Windows 2000,Windows XP,Windows.NET操作系統(tǒng)服務(wù)器家族的核心管理允許(management-enabling)技術(shù)?;诋a(chǎn)業(yè)標(biāo)準(zhǔn)(由分布式管理任務(wù)組DMTF(Distributed Management Task Force )監(jiān)督),WMI可以訪問,配置,管理和檢測所有-好,幾乎所有-的Windows資源。

為掌握WMI的強大功能,想想你在去年甚至是今天是如何管理和檢測Windows工作站和服務(wù)器的。可能你曾經(jīng)用過或正在使用大量的圖形界面的管理工具管理Windows資源,例如磁盤,事件日志,文件,文件夾,文件系統(tǒng),網(wǎng)絡(luò)組件,操作系統(tǒng)設(shè)置,性能數(shù)據(jù),打印機,等等

盡管圖形化工具提供了功能管理解決方案,但他們的共同點就是依賴Win32應(yīng)用程序可編程接口(API)來訪問和管理Windows資源。為什么?因為編程訪問Windows資源的唯一方法就是通過Win32 API.這樣Windows系統(tǒng)管理員沒有簡易的方法通過腳本語言來實現(xiàn)自動化的通用管理任務(wù),因為大多數(shù)的腳本語言不能直接調(diào)用Win32 API.WMI改變了這一點,它提供了一個統(tǒng)一的模型和框架,通過這所有的Windows資源被暴露和描述。最好的事,系統(tǒng)管理員可以使用WMI腳本庫來創(chuàng)建系統(tǒng)管理腳本,從而管理任何Windows資源。

使用Windows Script Host 和Microsoft Visual Basic® Scripting Edition (VBScript),或者任何支持COM自動化的腳本語言(例如,ActiveState Corporation‘s ActivePerl),可以為管理和自動化你的企業(yè)系統(tǒng),應(yīng)用程序網(wǎng)絡(luò)書寫下列所述的腳本:

· Windows .NET Server, Windows XP Professional, and Windows 2000系統(tǒng)管理. 可以書寫腳本來獲取性能數(shù)據(jù),管理事件日志,文件系統(tǒng),打印機,矗立起,注冊表,等等(下面的自己翻譯吧 scheduler, security, services, shares, and numerous other operating system components and configuration settings.)

· 網(wǎng)絡(luò)管理. 可以書寫腳本來管理網(wǎng)絡(luò)服務(wù),例如DNS, DHCP, and SNMP-enabled devices.

· 實時監(jiān)控. 通過使用事件訂閱(event subscriptions),可以書寫腳本來對以下資源監(jiān)控并做出回應(yīng),如事件日志,文件系統(tǒng)和注冊表更改,以及其他實時的操作系統(tǒng)更改。從概念上講,WMI事件訂閱和通告之于WMI與SNMP中段之于SNMP相同。

· Windows .NET Enterprise Server 管理. 可以書寫腳本來管理Microsoft® Application Center, Operations Manager, Systems Management Server, Internet Information Server, Exchange Server, and SQL Server.

Quick Start to WMI Scripting
為對WMI腳本有初步了解,首先舉個例子,獲取遠程基于Windows平臺的電腦上安裝的物理內(nèi)存。在WMI之前,這個任務(wù)是不可能通過腳本簡單地完成的,除非借助第三方的工具。事實上,在WMI之前,為以獲取電腦安裝物理內(nèi)存的唯一方法就是通過System Properties對話框?,F(xiàn)在,假定WMI安裝在目標(biāo)電腦并且你有權(quán)限操作目標(biāo)電腦,就可以利用Listing 1那樣簡單的腳本完成該任務(wù)。

Listing 1. Retrieving total physical memory using WMI and VBScript

strComputer = "atl-dc-01"

Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_LogicalMemoryConfiguration")

For Each wbemObject In wbemObjectSet
  WScript.Echo "Total Physical Memory (kb): " & wbemObject.TotalPhysicalMemory
Next


將上述腳本復(fù)制到文本編輯器,并且改變strComputer變量的值,然后保存以.vbs的擴展保存文件。按圖一所示運行腳本



Figure 1. GetMemory.vbs output

神奇的現(xiàn)象出現(xiàn)了,你應(yīng)該看到了目標(biāo)電腦的物理內(nèi)存。

假定你想獲取遠程電腦的所有服務(wù)的名字,狀態(tài)和啟動類型。見Listing 2的樣例。注意Listing 2與Listing 1的步驟一致。

Listing 2. Retrieving services information using WMI and VBScript

strComputer = "atl-dc-01"

Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_Service")

For Each wbemObject In wbemObjectSet
  WScript.Echo "Display Name: " & wbemObject.DisplayName & vbCrLf & _
         "  State:   " & wbemObject.State    & vbCrLf & _
         "  Start Mode: " & wbemObject.StartMode
Next


運行Listing 2的輸出參見Figure 2.



Figure 2. GetServices.vbs output

假設(shè)你的興趣不在于服務(wù),而在于Windows事件日志。使用Listing 1的腳本模板,Listing 3可以輕易的實現(xiàn)。必須指出的事,如果日志包含上千條記錄,可能會花費大量的時間運行。

Listing 3. Reading Windows event log records

strComputer = "atl-dc-01"

Set wbemServices = GetObject("winmgmts:\\" & strComputer)
Set wbemObjectSet = wbemServices.InstancesOf("Win32_NTLogEvent")

For Each wbemObject In wbemObjectSet
  WScript.Echo "Log file:    " & wbemObject.LogFile    & vbCrLf & _
         "Record Number:  " & wbemObject.RecordNumber  & vbCrLf & _
         "Type:      " & wbemObject.Type      & vbCrLf & _
         "Time Generated: " & wbemObject.TimeGenerated & vbCrLf & _
         "Source:     " & wbemObject.SourceName   & vbCrLf & _
         "Category:    " & wbemObject.Category    & vbCrLf & _
         "Category String: " & wbemObject.CategoryString & vbCrLf & _
         "Event:      " & wbemObject.EventCode   & vbCrLf & _
         "User:      " & wbemObject.User      & vbCrLf & _
         "Computer:    " & wbemObject.ComputerName  & vbCrLf & _
         "Message:     " & wbemObject.Message    & vbCrLf
Next


仔細考察Listings 1, 2和3,可以得出兩個非常重要的結(jié)論。第一個結(jié)論是三個腳本執(zhí)行了相同的三個步驟:腳本連接WMI,獲取WMI管理資源,然后返回資源屬性。第二個重要的結(jié)論是唯一改變的是類名(即,Win32_LogicalMemoryConfiguration, Win32_Service和 Win32_NTLogEvent)和資源的相應(yīng)屬性。

三步驟對WMI腳本是通用的。下面仔細考察每一個步驟。

Step One: 連接WMI Service
任何腳本的第一個步驟就是與目標(biāo)電腦上的Windows管理服務(wù)建立連接。連接本地或遠程電腦的WMI很簡單,調(diào)用VBScript的Getobject函數(shù),其參數(shù)為WMI腳本庫的標(biāo)記名(即"winmgmts:")和目標(biāo)電腦名

用這種方式連接WMI,會返回對SWbemServices對象的引用,在Listings 1, 2, 和 3中用變量名wbemServices引用。SWbemServices是在WMI腳本庫中定義的。WMI腳本庫提供通用功能對象集,腳本使用他們來訪問WMI infrastructure。一旦引用了SWbemServices 對象,就可以調(diào)用SWbemServices提供的任何方法。InstancesOf就是這樣一種方法

Step Two: 獲取WMI管理資源
不可否認,第二步絕大程度上取決于要執(zhí)行的任務(wù)。在獲取有關(guān)WMI管理資源的信息時,第二步很簡單,調(diào)用SWbemServices對象的InstancesOf方法。如同名字暗示的那樣,InstancesOf 返回所有的由資源類名標(biāo)識的管理資源。InstancesOf按SWbemObjectSet集合的方式返回請求的資源。再Listing 1,2和3中,使用變量名wbemObjectSet來引用。SWbemObjectSet是WMI腳本庫定義的另外一個腳本對象

Step Three: 顯示W(wǎng)MI管理資源的屬性
最后一步是列舉SWbemObjectSet 集合的內(nèi)容。SWbemObjectSet 內(nèi)的每一項是一個 SWbemObject (WMI腳本庫的對象),他表示請求資源的單個實例??梢允褂肧WbemObject 來訪問管理資源類定義中定義的方法和屬性。

但如果獲取WMI信息的腳本步驟是相同的,Win32_LogicalMemoryConfiguration, Win32_Service, 和 Win32_NTLogEvent的類是什么呢?更進一步,他們來自哪里,還有其他什么類,怎樣使用他們呢?問題的答案在與下述的WMI體系的組件。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多