Bagikan melalui


Mendelegasikan dengan WMI

Saat Anda menjalankan skrip pada sistem lokal yang mendapatkan data dari sistem jarak jauh, WMI memasok kredensial Anda ke penyedia data pada sistem jarak jauh. Ini hanya memerlukan tingkat peniruan peniruan , karena hanya satu hop jaringan yang diperlukan. Namun, jika skrip terhubung ke WMI pada sistem jarak jauh dan mencoba membuka file log pada sistem jarak jauh tambahan, maka skrip gagal kecuali tingkat peniruan adalah Delegasi. Mendelegasikan tingkat peniruan diperlukan oleh operasi apa pun yang melibatkan lebih dari satu hop jaringan. Untuk informasi selengkapnya tentang keamanan DCOM di WMI, lihat Mengatur Keamanan Proses Aplikasi Klien. Untuk informasi selengkapnya tentang koneksi hop satu jaringan antara dua komputer, lihat Menyambungkan ke WMI di Komputer Jarak Jauh.

Untuk menggunakan delegasi untuk menyambungkan ke komputer melalui komputer lain

  1. Aktifkan delegasi di Direktori Aktif (Pengguna Direktori Aktif dan Komputer di Panel KontrolTugas Administratif) pada pengendali domain. Akun pada sistem jarak jauh harus ditandai sebagai Tepercaya untuk delegasi dan akun pada sistem lokal tidak boleh ditandai sebagai Akun sensitif dan tidak dapat didelegasikan. sistem lokal, sistem jarak jauh, dan pengendali domain harus menjadi anggota domain yang sama atau di domain tepercaya.

    Catatan Menggunakan delegasi adalah risiko keamanan karena memberikan proses di luar kontrol langsung Anda kemampuan untuk menggunakan kredensial Anda.

  2. Ubah kode Anda dengan cara berikut untuk menunjukkan bahwa Anda ingin menggunakan delegasi.

    Powershell

    Atur parameter -Impersonation pada cmdlet WMI ke Delegasi.

    Vbscript

    Atur parameter impersonationLevel ke Delegasikan dalam panggilan ke SWbemLocator.ConnectServer atau Delegasikandalam string moniker . Anda juga dapat mengatur peniruan dalam objek SWbemSecurity.

    C++

    Atur parameter tingkat peniruan ke RPC_C_IMP_LEVEL_DELEGATE dalam panggilan ke CoInitializeSecurity atau CoSetProxyBlanket. Untuk informasi selengkapnya tentang kapan melakukan panggilan ini, lihat Menginisialisasi COM untuk Aplikasi WMI.

    Untuk meneruskan identitas klien ke server COM jarak jauh di C++, atur cloaking dalam panggilan ke CoSetProxyBlanket. Untuk informasi selengkapnya, lihat Cloaking.

Contoh

Contoh kode berikut menunjukkan string moniker yang mengatur peniruan ke Delegasi. Ketahuilah bahwa otoritas harus diatur ke Kerberos.

set objWMIServices = Getobject("winmgmts:{impersonationLevel=Delegate,authority=kerberos:MyDomain\Computer_B}!\\ComputerB\Root\CIMv2")

Contoh kode berikut menunjukkan cara mengatur peniruan identitas ke Delegasi (nilai 4) menggunakan SWbemLocator.ConnectServer.

Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = objLocator.ConnectServer(Computer_B, _
                                             "Root\CIMv2", _
                                             AdminAccount, _
                                             MyPassword, _
                                             "kerberos:Domain\Computer_B")
objWMIService.Security_.ImpersonationLevel = 4

Mengamankan Koneksi WMI Jarak Jauh

Membuat Proses Dari Jarak Jauh dengan WMI