This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Nhờ tư vấn Script Autoit: Đọc và kiểm tra mã lỗi Activate() trong WMI

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ã:
#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
 

bbkim

Mỗi người một câu chuyện
Sau một hồi lần mò thì tìm được mã lỗi.
-2147352567 0x80020009 Exception occurred.

Những vẫn chưa giải quyết được vấn đề. Haiz
 

bbkim

Mỗi người một câu chuyện
2 người đó dùng mã nguồn khác chứ có dùng autoit đâu.

Hem lẽ giờ chuyển qua C++ hoặc C# hay python sao. Già yếu rồi mà
 

bbkim

Mỗi người một câu chuyện
hay bác chèm lệnh cmd vô lấy cũng nhanh mà dùng for để đọc lấy cũng nhanh mà chuẩn nữa
Giải quyết cho Windows thì dễ. Nhưng nếu làm cho Office cũ (2010, 2013) thì rắc rối lắm. Nên mình muốn xử lý cho nó luôn.
Bản cũ của mình là gọi cmd hết á. Nhưng nhìn thấy ghét nên mới qua wmi cho nó đẹp
 

QuangDat

Rìu Chiến
Tài khoản bị khóa
ủa của e làm full office có 9 dòng mà
 

QuangDat

Rìu Chiến
Tài khoản bị khóa
check gọi full phiên bản full mã lỗi muốn check api cid thì thêm có vài dòng là ful chức năng mà bác chứ vmic không thì hơi căng e cũng chưa mò sâu về cái này
Thử cài Office 2010 chung 2019 rồi cài Visio/Project nữa đi. Test trên Win 7
Cơ bản nhất là hem thích xài cmd.
e chỉ cần cài office 2010 check full từ 2010 tới 2019 mà bác
 

bbkim

Mỗi người một câu chuyện
WMI có hết. Mình chỉ chưa sử dụng được nó thôi