乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      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&reg; Management Instrumentation)是Microsoft保持得最好的秘密,或者曾經(jīng)被這樣告知過。就是這樣,沒錯的。WMI是Windows的主要管理允許技術(shù)。這對你意味著什么?好,如果你管理者Windows服務(wù)器和工作站,或者你創(chuàng)建Windows管理程序,你需要知道WMI.本文是教授WMI系列的第一部分,說準(zhǔn)確點(diǎ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ù)。基于產(chǎn)業(yè)標(biāo)準(zhǔn)(由分布式管理任務(wù)組DMTF(Distributed Management Task Force )監(jiān)督),WMI可以訪問,配置,管理和檢測所有-好,幾乎所有-的Windows資源。

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

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

      使用Windows Script Host 和Microsoft Visual Basic&reg; 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),打印機(jī),矗立起,注冊表,等等(下面的自己翻譯吧 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.

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

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

      Quick Start to WMI Scripting
      為對WMI腳本有初步了解,首先舉個例子,獲取遠(yuǎn)程基于Windows平臺的電腦上安裝的物理內(nèi)存。在WMI之前,這個任務(wù)是不可能通過腳本簡單地完成的,除非借助第三方的工具。事實(shí)上,在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的擴(kuò)展保存文件。按圖一所示運(yùn)行腳本



      Figure 1. GetMemory.vbs output

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

      假定你想獲取遠(yuǎn)程電腦的所有服務(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


      運(yùn)行Listing 2的輸出參見Figure 2.



      Figure 2. GetServices.vbs output

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


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

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

      Step One: 連接WMI Service
      任何腳本的第一個步驟就是與目標(biāo)電腦上的Windows管理服務(wù)建立連接。連接本地或遠(yuǎn)程電腦的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管理資源
      不可否認(rèn),第二步絕大程度上取決于要執(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腳本庫的對象),他表示請求資源的單個實(shí)例??梢允褂肧WbemObject 來訪問管理資源類定義中定義的方法和屬性。

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

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

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多