我有一個關於Win32_WindowsProductActivation
WMI類和SetProductKey
方法的問題。關於WMI Win32_WindowsProductActivation類和SetProductKey方法的問題
當我運行與WMI代碼創建器產生的代碼(VBScript)的,執行失敗,錯誤Invalid parameter
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
' Obtain an instance of the the class
' using a key property value.
Set objShare = objWMIService.Get("Win32_WindowsProductActivation")
' Obtain an InParameters object specific
' to the method.
Set objInParam = objShare.Methods_("SetProductKey"). _
inParameters.SpawnInstance_()
' Add the input parameters.
objInParam.Properties_.Item("ProductKey") = "QW4HDDQCRGHM64M6GJRK8K83T"
' Execute the method and obtain the return status.
' The OutParameters object in objOutParams
' is created by the provider.
Set objOutParams = objWMIService.ExecMethod("Win32_WindowsProductActivation", "SetProductKey", objInParam)
' List OutParams
Wscript.Echo "Out Parameters: "
Wscript.echo "ReturnValue: " & objOutParams.ReturnValue
但如果我使用此代碼工程確定,使用InstancesOf
方法。
Dim VOL_PROD_KEY
VOL_PROD_KEY = "QW4HDDQCRGHM64M6GJRK8K83T"
for each Obj in GetObject("winmgmts:{impersonationLevel=impersonate}").InstancesOf ("win32_WindowsProductActivation")
result = Obj.SetProductKey (VOL_PROD_KEY)
if err <> 0 then
WScript.Echo Err.Description, "0x" & Hex(Err.Number)
Err.Clear
end if
Next
的quiestions是
爲什麼第一個代碼失敗?或爲什麼這個wmi類需要使用InstancesOf
執行這個方法?