bbkim
Mỗi người một câu chuyện
Chào các bạn!
Mình có đoạn script autoit như dưới.
Mình muốn dùng nó để check mã lỗi khi kích hoạt Windows
Tương tự như đoạn lệnh "slmgr.vbs -ato" trong Command Prompt
Mình muốn lấy đoạn báo mã lỗi (VD: "Error: 0xC004C003 The activation server determined the specified product key is blocked") để xác định lỗi kích hoạt.
Các bạn kiểm tra giúp mình để check lỗi kích hoạt bằng WMI với nha.
Chân thành cảm ơn!
Mình có đoạn script autoit như dưới.
Mình muốn dùng nó để check mã lỗi khi kích hoạt Windows
Tương tự như đoạn lệnh "slmgr.vbs -ato" trong Command Prompt
Mình muốn lấy đoạn báo mã lỗi (VD: "Error: 0xC004C003 The activation server determined the specified product key is blocked") để xác định lỗi kích hoạt.
Các bạn kiểm tra giúp mình để check lỗi kích hoạt bằng WMI với nha.
Chân thành cảm ơn!
Mã:
#RequireAdmin
Opt('MustDeclareVars', 1)
Local $wbemFlagReturnImmediately, $wbemFlagForwardOnly, $colItems, $strComputer, $Output, $objWMIService, $objItem = ""
$wbemFlagReturnImmediately = 0x10
$wbemFlagForwardOnly = 0x20
$colItems = ""
$strComputer = "localhost"
$Output=""
$Output = $Output & "Computer: " & $strComputer & @CRLF
$Output = $Output & "==========================================" & @CRLF
$objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\CIMV2")
$colItems = $objWMIService.ExecQuery("SELECT * FROM SoftwareLicensingProduct WHERE PartialProductKey <> Null", "WQL", _
$wbemFlagReturnImmediately + $wbemFlagForwardOnly)
If IsObj($colItems) then
For $objItem In $colItems
$objItem.Activate()
$Output = $Output & "ApplicationID: " & $objItem.ApplicationID & @CRLF
$Output = $Output & "ID: " & $objItem.ID & @CRLF
$Output = $Output & "LicenseFamily: " & $objItem.LicenseFamily & @CRLF
$Output = $Output & "InstallationID: " & $objItem.OfflineInstallationId & @CRLF
$Output = $Output & "LicenseStatus: " & $objItem.LicenseStatus & @CRLF
if Msgbox(1,"WMI Output",$Output) = 2 then ExitLoop
$Output=""
Next
Else
Msgbox(0,"WMI Output","No WMI Objects Found for class: " & "SoftwareLicensingProduct" )
Endif
Func WMIDateStringToDate($dtmDate)
Return (StringMid($dtmDate, 5, 2) & "/" & _
StringMid($dtmDate, 7, 2) & "/" & StringLeft($dtmDate, 4) _
& " " & StringMid($dtmDate, 9, 2) & ":" & StringMid($dtmDate, 11, 2) & ":" & StringMid($dtmDate,13, 2))
EndFunc