Bagikan melalui


Menghitung atau Mencantumkan Semua Instans Sumber Daya

Metode Session.Enumerate adalah pendekatan Manajemen Jarak Jauh Windows untuk mendapatkan semua instans sumber daya tertentu.

Metode Session.Enumerate tidak mendapatkan koleksi dalam objek SWbemObjectSet seperti panggilan SWbemService.ExecQuery dengan kueri WMI sebagai parameter (misalnya, ExecQuery("SELECT * from Win32_LogicalDisk")), atau panggilan ke metode seperti SWbemObject.Instances_. Session.Enumerate dan metode objek Enumerator jauh lebih mirip dengan operasi skrip objek TextStream yang digunakan untuk membaca file sebagai aliran.

Untuk membaca file sebagai aliran teks, Anda harus membuat objek TextStream skrip dan memanggil metode TextStream.Readline untuk membaca setiap baris file. Dengan cara yang sama, Anda dapat memanggil metode Session.Enumerate untuk mendapatkan objek Enumerator dan memanggil metode Enumerator.ReadItem untuk mendapatkan item berikutnya. Seperti halnya saat membaca dari file teks, Anda dapat memanggil properti Enumerator.AtEndOfStream untuk memeriksa apakah Anda telah mencapai akhir item data.

Untuk menghitung sumber daya

  1. Membuat sesi.

    Const RemoteComputer = "servername.domain.com"
    Set objWsman = CreateObject( "WSMan.Automation" )
    Set objSession = objWsman.CreateSession( "https://" _
        & RemoteComputer )
    
  2. Buat URI untuk mengidentifikasi sumber daya.

    strResource = "http://schemas.microsoft.com/wbem/wsman/1/" &_
                 "wmi/root/cimv2/Win32_ScheduledJob"
    
  3. Panggil metode Session.Enumerate . Panggilan ini memulai enumerasi. Di WinRM, operasi enumerasi tidak mendapatkan koleksi dengan cara yang sama seperti yang dilakukan WMI. Sebagai gantinya, metode Session.Enumerate menetapkan konteks enumerasi protokol WS-Management yang dipertahankan dalam objek Enumerator .

    Set EnumJobs = objSession.Enumerate( strResource )
    
  4. Panggil metode Enumerator.ReadItem untuk mendapatkan item hasil berikutnya. Dalam protokol WS-Management, ini sesuai dengan operasi penarikan. Gunakan metode Enumerator.AtEndOfStream sebagai kontrol untuk mengetahui kapan harus berhenti membaca.

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

Contoh kode VBScript berikut menunjukkan skrip lengkap.

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

Tentang Manajemen Jarak Jauh Windows

Menggunakan Manajemen Jarak Jauh Windows

Referensi Manajemen Jarak Jauh Windows