Windows Remote Management dan WMI
Windows Remote Management dapat digunakan untuk mengambil data yang diekspos oleh Instrumentasi Manajemen Windows ( WMI dan MI). Anda dapat memperoleh data WMI dengan skrip atau aplikasi yang menggunakan WinRM Scripting API atau melalui alat baris perintah Winrm.
WinRM mendukung sebagian besar kelas dan operasi WMI yang sudah dikenal, termasuk objek yang disematkan. WinRM dapat memanfaatkan WMI untuk mengumpulkan data tentang sumber daya atau mengelola sumber daya pada sistem operasi berbasis Windows. Itu berarti Anda dapat memperoleh data tentang objek seperti disk, adaptor jaringan, layanan, atau proses di perusahaan Anda melalui serangkaian kelas WMI yang ada. Anda juga dapat mengakses data perangkat keras yang tersedia dari penyedia IPMI WMI standar.
Mengidentifikasi Sumber Daya WMI
Anda dapat mereferensikan kelas WMI sebagai sumber daya di WinRM dan dalam protokol WS-Management: jenis entitas terkelola, seperti layanan atau disk.
Kelas atau metode WMI diidentifikasi olehURI, sama seperti sumber daya lainnya adalah saat menggunakan protokol WS-Management. URI dapat menentukan sumber daya WMI (kelas), tindakan WMI (metode), atau mengidentifikasi instans kelas tertentu dalam pesan dikirim melalui jaringan. Untuk informasi selengkapnya, lihat URI Sumber Daya.
Membuat Awalan URI untuk Kelas WMI
Awalan URI berisi bagian tetap dan namespace layanan WMI. Misalnya, awalan URI di Windows Server yang berisi bagian tetap dari awalan adalah: http://schemas.microsoft.com/wbem/wsman/1/wmi/<WmiNamespace>
. Ini memungkinkan awalan URI dibuat untuk namespace layanan WMI apa pun. Misalnya, untuk mengakses namespace root\default WMI, gunakan awalan URI berikut: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/default/
.
Sebagian besar kelas WMI untuk manajemen berada di namespace root\cimv2. Untuk mengakses kelas dan instans di namespace root\cimv2, gunakan awalan URI: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/
. Untuk informasi selengkapnya, lihat URI Sumber Daya.
Menghasilkan URI Lengkap untuk Kelas WMI
URI yang Anda berikan, baik ke Winrm alat baris perintah atau ke skrip, terdiri dari awalan ditambah spesifikasi sumber daya.
Prosedur berikut menjelaskan cara menghasilkan URI sumber daya baik untuk mendapatkan kelas WMI atau untuk digunakan dalam operasi enumerasi.
Membuat URI sumber daya untuk kelas WMI
Mulailah dengan awalan yang menunjukkan skema protokol WS-Management harus digunakan.
https://schemas.microsoft.com/wbem/wsman/1
Awalan URI sumber daya untuk kelas WMI selalu sama. Untuk informasi selengkapnya, lihat Awalan URI .
Tambahkan namespace layanan WMI ke awalan.
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/
Tambahkan nama kelas.
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service
Untuk mengatur nilai properti, atau untuk memanggil metode tertentu, tambahkan nilai kunci atau nilai yang diperlukan untuk kelas .
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt
Jika Anda membiarkan nilai kunci kosong, Anda tidak akan mengubah nilai properti asli.
Nota
Membiarkan nilai kunci kosong mengatur nilai properti ke NULL.
Menemukan Sumber Daya WMI dengan WinRM
Anda dapat memperoleh data WMI baik melalui alat baris perintah, Winrm, atau melalui skrip Visual Basic yang menggunakan WinRM Scripting API. Anda tidak menggunakan jalur WMI untuk menemukan sumber daya. Sebagai gantinya, Anda mengonversi namespace dan hierarki WMI ke URI .
WinRM URI untuk kelas WMI berisi dua bagian: awalan URI dan kelas yang ingin Anda akses.
Misalnya, URI berikut dapat disediakan ke metode Session.Enumerate untuk mencantumkan semua layanan di komputer. Awalan URI http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/
, dan kelasnya Win32_Service.
strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_CurrentTime"
Di WMI, cantumkan data untuk semua instans sumber daya atau kelas dengan beberapa cara:
Kueri untuk semua instans sumber daya tersebut.
Set colServices = objWMIService.ExecQuery("Select * from Win32_Service")
Panggilan ke SWbemServices.InstancesOf atau SWbemObject.Instances_.
Set colServices = InstancesOf("Win32_Service")
Di WinRM, ada satu cara untuk mencantumkan semua instans sumber daya: Session.Enumerate.
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"
Set colServices = objSession.Enumerate( strResource )
Menemukan Instans Tertentu dari Sumber Daya WMI
Di WMI, Anda dapat menunjuk instans kelas tertentu baik dengan menentukan nilai untuk properti kunci atau dengan mengkueri instans yang cocok dengan daftar nilai properti. Properti utama memiliki kualifikasi Kunci WMI.
Anda dapat memperoleh instans kelas tertentu dengan beberapa cara:
Panggilan ke Session.Enumerate dengan filter dan parameter dialek untuk membuat kueri.
RemoteComputer = "servername.domain.com" strDialect = "http://schemas.microsoft.com/wbem/wsman/1/WQL" strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/*" Set objWsman = CreateObject("Wsman.Automation") Set objSession = objWsman.CreateSession("https://" & RemoteComputer) strFilter = "SELECT * FROM Win32_Share WHERE Name='Admin$'" Set objResultSet = objSession.Enumerate(strResource, strFilter, strDialect)
Panggilan ke SWbemServices.Get. Untuk Sesi .Dapatkan, Anda harus menyediakan satu atau beberapa nilai kunci tertentu, yang didahului oleh tanda tanya (?).
Format URI untuk instans tertentu
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/WMI_Class?Key1=Value
.strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=winmgmt"
Kelas WMI mungkin memiliki lebih dari satu kunci. Pasangan nilai nama kunci dipisahkan oleh tanda "+". Dalam hal ini, formatnya adalah:
http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Key1=Value1+Key2=Value2
.Sintaks WinRM untuk mendapatkan objek WMI tunggal berbeda dari WMI. Singleton adalah kelas WMI yang ditentukan sehingga hanya satu instans yang diizinkan. Win32_CurrentTime atau Win32_WMISetting adalah contoh kelas singleton WMI.
Sintaks WMI untuk singleton ditampilkan dalam contoh kode VBScript berikut.
Set TimeObject = objWMIService.Get("Win32_CurrentTime=@")
Contoh berikut menunjukkan sintaksis singleton WinRM yang tidak menggunakan "@".
strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_CurrentTime"
Menambahkanpemilihke objekresourceLocatoratauIWSManResourceLocator.
Contoh kode VBScript berikut menunjukkan cara menggunakan pemilih untuk mendapatkan instans tertentu Win32_Processor.
strUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Processor" Set objWsman = CreateObject("Wsman.Automation") Set Session = objWsman.CreateSession Set Locator = objWsman.CreateResourceLocator(strUri) Locator.AddSelector "DeviceID", "CPU0"
Topik terkait
-
Tentang Windows Remote Management