共用方式為


查詢資源的特定實例

對 Session.Enumerate呼叫具有選擇性參數,會將列舉範圍縮小為查詢。 由於 WinRM 腳本 API 和 WinRM C++ API 會緊密地模型化於基礎 WS-Management 通訊協定上,因此參數會使用相同的術語來查詢通訊協定—篩選篩選方言

您可以使用 Session.Enumerate篩選和方言參數,也可以建構並提供 ResourceLocator 物件和 AddSelector 方法,但無法執行這兩個動作。

此程式會針對已系結並啟用 TCP/IP 的網路適配器執行查詢。 查詢會要求ipEnabled屬性設定為True的所有Win32_NetworkAdapterConfiguration實例 除了新增 篩選方言之外,查詢會像簡單的列舉一樣處理。

在此範例中,Resource 常數的資源名稱是以星號 “*” 表示,因為 strFilter 字串中已經提及類別名稱Win32_NetworkAdapterConfiguration。

查詢資源的特定實例

  1. 為了方便閱讀,請將 URI 定義為常數。

    Const RemoteComputer = "servername.domain.com"
    Const Resource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/*"
    Const Dialect = "http://schemas.microsoft.com/wbem/wsman/1/WQL"
    
  2. 建立工作階段。

    Set objWsman = CreateObject("Wsman.Automation")
    Set objSession = objWsman.CreateSession("https://" & RemoteComputer)
    
  3. 建構篩選字串。 Windows 遠端管理支援 WQL 作為篩選方言。

    strFilter = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IpEnabled=TRUE"
    
  4. 在 flags 參數中設定任何必要的列舉常數。

    請注意,如果旗標包含列舉常數 WSManFlagHierarchyDeepBasePropsOnlyWSManFlagHierarchyShallow,則 WinRM 服務會傳回錯誤碼ERROR_WSMAN_POLYMORPHISM_MODE_UNSUPPORTED

  5. 呼叫 Session.Enumerate 方法。 此呼叫會啟動列舉。 Session.Enumerate 方法會建立在 Enumerator 對象中維護的 WS-Management 通訊協定列舉內容。

    Set objResultSet = objSession.Enumerate(Resource, strFilter, Dialect)
    
  6. 呼叫 Enumerator.ReadItem 方法,以取得結果的下一個專案。 在 WS 管理通訊協定中,這會對應至提取作業。 使用 Enumerator.AtEndOfStream 方法做為控件,以瞭解何時停止讀取。

    While Not objResultSet.AtEndOfStream
        DisplayOutput(objResultSet.ReadItem)
    Wend
    

下列 VBScript 程式代碼範例會顯示完整的腳本。

Const RemoteComputer = "servername.domain.com"
Const Resource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/*"
Const Dialect = "http://schemas.microsoft.com/wbem/wsman/1/WQL"

Set objWsman = CreateObject("Wsman.Automation")
Set objSession = objWsman.CreateSession("https://" & RemoteComputer)

strFilter = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IpEnabled=TRUE"

Set objResultSet = objSession.Enumerate(Resource, strFilter, Dialect)

While Not objResultSet.AtEndOfStream
    DisplayOutput(objResultSet.ReadItem)
Wend

'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput(strWinRMXml)
    Dim xmlFile, xslFile
    Set xmlFile = CreateObject("MSXml2.DOMDocument.3.0") 
    Set xslFile = CreateObject("MSXml2.DOMDocument.3.0")
    xmlFile.LoadXml(strWinRMXml)
    xslFile.Load("WsmTxt.xsl")
    Wscript.Echo xmlFile.TransformNode(xslFile) 
End Sub

使用 Windows 遠端管理

列舉或列出資源的所有實例

ResourceLocator