共用方式為


使用 WMI 腳稿類型庫

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

搭配 Microsoft Visual Studio 使用 WMI 腳本類型庫

注意

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

 

下列步驟說明如何讓整合開發環境(IDE)識別 WbemScripting 類別庫。

將 WMI 腳本類型庫新增至項目參考

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

  2. 在 [新增參考] 方塊的 [COM] 索引標籤中,選取 [Microsoft WMI Scripting 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 方法中指定 WbemScripting GUID,CreateObjectGetObject

    這會警示 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 腳本物件,以及 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