使用 WMI 腳本型別程式庫

您可以使用 WMI 腳本型別程式庫,從 Microsoft Visual Studio 和 Windows 腳本主機 WSF 檔案中呼叫 WMI 腳本 API 方法。

搭配 Microsoft Visual Studio 使用 WMI 腳本型別程式庫

注意

Visual InterDev 6.0 功能已整合到 Microsoft Visual Studio .NET中。

 

下列程式描述如何讓整合式開發環境 (IDE) 知道 WbemScripting 型別程式庫。

將 WMI 腳本型別程式庫新增至專案參考

  1. [專案]功能表中選取 [新增參考]。

  2. 在 [ 新增參考 ] 方塊的 [COM] 索引標籤中,選取 [Microsoft WMI 腳本 V1.2 程式庫]。

  3. 如果沒有適當的選項出現在 [參考] 清單中,請使用 [參考] 方塊中的[流覽] 加以新增。 [ 流覽 ] 會開啟 [新增參考] 方塊,讓您找到 WbemScripting 型別程式庫。

    WbemScripting 型別程式庫位於 %windir%\System32\Wbem 目錄的 Wbemdisp.tlb 檔案中。

  4. 選取檔案,然後按一下 [開啟]。 Microsoft WMI 腳本 V1.2 程式庫會出現在參考清單中。 請確定您在清單中選取此專案旁的方塊。

搭配 Windows 腳本主機 2.0 使用 WMI 腳本型別程式庫

您可以在 Windows 腳本主機 WSF 檔案中包含 WbemScripting.SWbemLocator 的參考,不同于以 Visual Basic、Scripting Edition 或其他指令碼語言撰寫的腳本。 這可讓您使用常數名稱,而不是值。 例如,在設定驗證時,請使用 WbemAuthenticationLevelPktPrivacy ,而不是值 6。

腳本可以使用下列方法,與 WMI 類型程式庫的腳本 API 連線:

  • 在 VBScript 方法 CreateObjectGetObject中指定 WbemScripting GUID。

    這會警示 Windows 腳本主機連線到 WMI 物件集。

    下列 VBScript 程式碼範例會建立新的 SWbemDateTime 物件。

    Set dateTime = CreateObject("WbemScripting.SWbemDateTime")
    
  • 取得新的或現有的 物件時,使用 Moniker 字串 「winmgmts:」。

    下列 VBScript 程式碼範例會使用 「winmgmts:」 Moniker 來取得handle屬性為 0 (零) 的 Win32_Process 實例。 Handle 是這個類別的索引鍵屬性。

    Set Process = GetObject("winmgmts:Win32_Process.Handle=0")
    
  • 使用 < WSH 2.0 XML 檔案格式的參考標記來 > 參考 WMI 型別程式庫。 如果您使用 < 參考 > 標記,標籤必須具有 uuid 屬性,其值為 WMI 類型程式庫的 GUID ,或 (建議) 物件屬性,其值為任何您可以建立之 WMI 腳本物件的 PROGID

    下列 VBScript 程式碼範例使用 「WbemScripting」 的 PROGID。 若要執行腳本,請將文字儲存在副檔名為 .wsf 的檔案中。

    <?xml version="1.0" encoding="US-ASCII"?>
    <job>
    <reference object="WbemScripting.SWbemLocator"/>
    <script language="VBScript">
        set service = GetObject("winmgmts:")
        ' Following line uses a symbolic 
        ' constant from the WMI type library
        service.Security_.impersonationLevel = _
            wbemImpersonationLevelDelegate
    </script>
    </job>
    
  • <使用物件> 標記來建立 WMI 腳本物件。 您可以使用參考所要建立之 WMI 腳本物件的名稱值來指定 id 屬性,而 progid 屬性等於 WMI 腳本物件的 PROID。

    下列 WSH 腳本會顯示本機電腦上的主機名稱和處理器數目。 若要執行腳本,請將文字儲存在副檔名為 .wsf 的檔案中。

    <?xml version="1.0" encoding="US-ASCII"?>
    <job>
     <object id="objSWbemLocator" progid="WbemScripting.SWbemLocator"/>
     <script language="VBScript">
    
      strComputer = "."
      Set objSWbemServices = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
      Set colSettings = objSWbemServices.ExecQuery("Select * From Win32_ComputerSystem")
      For Each objComputer in colSettings
       Wscript.Echo "System Name: " & objComputer.Name
       Wscript.Echo "Number of Processors: " & objComputer.NumberOfProcessors
      Next
    
     </script>
    </job>
    

WMI 中的腳本

WMI 的腳本 API