Mendapatkan Data dari Komputer Jarak Jauh

Anda bisa mendapatkan data atau mengelola sumber daya pada komputer jarak jauh serta komputer lokal. Menyambungkan ke komputer jarak jauh dalam skrip Manajemen Jarak Jauh Windows sangat mirip dengan membuat koneksi lokal. Data instans WMI tersedia dan, jika komputer jarak jauh memiliki perangkat keras BMC yang dapat berkomunikasi menggunakan protokol WS-Management, data Intelligent Platform Management Interface (IPMI) juga tersedia. Untuk informasi selengkapnya, lihat Manajemen Jarak Jauh Windows dan WMI dan Manajemen Perangkat Keras Jarak Jauh.

Anda mungkin perlu membuat objek ConnectionOptions untuk menentukan informasi tentang jenis autentikasi yang diminta untuk masuk.

Jika akun di komputer jarak jauh memiliki nama pengguna dan kata sandi masuk yang sama, satu-satunya informasi tambahan yang Anda butuhkan adalah transportasi, nama domain, dan nama komputer. Karena Kontrol Akun Pengguna (UAC), akun jarak jauh harus merupakan akun domain dan anggota grup Administrator komputer jarak jauh. Jika akun tersebut adalah anggota komputer lokal dari grup Administrator, maka UAC tidak mengizinkan akses ke layanan WinRM. Untuk mengakses layanan WinRM jarak jauh dalam grup kerja, pemfilteran UAC untuk akun lokal harus dinonaktifkan dengan membuat entri registri DWORD berikut dan mengatur nilainya ke 1: [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System] LocalAccountTokenFilterPolicy.

Untuk menyambungkan ke komputer jarak jauh menggunakan nama pengguna dan kata sandi log masuk Anda

  1. Tentukan komputer target dengan nama domain atau alamat IP yang sepenuhnya memenuhi syarat dan tetapkan ini ke konstanta. Jika alamat IPv6 ditentukan, maka alamat harus diapit dalam tanda kurung siku.

    Const RemoteComputer = "ComputerName.domain.com"
    
  2. Buat objek WSMan .

    Set objWsman = CreateObject("WSMan.Automation")
    
  3. Buat sesi, tentukan transportasi, HTTP atau HTTPS, dan gabungkan dengan konstanta yang mewakili komputer target.

    
    Set objSession = objWsman.CreateSession("https://" & RemoteComputer)
    

Contoh kode VBScript berikut menunjukkan skrip lengkap. Skrip menyertakan sub-rutin untuk mengubah data dari XML mentah ke bentuk yang dapat dibaca manusia. Untuk informasi selengkapnya, lihat Menampilkan Output XML dari Skrip WinRM.

Const RemoteComputer = "ComputerName.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_OperatingSystem"
Set objResponse = objSession.Enumerate(strResource)

While Not objResponse.AtEndOfStream
    DisplayOutput(objResponse.ReadItem) 
Wend

'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput(strWinRMXml)
    Dim xmlFile, xslFile
    Set xmlFile = CreateObject("MSXml.DOMDocument") 
    Set xslFile = CreateObject("MSXml.DOMDocument")
    xmlFile.LoadXml(strWinRMXml)
    xslFile.Load("WsmTxt.xsl")
    Wscript.Echo xmlFile.TransformNode(xslFile) 
End Sub

Untuk menyambungkan ke komputer jarak jauh menggunakan akun lain

  1. Tentukan komputer target dengan nama domain atau alamat IP yang sepenuhnya memenuhi syarat dan tetapkan ini ke konstanta. Jika alamat IPv6 ditentukan, maka alamat harus diapit dalam tanda kurung siku.

    Const RemoteComputer = "ComputerName.domain.com"
    
  2. Buat objek WSMan .

    Set objWsman = CreateObject("Wsman.Automation")
    
    
  3. Panggil metode WSMan.CreateConnectionOptions untuk membuat objek ConnectionOptions . Akun pada komputer jarak jauh harus merupakan anggota grup administrator komputer lokal.

    Set objConnectionOptions = objWsman.CreateConnectionOptions
    objConnectionOptions.UserName = "Username"
    objConnectionOptions.Password = "Password"
    
  4. Pada panggilan WSman.CreateSession , tentukan bendera koneksi sesi yang sesuai dalam parameter bendera . Untuk informasi selengkapnya, lihat Konstanta Sesi. Tentukan komputer target dengan nama komputer atau alamat IP yang sepenuhnya memenuhi syarat dan transportasi—http atau https. Skrip ini meminta autentikasi Kerberos dari layanan WinRM jarak jauh.

    Tidak seperti skrip WMI, Anda dapat menggunakan beberapa metode autentikasi dalam skrip WinRM. Untuk informasi selengkapnya, lihat Autentikasi untuk Koneksi Jarak Jauh.

    iFlags = objWsman.SessionFlagUseKerberos Or _
      objWsman.SessionFlagCredUserNamePassword
    Set objSession = objWsman.CreateSession("https://" & RemoteComputer, _
      iFlags, objConnectionOptions)
    
  5. Setelah objek sesi tersedia, Anda dapat memanggil salah satu metode objek Sesi untuk mendapatkan data untuk sumber daya. Anda bisa mendapatkan data untuk sumber daya apa pun yang tersedia di komputer tempat sesi berjalan. Untuk informasi selengkapnya, lihat Mendapatkan Data dari Komputer Lokal.

Contoh kode VBScript berikut menunjukkan skrip lengkap. Skrip menyertakan sub-rutin untuk mengubah data dari XML mentah ke bentuk yang dapat dibaca manusia. Untuk informasi selengkapnya, lihat Menampilkan Output XML dari Skrip WinRM. Skrip menentukan autentikasi Kerberos, tetapi jika komputer jarak jauh berada dalam grup kerja daripada domain, menentukan Kerberos menghasilkan kesalahan.

Const RemoteComputer = "ComputerName.domain.com"

Set objWsman = CreateObject("Wsman.Automation")
Set objConnectionOptions = objWsman.CreateConnectionOptions
objConnectionOptions.UserName = "Username"
objConnectionOptions.Password = "Password"
iFlags = objWsman.SessionFlagUseKerberos Or _
  objWsman.SessionFlagCredUserNamePassword
Set objSession = objWsman.CreateSession("https://" & RemoteComputer, _
  iFlags, objConnectionOptions)
strResource = "http://schemas.microsoft.com/wbem/wsman/1/" & _
  "wmi/root/cimv2/Win32_OperatingSystem"
Set objResponse = objSession.Enumerate(strResource)

While Not objResponse.AtEndOfStream
    DisplayOutput(objResponse.ReadItem) 
Wend

'****************************************************
' 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 Windows Remote Management

Referensi Manajemen Jarak Jauh Windows