Manajemen Jarak Jauh Windows dan WMI

Windows Remote Management dapat digunakan untuk mengambil data yang diekspos oleh Windows Management Instrumentation (WMI dan MI). Anda dapat memperoleh data WMI dengan skrip atau aplikasi yang menggunakan API Scripting WinRM 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 oleh URI, sama seperti sumber daya lainnya adalah saat menggunakan protokol WS-Management. URI dapat menentukan sumber daya WMI (kelas), tindakan WMI (metode), atau mengidentifikasi instans tertentu dari kelas dalam pesan yang 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 layanan WMI root\default , 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 alat baris perintah Winrm 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.

Untuk menghasilkan URI sumber daya untuk kelas WMI

  1. 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.

  2. Tambahkan namespace layanan WMI ke awalan.

    http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/

  3. Tambahkan nama kelas.

    http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service

  4. 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.

    Catatan

    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 API Scripting WinRM. Anda tidak menggunakan jalur WMI untuk menemukan sumber daya. Sebagai gantinya, Anda mengonversi namespace dan hierarki WMI menjadi 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 adalah 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 kunci memiliki kualifikasi Kunci WMI.

Anda dapat memperoleh instans kelas tertentu dengan beberapa cara:

  • Panggilan ke Session.Enumerate dengan parameter filter dan 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 Session.Get, Anda harus menyediakan satu atau beberapa nilai kunci tertentu, yang didahului oleh tanda tanya (?).

    Format URI untuk instans tertentu adalah 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 nama-nilai 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 singleton 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"
    
  • Menambahkan pemilih ke objek ResourceLocator atau IWSManResourceLocator .

    Contoh kode VBScript berikut menunjukkan cara menggunakan pemilih untuk mendapatkan instans Win32_Processor tertentu.

    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"
    

Tentang Manajemen Jarak Jauh Windows

Awalan URI

URI Sumber Daya

Pembuatan skrip di Manajemen Jarak Jauh Windows