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
Membuat sesi.
Const RemoteComputer = "servername.domain.com" Set objWsman = CreateObject( "WSMan.Automation" ) Set objSession = objWsman.CreateSession( "https://" _ & RemoteComputer )
Buat URI untuk mengidentifikasi sumber daya.
strResource = "http://schemas.microsoft.com/wbem/wsman/1/" &_ "wmi/root/cimv2/Win32_ScheduledJob"
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 )
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
Topik terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk