共用方式為


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

Session.Enumerate方法是取得指定資源的所有實例的 Windows 遠端系統管理方法。

Session.Enumerate方法不會在SWbemObjectSet物件中取得集合,例如SWbemService.ExecQuery呼叫搭配WMI 查詢做為參數 (例如, ExecQuery("SELECT * from Win32_LogicalDisk")) 或呼叫類似SWbemObject.Instances_的方法。 Session.EnumerateEnumerator 物件方法與用來將檔案讀取為數據流的腳本 TextStream 物件的作業更類似。

若要將檔案讀取為文字資料流程,您必須建立腳本 TextStream 物件,並呼叫 TextStream.Readline 方法來讀取檔案的每一行。 同樣地,您可以呼叫 Session.Enumerate 方法來取得 Enumerator 物件,並呼叫 Enumerator.ReadItem 方法來取得下一個專案。 如同從文字檔讀取時的情況,您可以呼叫 Enumerator.AtEndOfStream 屬性來檢查您是否已到達資料項目的結尾。

列舉資源

  1. 建立工作階段。

    Const RemoteComputer = "servername.domain.com"
    Set objWsman = CreateObject( "WSMan.Automation" )
    Set objSession = objWsman.CreateSession( "https://" _
        & RemoteComputer )
    
  2. 建構 URI 以識別資源。

    strResource = "http://schemas.microsoft.com/wbem/wsman/1/" &_
                 "wmi/root/cimv2/Win32_ScheduledJob"
    
  3. 呼叫 Session.Enumerate 方法。 此呼叫會啟動列舉。 在 WinRM 中,列舉作業不會以與 WMI 相同的方式取得集合。 相反地, Session.Enumerate 方法會建立在 Enumerator 物件中維護的WS-Management通訊協定列舉內容。

    Set EnumJobs = objSession.Enumerate( strResource )
    
  4. 呼叫 Enumerator.ReadItem 方法,以取得結果的下一個專案。 在WS-Management通訊協定中,這會對應至提取作業。 使用 Enumerator.AtEndOfStream 方法做為控制項,以瞭解何時停止讀取。

    While Not EnumJobs.AtEndOfStream
        NumOfJobs = NumOfJobs + 1
        DisplayOutput( EnumJobs.ReadItem ) 
    Wend
    

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

Const RemoteComputer = "servername.domain.com"
Set objWsman = CreateObject( "WSMan.Automation" )
Set objSession = objWsman.CreateSession( "https://" & RemoteComputer )
strResource = "http://schemas.microsoft.com/wbem/wsman/1/" &_
              "wmi/root/cimv2/Win32_ScheduledJob"

Set EnumJobs = objSession.Enumerate( strResource )
NumOfJobs = 0
While Not EnumJobs.AtEndOfStream
    NumOfJobs = NumOfJobs + 1
    DisplayOutput( EnumJobs.ReadItem ) 
Wend
Wscript.Echo "There are " & NumOfJobs & " jobs scheduled."

'****************************************************
' 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 遠端系統管理

使用 Windows 遠端系統管理

Windows 遠端系統管理參考