Überprüfen ob Windows 7 aktiviert ist

  • Hi,

    ich habe folgendes Problem und zwar möchte ich ein Script schreiben das überprüft ob Windows 7 aktiviert ist. Falls nicht dann soll SLUI.exe geöffnet werden. Wie kann ich das mit AutoIT lösen. In der Registry ist der Status ja nirgends zu finden (ob Windows aktiviert ist oder nicht).

    Danke

  • Kannst du über WMI abfragen, geht allerdings nicht wenn das ganze via KMS-Server aktiviert wird.

    [autoit]

    MsgBox(0, "", lizenz())

    [/autoit][autoit][/autoit][autoit]

    Func lizenz()
    ;~ 0 = Unlicensed
    ;~ 1 = Licensed
    ;~ 2 = OOBGrace
    ;~ 3 = OOTGrace
    ;~ 4 = NonGenuineGrace
    ;~ 5 = Notification
    ;~ 6 = ExtendedGrace

    [/autoit][autoit][/autoit][autoit]

    $wbemFlagReturnImmediately = 0x10
    $wbemFlagForwardOnly = 0x20
    $colItems = ""
    $strComputer = "localhost"

    [/autoit][autoit][/autoit][autoit]

    $objWMIService = ObjGet("winmgmts:" & $strComputer & "\root\CIMV2")
    $colItems = $objWMIService.ExecQuery("SELECT * FROM SoftwareLicensingProduct", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly)

    [/autoit][autoit][/autoit][autoit]

    If IsObj($colItems) Then
    Local $Object_Flag = 0
    For $objItem In $colItems
    Return $objItem.LicenseStatus
    Next
    Else
    MsgBox(0, "WMI Output", "No WMI Objects Found for class: " & "SoftwareLicensingProduct")
    EndIf
    EndFunc ;==>lizenz

    [/autoit]

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.


  • Bringt leider einen Fehler Line8 : Variable must be Type of Object...

  • Bringt leider einen Fehler Line8 : Variable must be Type of Object...[/quote]
    Im Forum gibt es momentan einen Bug, dass Backslashes vor doppelten Anführungszeichen nicht angezeigt werden. (Vermutlich interpretiert die Forensoftware diese als Escape-Characters)
    Konkret hier heißt das: hinter "winmgmts:" gehören noch zwei Backslashes.

  • Bringt leider einen Fehler Line8 : Variable must be Type of Object...


    Im Forum gibt es momentan einen Bug, dass Backslashes vor doppelten Anführungszeichen nicht angezeigt werden. (Vermutlich interpretiert die Forensoftware diese als Escape-Characters)
    Konkret hier heißt das: hinter "winmgmts:" gehören noch zwei Backslashes.[/quote]

    Das wars :) Danke

    Edit : Nur gibt er dauerhaft (trotz LicenceStatus 1) eine 0 zurück.

    Einmal editiert, zuletzt von Sonjiru (17. März 2014 um 13:58)