Перечисление или составление списка всех экземпляров ресурса

метод Session. enumerate является служба удаленного управления Windowsным подходом для получения всех экземпляров указанного ресурса.

Метод Session. Enumerate не получает коллекцию в объекте SWbemObjectSet , например SWbemService.ExeКкуери Call с запросом WMI в качестве параметра (например, ExecQuery("SELECT * from Win32_LogicalDisk") ), или вызов метода, например SWbemObject. Instances _. Метод Session. Enumerate и объект перечислителя гораздо более похож на операцию объекта TextStream скриптов, который используется для чтения файлов в виде потока.

Чтобы считать файлы в виде текстового потока, необходимо создать объект скрипта TextStream и вызвать метод TextStream. ReadLine для чтения каждой строки файла. Аналогичным образом можно вызвать метод Session. Enumerate , чтобы получить объект перечислителя и вызвать метод Enumerator. ReadItem для получения следующего элемента. Как и при чтении из текстового файла, можно вызвать свойство Enumerator. атендофстреам , чтобы проверить, достигли ли вы конца элементов данных.

Перечисление ресурсов

  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 устанавливает WS-Management контекст перечисления протокола, который поддерживается в объекте перечислителя .

    Set EnumJobs = objSession.Enumerate( strResource )
    
  4. Вызовите метод Enumerator. ReadItem , чтобы получить следующий элемент результатов. В WS-Management Protocol это соответствует операции извлечения. Используйте метод Enumerator. атендофстреам в качестве элемента управления, чтобы выяснить, когда следует прерывать чтение.

    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 Справочник по удаленному управлению