Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
yarı eşzamanlı çağrılarının performansı çoğu durumda yeterlidir. Eşzamansız çağrılar genellikle betikler için önerilen bir uygulama değildir. Ancak, zaman uyumsuz çağrılar yapılması gerekiyorsa, WMI'yi zaman uyumsuz çağrılarda erişim denetimleri yapmaya zorlamak için bir kayıt defteri değeri ayarlanabilir.
HKEY_LOCAL_MACHINE\Software\Microsoft\WBEM\CIMOM\UnsecAppAccessControlDefault kayıt defteri değeri, WMI'nin zaman uyumsuz bir çağrı için veri döndürürken kabul edilebilir bir kimlik doğrulama düzeyi olup olmadığını denetler. Geri arama, orijinal eşzamansız çağrıdan daha düşük bir kimlik doğrulama düzeyinde döndürülebilir. Varsayılan olarak, bu değer sıfır olarak ayarlanır, böylece geri çağırmalar işaretlenmez. Betik oluşturmada zaman uyumsuz çağrıların güvenliğini sağlamak için kayıt defteri anahtarını 1 (bir) olarak ayarlamanız gerekir.
Betikler, UnsecAppAccessControlDefault kayıt defteri değerinin ayarını değiştirmek için StdRegProvkayıt defterinesnesinin GetStringValue ve SetStringValue yöntemlerini kullanabilir. Uzaktan erişim için gereken kimlik doğrulaması ve kimliğe bürünme düzeyleri hakkında daha fazla bilgi için bkz. Uzak Bilgisayarda WMI'ye Bağlanma.
VBScript'te zaman uyumsuz çağrı güvenliği ayarlamak için
Aşağıdaki VBScript kod örneği, geri çağırmaların WMI kimlik doğrulamasını denetlemek için kayıt defteri değerinin nasıl değiştirileceğini gösterir.
Betik, UnsecAppAccessControlDefault değerini sıfırdan bire veya değer zaten ayarlanmışsa birden sıfıra değiştirir. Sıfır, yeni yüklenen bir sistemde varsayılan değerdir. Bayrak ayarlandıktan sonra, ayar yeniden başlatma veya WMI yeniden başlatması boyunca devam eder.
Betik, StdRegProv.GetStringValue ve StdRegProv.SetStringValueçağırmak için SWbemMethod.InParameters nesnesini ve SWbemObject.ExecMethod kullanır. InParameters nesnesindeki değerleri ayarlama hakkında daha fazla bilgi için bkz. InParameters Nesneleri Oluşturma ve Dış Parametre Nesnelerini Ayrıştırma. GetObjectkullanan bir kayıt defteri çağrısı örneği için bkz. StdRegProv.SetStringValue.
' Registry key value in hex
Const hklm = &h800000002
' Subkey string
Const Subkey = "software\\microsoft\\wbem\\cimom"
' Asynchronous access control
Const sValueName = "UnsecAppAccessControlDefault"
' Obtain registry object
Set objReg = GetObject("winmgmts:root\default:StdRegProv")
' Get the initial value of the asynchronous
' access control registry key
' Use an InParameters object to set up the
' parameters for the ExecMethod call
' For more information see Constructing InParameters Objects
' topic and SWbemObject.ExecMethod_ topic
Set InParams = objReg.methods_("GetStringValue").InParameters.SpawnInstance_
InParams.hDefKey = hklm
InParams.sSubKeyName = Subkey
InParams.sValueName = sValueName
' Get return value from OutParameters object returned by ExecMethod.
' For more information see Parsing OutParameters Objects topic
Set OutParams = objReg.Execmethod_("GetStringValue",InParams)
If (OutParams.ReturnValue <> 0) then
Wscript.Echo "GetStringValue returned " & OutParams.ReturnValue
Wscript.Quit 1
End If
Svalue = OutParams.sValue
If (sValue = 0) Then
AccessControl = "WMI not performing asynch access control"
Else
AccessControl = "WMI performing asynch access control"
End If
Wscript.Echo sValueName & " = " _
& sValue & VBNewLine & AccessControl
' Change asynchronous access control registry key value
Set InParams = objReg.methods_("SetStringValue").InParameters.SpawnInstance_
InParams.hDefKey = hklm
InParams.sSubKeyName = Subkey
InParams.sValueName = sValueName
InParams.sValue = sValue XOR 1
Set OutParams = objReg.ExecMethod_("SetStringValue",InParams)
If (OutParams.Returnvalue <> 0) Then
Wscript.Echo "SetStringValue returned " & OutParams.Returnvalue
Wscript.Quit 1
End If
Wscript.Echo SValueName & " changed to " & (sValue XOR 1)