Metode SWbemLocator.ConnectServer

Metode ConnectServer objek SWbemLocator terhubung ke namespace di komputer yang ditentukan dalam parameter strServer . Komputer target dapat berupa lokal atau jarak jauh, tetapi harus menginstal WMI. Untuk contoh dan perbandingan dengan jenis koneksi moniker, lihat Membuat Skrip WMI.

Dimulai dengan Windows Vista, SWbemLocator.ConnectServer dapat terhubung dengan komputer yang menjalankan IPv6 menggunakan alamat IPv6 dalam parameter strServer . Untuk informasi selengkapnya, lihat Dukungan IPv6 dan IPv4 di WMI.

Untuk penjelasan tentang sintaks ini, lihat Konvensi Dokumen untuk Scripting API.

Sintaks

objwbemServices = .ConnectServer( _
  [ ByVal strServer ], _
  [ ByVal strNamespace ], _
  [ ByVal strUser ], _
  [ ByVal strPassword ], _
  [ ByVal strLocale ], _
  [ ByVal strAuthority ], _
  [ ByVal iSecurityFlags ], _
  [ ByVal objwbemNamedValueSet ] _
)

Parameter

strServer [in, opsional]

Nama komputer yang Anda sambungkan. Jika komputer jarak jauh berada di domain yang berbeda dari akun pengguna tempat Anda masuk, maka gunakan nama komputer yang sepenuhnya memenuhi syarat. Jika Anda tidak menyediakan parameter ini, panggilan default ke komputer lokal.

Contoh: server1.network.fabrikam

Anda juga dapat menggunakan alamat IP dalam parameter ini. Jika alamat IP dalam format IPv6, komputer target harus menjalankan IPv6. Alamat di IPv4 terlihat seperti 123.123.123.123

Alamat IP dalam format IPv6 terlihat seperti 2010:836B:4179::836B:4179

Untuk informasi selengkapnya tentang DNS dan IPv4, lihat bagian Keterangan.

strNamespace [in, opsional]

String yang menentukan namespace tempat Anda masuk. Misalnya, untuk masuk ke namespace root\default, gunakan root\default. Jika Anda tidak menentukan parameter ini, parameter ini default ke namespace layanan yang dikonfigurasi sebagai namespace default untuk pembuatan skrip. Untuk informasi selengkapnya, lihat Membuat Aplikasi atau Skrip WMI.

Contoh: "root\CIMV2"

strUser [in, opsional]

Nama pengguna yang akan digunakan untuk menyambungkan. String dapat berupa nama pengguna atau Domain\Nama Pengguna. Biarkan parameter ini kosong untuk menggunakan konteks keamanan saat ini. Parameter strUser hanya boleh digunakan dengan koneksi ke server WMI jarak jauh. Jika Anda mencoba menentukan strUser untuk koneksi WMI lokal, upaya koneksi gagal. Jika autentikasi Kerberos sedang digunakan, maka nama pengguna dan kata sandi yang ditentukan dalam strUser dan strPassword tidak dapat dicegat pada jaringan. Anda dapat menggunakan format UPN untuk menentukan strUser.

Contoh: "DomainName\UserName"

Catatan

Jika domain ditentukan dalam strAuthority, maka domain tidak boleh ditentukan di sini. Menentukan domain di kedua parameter menghasilkan kesalahan Parameter Tidak Valid.

strPassword [in, opsional]

String yang menentukan kata sandi yang akan digunakan saat mencoba menyambungkan. Biarkan parameter kosong untuk menggunakan konteks keamanan saat ini. Parameter strPassword hanya boleh digunakan dengan koneksi ke server WMI jarak jauh. Jika Anda mencoba menentukan strPassword untuk koneksi WMI lokal, upaya koneksi gagal. Jika autentikasi Kerberos sedang digunakan, maka nama pengguna dan kata sandi yang ditentukan dalam strUser dan strPassword tidak dapat dicegat di jaringan.

strLocale [in, opsional]

String yang menentukan kode pelokalan. Jika Anda ingin menggunakan lokal saat ini, biarkan kosong. Jika tidak kosong, parameter ini harus berupa string yang menunjukkan lokal yang diinginkan di mana informasi harus diambil. Untuk pengidentifikasi lokal Microsoft, format string adalah "MS_xxxx", di mana xxxx adalah string dalam bentuk heksadesimal yang menunjukkan LCID. Misalnya, bahasa Inggris Amerika akan muncul sebagai "MS_409".

strAuthority [in, opsional]

""

Parameter ini bersifat opsional. Namun, jika ditentukan, hanya Kerberos atau NTLMDomain yang dapat digunakan.

Kerberos:

Jika parameter strAuthority dimulai dengan string "Kerberos:", maka autentikasi Kerberos digunakan dan parameter ini harus berisi nama utama Kerberos. Nama utama Kerberos ditentukan sebagai Kerberos:domain, seperti Kerberos:fabrikam di mana fabrikam adalah server tempat Anda mencoba menyambungkan.

Contoh: "Kerberos:DOMAIN"

NTLMDomain:

Untuk menggunakan autentikasi NT Lan Manager (NTLM), Anda harus menentukannya sebagai NTLMDomain:domain, seperti NTLMDomain:fabrikam di mana fabrikam adalah nama domain.

Contoh: "NTLMDomain:DOMAIN"

Jika Anda membiarkan parameter ini kosong, sistem operasi bernegosiasi dengan COM untuk menentukan apakah autentikasi NTLM atau Kerberos digunakan. Parameter ini hanya boleh digunakan dengan koneksi ke server WMI jarak jauh. Jika Anda mencoba mengatur otoritas untuk koneksi WMI lokal, upaya koneksi gagal.

Catatan

Jika domain ditentukan dalam strUser, yang merupakan lokasi pilihan, maka domain tersebut tidak boleh ditentukan di sini. Menentukan domain di kedua parameter menghasilkan kesalahan Parameter Tidak Valid.

iSecurityFlags [in, opsional]

Digunakan untuk meneruskan nilai bendera ke ConnectServer.

0 (0x0)

Nilai 0 untuk parameter ini menyebabkan panggilan ke ConnectServer kembali hanya setelah koneksi ke server dibuat. Hal ini dapat menyebabkan program Anda berhenti merespons tanpa batas waktu jika sambungan tidak dapat dibuat.

wbemConnectFlagUseMaxWait (128 (0x80))

Panggilan ConnectServer dijamin akan kembali dalam 2 menit atau kurang. Gunakan bendera ini untuk mencegah program Anda berhenti merespons tanpa batas waktu jika koneksi tidak dapat dibuat.

objwbemNamedValueSet [in, opsional]

Biasanya, ini tidak ditentukan. Jika tidak, ini adalah objek SWbemNamedValueSet yang elemennya mewakili informasi konteks yang dapat digunakan oleh penyedia yang melayani permintaan. Penyedia yang mendukung atau memerlukan informasi tersebut harus men dokumentasikan nama nilai yang dikenali, jenis data nilai, nilai yang diizinkan, dan semantik.

Nilai kembali

Jika berhasil, WMI mengembalikan objek SWbemServices yang terikat ke namespace yang ditentukan dalam strNamespace pada komputer yang ditentukan dalam strServer.

Kode kesalahan

Setelah menyelesaikan metode ConnectServer , objek Err mungkin berisi salah satu kode kesalahan dalam daftar berikut.

wbemErrAccessDenied - 2147749891 (0x80041003)

Nama pengguna dan kata sandi saat ini atau yang ditentukan tidak valid atau berwenang untuk membuat koneksi.

wbemErrFailed - 2147749889 (0x80041001)

Kesalahan yang tidak ditentukan.

wbemErrInvalidNamespace - 2147749902 (0x8004100E)

Namespace yang ditentukan tidak ada di server.

wbemErrInvalidParameter - 2147749896 (0x80041008)

Parameter yang tidak valid ditentukan, atau namespace tidak dapat diurai.

wbemErrOutOfMemory - 2147749894 (0x80041006)

Memori tidak cukup untuk menyelesaikan operasi.

wbemErrTransportFailure - 2147749909

Terjadi kesalahan jaringan, mencegah operasi normal.

Keterangan

Metode ConnectServer sering digunakan saat menyambungkan ke akun dengan kredensial nama pengguna dan kata sandi yang berbeda di komputer jarak jauh karena Anda tidak dapat menentukan kata sandi yang berbeda dalam string moniker . Untuk informasi selengkapnya, lihat Menyambungkan ke WMI di Komputer Jarak Jauh.

Menggunakan alamat IPv4 untuk menyambungkan ke server jarak jauh dapat mengakibatkan perilaku yang tidak terduga. Kemungkinan penyebabnya adalah entri DNS kedaluarsa di lingkungan Anda. Dalam keadaan ini, entri PTR kedaluarsa untuk mesin akan digunakan, dengan hasil yang tidak dapat diprediksi. Untuk menghindari perilaku ini, Anda dapat menambahkan titik (".") ke alamat IP sebelum memanggil ConnectServer. Ini menyebabkan pencarian DNS terbalik gagal, tetapi mungkin memungkinkan panggilan ConnectServer berhasil pada komputer yang benar.

Contoh

Contoh kode VBScript berikut menjelaskan cara menyambungkan ke komputer jarak jauh untuk mendapatkan data Win32_IP4RouteTable . Nama domain yang ditentukan dalam strDomain digunakan dalam strAuthority.

Const intMin = 3600
strComputer = "RemoteComputer" 
strDomain = "DomainName"  
Wscript.StdOut.Write "Please enter your user name:"
strUser = Wscript.StdIn.ReadLine 
Set objPassword = CreateObject("ScriptPW.Password")
Wscript.StdOut.Write "Please enter your password:"
strPassword = objPassword.GetPassword()
Wscript.Echo

Set objSWbemLocator = CreateObject("WbemScripting.SWbemLocator") 
Set objWMIService = objSWbemLocator.ConnectServer(strComputer, _ 
                                                  "root\CIMV2", _ 
                                                  strUser, _ 
                                                  strPassword, _ 
                                                  "MS_409", _ 
                                                  "NTLMDomain:" + strDomain) 
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_IP4RouteTable",,48) 
For Each objItem in colItems
    WScript.Echo "Age in Minutes: " & int(objItem.Age/intMin) & VBNewLine _
               & "Description:    " & objItem.Description & VBNewLine _
               & "Destination:    " & objItem.Destination & VBNewLine _
               & "InterfaceIndex: " & objItem.InterfaceIndex & VBNewLine _
               & "Mask:           " & objItem.Mask & VBNewLine _
               & "Metric1:        " & objItem.Metric1 & VBNewLine _
               & "Metric2:        " & objItem.Metric2 & VBNewLine _
               & "Metric3:        " & objItem.Metric3 & VBNewLine _
               & "Metric4:        " & objItem.Metric4 & VBNewLine _
               & "Metric5:        " & objItem.Metric5 & VBNewLine _
               & "Name:           " & objItem.Name & VBNewLine _
               & "NextHop:        " & objItem.NextHop & VBNewLine _
               & "Protocol:       " & objItem.Protocol & VBNewLine _
               & "Type: " & objItem.Type
    WScript.Echo
   </example>
Next

Cuplikan PowerShell berikut mengakses server jarak jauh dan mencantumkan kelas WMI yang tersedia.

$NameSpace = 'root\ccm'
$ComputerName = 'sccm.company.com'
$WbemLocator = New-Object -ComObject "WbemScripting.SWbemLocator"
$WbemServices = $WbemLocator.ConnectServer($ComputerName, $Namespace)
$WbemClasses = $WbemServices.SubclassesOf()
$WbemClasses

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung
Windows Vista
Server minimum yang didukung
Windows Server 2008
Header
Wbemdisp.h
Pustaka jenis
Wbemdisp.tlb
DLL
Wbemdisp.dll
CLSID
CLSID_SWbemLocator
IID
IID_ISWbemLocator

Lihat juga

SWbemLocator

SWbemServices

Menyambungkan ke WMI pada Komputer Jarak Jauh

Membuat Skrip WMI