commit 0929cdc128422a836535afdb0cef6a7a57397b6d Author: TheMCHK <54335614+TheMCHK@users.noreply.github.com> Date: Wed Sep 18 14:15:34 2019 -0300 Create main diff --git a/main b/main new file mode 100644 index 0000000..5147449 --- /dev/null +++ b/main @@ -0,0 +1,1821 @@ +; +#NoEnv +SendMode, Input +SetWorkingDir, %A_ScriptDir% +#SingleInstance, Force +#NoTrayIcon +for n, param in A_Args +{ +if (param == "hwid") { +Mode = HWID +go = h +GoSub, SilentRun +} else if (param == "kms38") { +Mode = KMS38 +go = k +GoSub, SilentRun +} +} +if(!InStr(A_OSVersion, "10.0.")) { +MsgBox, 16, Error, This application is compatible with Windows 10 only +ExitApp +} +if(A_Is64bitOS) { +system32 = %A_WinDir%\sysnative +vera = x64 +} else { +system32 = %A_WinDir%\system32 +vera = x86 +} +FileInstall, pkconfig.txt, %A_Temp%\pkconfig.txt, 1 +fileread, pkconfig, %A_Temp%\pkconfig.txt +FileDelete, %A_Temp%\pkconfig.txt +Gui, Startup: Color, 0067B3 +Gui, Startup: Font, CFFFFFF, Segoe UI +Gui, Startup: Margin, 24, 24 +Gui, Startup: Add, Picture, Icon-104 w32 h32, user32.dll +Gui, Startup: Font, S16 +Gui, Startup: Add, Text, x+8 ym-8 w392, The tool is starting up... +Gui, Startup: Font, S9 +Gui, Startup: Add, Text, y+8 wp, The tool is performing necessary startup checks. This operation is needed to ensure that the activation process will go smoothly. +Gui, Startup: Add, Progress, x80 y+24 h16 w320 +0x8 -smooth vStartupProgress +SetTimer, MoveStartupProgress, 33 +Gui, Startup: -MinimizeBox +Gui, Startup: Show, , +gosub, WUCheck +gosub, ClipSVCCheck +gosub, wlidsvcCheck +gosub, sppsvcCheck +gosub, GetOnlineAdapter +gosub, GetOfflineAdapter +Goto, ChecksDone +StartupGuiClose: +ExitApp +ChecksDone: +if (online == "online") { +gosub, GetOnlineAdapter +} else if (online == "offline") { +gosub, GetOfflineAdapter +} +Pversion := "0.62.01" +, AppName := "HWID GEN MkVI 0.62.01 (c) Dumpster Inc." +, hAutoWnd +Try { +Gui Font, s7, Arial +Gui Add, % "Tab3", x4 y2 w671 h395 +Theme, GENERATION +Gui Font +} Catch { +Gui Font, s7, Arial +Gui Add, Tab2, x4 y2 w671 h395 +Theme, GENERATION +Gui Font +} +Gui Font, s8, Arial +Gui, Add, Text, x22 y30 w40 h12, INFO: +Gui, Add, Text, x72 y30 w100 h12 gLaunchAIOWares, AiOwares.com +Gui, Add, Text, x155 y30 w40 h12, || +Gui, Add, Text, x175 y30 w110 h12 gLaunchNsane, NsaneForums.com +Gui, Add, Text, x465 y30 w80 h12, Work Mode: +Gui, Add, DropDownList, x545 y25 w114 vMode,LicenseSwitch|SetOffline|SetOnline|Rearm|Clean|Clean_ClipSVC|gVLK|HWID_Key|KMS38|HWID|INFO|| +Gui, Add, Button, x22 y350 w114 h24 Default gPatch, START +Gui, Add, Edit, x23 y58 w636 h280 vLogF Readonly HwndhOut +Gui, Add, Progress, x182 y350 w330 h24 -smooth vStatusProgress, 0 +Gui Add, Button, x560 y350 w99 h24 gGuiClose, EXIT +gosub, SystemInfo +Gui Tab +Gui Show, w679 h400, %AppName% [ %ProductFamily% %buildlabex%.%buildlabex2% | %vera% ] +Gui, -MinimizeBox +SetTimer, MoveStartupProgress, Off +Gui, Startup: Destroy +return +MoveStartupProgress: +GuiControl, Startup:, StartupProgress, 0 +return +Patch: +InProcess = 1 +Gui, +Disabled +starttime := a_now +GuiControlGet, Mode +if (Mode == "HWID_Key") { +GoSub, KeyInstallOnly +Gui, -Disabled +InProcess = 0 +return +} else if (Mode == "gVLK") { +GoSub, KeyInstallOnly +Gui, -Disabled +InProcess = 0 +return +} else if (Mode == "Clean") { +GoSub, CleanTokens +Gui, -Disabled +InProcess = 0 +return +} else if (Mode == "Clean_ClipSVC") { +GoSub, Clean_ClipSVC +Gui, -Disabled +InProcess = 0 +return +} else if (Mode == "Rearm") { +GoSub, RearmSystem +Gui, -Disabled +InProcess = 0 +return +} else if (Mode == "INFO" ) { +GoSub, InfoSplash +Gui, -Disabled +InProcess = 0 +return +} else if (Mode == "LicenseSwitch") { +FileInstall, lic.switcher.exe, lic.switcher.exe, 1 +Run, lic.switcher.exe +Gui, -Disabled +InProcess = 0 +return +} else if (Mode == "SetOnline") { +gosub, RefreshGUILicenseInformation +gosub, SystemChecks +if (online == "offline") { +GuiControl, , StatusProgress, 20 +GoSub, AdapterHandleSetEnabled +Gui, -Disabled +InProcess = 0 +return +} else if (online == "online") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " System is already online!" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +Gui, -Disabled +InProcess = 0 +return +} +} else if (Mode == "SetOffline") { +gosub, RefreshGUILicenseInformation +gosub, SystemChecks +if (online == "online") { +GuiControl, , StatusProgress, 20 +GoSub, AdapterHandleSetDisabled +Gui, -Disabled +InProcess = 0 +return +} else if (online == "offline") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " System is already offline!" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +Gui, -Disabled +InProcess = 0 +return +} +} +Random, rand +dir = %A_Temp%\GatherOsState%rand% +FileCreateDir, %dir% +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " PATCH PROCESS PREREQUISITES" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +InProcess = 1 +Gui, +Disabled +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Preparing..." . "`r`n", hOut) +GuiControl, , StatusProgress, 0 +gosub, SystemChecks +gosub, RefreshGUILicenseInformation +if(UnsupportedSku) { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Not supported System detected!" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +GuiControl, Disable , StartActBtn +GuiControl, +Default, ExitBtn +MsgBox, 16, Error, Unsupported edition +Gui, -Disabled +InProcess = 0 +return +} +FileAppend, System check:`n, HWID.log +FileAppend, Description: %ProductDescription%`n, HWID.log +FileAppend, BuildLabEx: %buildlabex%.%buildlabex2%`n, HWID.log +FileAppend, Architecture: %vera%`n, HWID.log +FileAppend, PartialKey: %ProductPartialKey%`n, HWID.log +FileAppend, Edition: %ProductFamily%`n, HWID.log +FileAppend, Status %ProductStatusMsg%`n`n, HWID.log +FileAppend, Starting activation at %A_DD% %A_MMM% %A_YYYY% %A_Hour%:%A_Min%:%A_Sec%...`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Installing key:" . " " . NewKey . " " . "`r`n", hOut) +FileAppend, Installing key %NewKey%...`n, HWID.log +try RunWait, %system32%\cmd.exe /c "cscript.exe /nologo %A_WinDir%\system32\slmgr.vbs -ipk %NewKey% >>HWID.log", , Hide +catch { +gosub, ProcessFail +return +} +GuiControl, , StatusProgress, 10 +if(Mode = "KMS38") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting KMS Host IP to avoid DNS queries..." . "`r`n", hOut) +FileAppend, Setting KMS Host IP to avoid DNS queries...`n, HWID.log +RunWait, %system32%\cmd.exe /c (cscript.exe /nologo %A_WinDir%\system32\slmgr.vbs -skms 192.0.2.69:1833>>HWID.log), , Hide +GuiControl, , StatusProgress, 15 +gosub, RefreshGUILicenseInformation +} +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Generating ticket for: " . Mode . "" . "`r`n", hOut) +FileAppend, Generating ticket for %Mode%`n`n, HWID.log +if(Mode = "HWID") { +if(ProductFamily = "EnterpriseS") { +if(A_OSVersion = "10.0.10240") { +FileInstall, gatherosstateLTSB15.exe, %dir%\gatherosstate.exe, 1 +} else { +FileInstall, gatherosstate.exe, %dir%\gatherosstate.exe, 1 +} +} else if(ProductFamily = "EnterpriseSN") { +if(A_OSVersion = "10.0.10240") { +FileInstall, gatherosstateLTSB15.exe, %dir%\gatherosstate.exe, 1 +} else { +FileInstall, gatherosstate.exe, %dir%\gatherosstate.exe, 1 +} +} else { +FileInstall, gatherosstate.exe, %dir%\gatherosstate.exe, 1 +} +FileInstall, slshim32_aio.dll, %dir%\slc.dll, 1 +FileAppend, -1 0`n, %dir%\TargetSKU.txt +} else if(Mode = "KMS38") { +FileInstall, gatherosstate.exe, %dir%\gatherosstate.exe, 1 +FileInstall, slshim32_aio.dll, %dir%\slc.dll, 1 +FileAppend, -1 1`n, %dir%\TargetSKU.txt +} +try RunWait, %dir%\gatherosstate.exe, %dir%, Hide +catch { +gosub, ProcessFail +return +} +GuiControl, , StatusProgress, 50 +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Applying GenuineTicket.xml..." . "`r`n", hOut) +FileAppend, Applying GenuineTicket.xml...`n`n, HWID.log +fallback=0 +try RunWait, %system32%\cmd.exe /c "clipup -v -o -altto `"%dir%`" >>%dir%\check.txt", , Hide +catch { +gosub, ProcessFail +return +} +gosub, ApplyCheck +GuiControl, , StatusProgress, 65 +FileRemoveDir, %dir%, 1 +FileAppend, `n, HWID.log +back1 := +back2 := +back3 := +back4 := +gosub, WUCheck +if (wuraw == 4) { +FileAppend, WU is disabled...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " WU is disabled..." . "`r`n", hOut) +FileAppend, Setting WU to auto...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting WU to auto..." . "`r`n", hOut) +try RegWrite, REG_DWORD, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv, Start, 2>>HWID.log, , Hide +catch { +gosub, ProcessFail +return +} +FileAppend, Starting WU...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Starting WU..." . "`r`n", hOut) +svcname := "wuauserv" +gosub, ServiceStartTest +if (SStartedStatusMessage == "Functional [Start: 0]") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Service Start successful: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, Service Start successful: %SStartedStatusMessage%`n`n, HWID.log +} else if (SStartedStatusMessage == "Running [Start: 10]") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Service already: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, Service already: %SStartedStatusMessage%`n`n, HWID.log +} else { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " ERROR: Service Start failed: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, ERROR: Service Start failed: %SStartedStatusMessage%`n`n, HWID.log +} +back1 = 1 +} else { +FileAppend, WU is enabled: %wu% %S1StartedStatusMessage%`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " WU is enabled: " . wu . " " . S1StartedStatusMessage . "`r`n", hOut) +} +gosub, ClipSVCCheck +if (clipsvcraw == 4) { +FileAppend, ClipSVC is disabled...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " ClipSVC is disabled..." . "`r`n", hOut) +FileAppend, Setting ClipSVC to auto...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting ClipSVC to auto..." . "`r`n", hOut) +try RegWrite, REG_DWORD, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ClipSVC, Start, 2>>HWID.log, , Hide +catch { +gosub, ProcessFail +return +} +FileAppend, Starting ClipSVC...`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Starting ClipSVC..." . "`r`n", hOut) +svcname := "clipsvc" +gosub, ServiceStartTest +if (SStartedStatusMessage == "Functional [Start: 0]") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Service Start successful: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, Service Start successful: %SStartedStatusMessage%`n`n, HWID.log +} else if (SStartedStatusMessage == "Running [Start: 10]") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Service already: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, Service already: %SStartedStatusMessage%`n`n, HWID.log +} else { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " ERROR: Service Start failed: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, ERROR: Service Start failed: %SStartedStatusMessage%`n`n, HWID.log +} +back2 = 1 +} else { +FileAppend, ClipSVC is enabled: %clipsvc% %S2StartedStatusMessage%`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " ClipSVC is enabled: " . clipsvc . " " . S2StartedStatusMessage . "`r`n", hOut) +} +gosub, wlidsvcCheck +if (wlidsvcraw == 4) { +FileAppend, wlidsvc is disabled...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " wlidsvc is disabled..." . "`r`n", hOut) +FileAppend, Setting wlidsvc to auto...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting wlidsvc to auto..." . "`r`n", hOut) +try RegWrite, REG_DWORD, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wlidsvc, Start, 2>>HWID.log, , Hide +catch { +gosub, ProcessFail +return +} +FileAppend, Starting wlidsvc...`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Starting wlidsvc..." . "`r`n", hOut) +svcname := "wlidsvc" +gosub, ServiceStartTest +if (SStartedStatusMessage == "Functional [Start: 0]") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Service Start successful: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, Service Start successful: %SStartedStatusMessage%`n`n, HWID.log +} else if (SStartedStatusMessage == "Running [Start: 10]") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Service already: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, Service already: %SStartedStatusMessage%`n`n, HWID.log +} else { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " ERROR: Service Start failed: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, ERROR: Service Start failed: %SStartedStatusMessage%`n`n, HWID.log +} +back3 = 1 +} else { +FileAppend, wlidsvc is enabled: %wlidsvc% %S3StartedStatusMessage%`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " wlidsvc is enabled: " . wlidsvc . " " . S3StartedStatusMessage . "`r`n", hOut) +} +gosub, sppsvcCheck +if (sppsvcraw == 4) { +FileAppend, sppsvc is disabled...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " sppsvc is disabled..." . "`r`n", hOut) +FileAppend, Setting sppsvc to auto...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting sppsvc to auto..." . "`r`n", hOut) +try RegWrite, REG_DWORD, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sppsvc, Start, 2>>HWID.log, , Hide +catch { +gosub, ProcessFail +return +} +FileAppend, Starting sppsvc...`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Starting sppsvc..." . "`r`n", hOut) +svcname := "sppsvc" +gosub, ServiceStartTest +if (SStartedStatusMessage == "Functional [Start: 0]") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Service Start successful: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, Service Start successful: %SStartedStatusMessage%`n`n, HWID.log +} else if (SStartedStatusMessage == "Running [Start: 10]") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Service already: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, Service already: %SStartedStatusMessage%`n`n, HWID.log +} else { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " ERROR: Service Start failed: " . SStartedStatusMessage . "`r`n", hOut) +FileAppend, ERROR: Service Start failed: %SStartedStatusMessage%`n`n, HWID.log +} +back4 = 1 +} else { +FileAppend, sppsvc is enabled: %sppsvc% %S4StartedStatusMessage%`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " sppsvc is enabled: " . sppsvc . " " . S4StartedStatusMessage . "`r`n", hOut) +} +if(Mode = "HWID") { +gosub, SystemChecks +off := +if (online == "offline") { +GoSub, AdapterHandleSetEnabledAuto +off=1 +} else if (online == "online") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " System is online!" . "`r`n", hOut) +} +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Activating..." . "`r`n", hOut) +FileAppend, Activating...`n, HWID.log +RunWait, %system32%\cmd.exe /c "cscript.exe /nologo %A_WinDir%\system32\slmgr.vbs -ato>>HWID.log", , Hide +} +gosub, RefreshGUILicenseInformation +if (back1 == 1) { +FileAppend, Stopping WU...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Stopping WU..." . "`r`n", hOut) +svcname := "wuauserv" +gosub, ServiceStopMainProcess +FileAppend, Setting WU back to disabled...`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting WU back to disabled..." . "`r`n", hOut) +try RegWrite, REG_DWORD, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv, Start, 4>>HWID.log, , Hide +catch { +gosub, ProcessFail +return +} +back := +} +if (back2 == 1) { +FileAppend, Stopping ClipSVC...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Stopping ClipSVC..." . "`r`n", hOut) +svcname := "ClipSVC" +gosub, ServiceStopMainProcess +FileAppend, Setting ClipSVC back to disabled...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting ClipSVC back to disabled..." . "`r`n", hOut) +try RegWrite, REG_DWORD, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ClipSVC, Start, 4>>HWID.log, , Hide +catch { +gosub, ProcessFail +return +} +back2 := +} +if (back3 == 1) { +FileAppend, Stopping wlidsvc...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Stopping wlidsvc..." . "`r`n", hOut) +svcname := "wlidsvc" +gosub, ServiceStopMainProcess +FileAppend, Setting wlidsvc back to disabled...`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting wlidsvc back to disabled..." . "`r`n", hOut) +try RegWrite, REG_DWORD, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wlidsvc, Start, 4>>HWID.log, , Hide +catch { +gosub, ProcessFail +return +} +back3 := +} +if (back4 == 1) { +FileAppend, Stopping sppsvc...`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Stopping sppsvc..." . "`r`n", hOut) +svcname := "sppsvc" +gosub, ServiceStopMainProcess +FileAppend, Setting sppsvc back to disabled...`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting sppsvc back to disabled..." . "`r`n", hOut) +try RegWrite, REG_DWORD, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sppsvc, Start, 4>>HWID.log, , Hide +catch { +gosub, ProcessFail +return +} +back4 := +} +if (off == 1) { +FileAppend, Disabling Internet Connection.`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Disabling Internet Connection." . "`r`n", hOut) +GoSub, AdapterHandleSetDisabledAuto +off := +} +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Done" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +GuiControl, , StatusProgress, 100 +if(ProductStatusCode = 1) { +FileAppend, Successfully activated %ProductFamily%!`n, HWID.log +MsgBox, 64, Success, Successfully activated %ProductFamily%! +} else { +MsgBox, 16, Error, Failed to activate %ProductFamily%.`n`nPlease check HWID.log file for details. +FileAppend, Failed to activate %ProductFamily%. License status: %ProductStatusMsg%`n, HWID.log +} +FileAppend, `n`n, HWID.log +gosub, SystemInfo +Gui, -Disabled +InProcess = 0 +return +ServiceStopMainProcess: +ServiceTest := +ReturnValue := +svcstop := +ServiceTest = wmic service where name='%svcname%' call stopservice>%A_Temp%\check.txt +runwait, %COMSPEC% /C %ServiceTest%, ,Hide +fileread, svcstop, %A_Temp%\check.txt +filedelete, %A_Temp%\check.txt +Loop, Parse, svcstop, `n, `n`r +{ +if !eachLine := Trim(A_LoopField) +continue +IfInstring, A_LoopField, ReturnValue = +{ +stringsplit, InfoArray, A_LoopField, = +ReturnValue2 := InfoArray2 +ReturnValue = %ReturnValue2% +if (ReturnValue == "0;") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Service stopped successfully." . "`r`n", hOut) +FileAppend, Service stopped successfully.`n`n, HWID.log +} else if (ReturnValue <> "0;") { +if (ReturnValue == "5;") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Service stopped (or already not running)." . "`r`n", hOut) +FileAppend, Service stopped (or already not running).`n`n, HWID.log +} else { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " ERROR: " . ReturnValue . "`r`n", hOut) +FileAppend, ERROR: %ReturnValue%.`n`n, HWID.log +} +} +} +} +return +ApplyCheck: +fileread, actcheck, %dir%\check.txt +filedelete, %dir%\check.txt +acount := +a2count=0 +Loop, Parse, actcheck, `n, `n`r +{ +if !eachLine := Trim(A_LoopField) +continue +a2count++ +IfInString, A_LoopField, no applicable +{ +acount=1 +} +IfInString, A_LoopField, Successfully converted +{ +acount=2 +} +} +if(acount = "1") { +FileAppend, %actcheck%`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " ERROR: Ticket apply failed. No ticket found." . "`r`n", hOut) +FileAppend, ERROR: Ticket apply failed. No ticket found.`n, HWID.log +if (fallback == 1) { +return +} +gosub, TargetFallback +} else if(acount = "2") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Ticket apply successful." . "`r`n", hOut) +FileAppend, %actcheck%`n, HWID.log +FileAppend, Ticket apply successful.`n, HWID.log +} else if(a2count <= "2") { +FileAppend, %actcheck%`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " ERROR: Ticket apply failed. Invalid ticket." . "`r`n", hOut) +FileAppend, ERROR: Ticket apply failed. Invalid ticket.`n, HWID.log +if (fallback == 1) { +return +} +gosub, TargetFallback +} +return +TargetFallback: +fallback=1 +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Retrying with fallback method." . "`r`n", hOut) +FileAppend, Retrying with fallback method.`n, HWID.log +filedelete, %dir%\TargetSKU.txt +if(Mode = "HWID") { +FileAppend, %NewSku% 0`n, %dir%\TargetSKU.txt +} else if(Mode = "KMS38") { +FileAppend, %NewSku% 1`n, %dir%\TargetSKU.txt +} +try RunWait, %dir%\gatherosstate.exe, %dir%, Hide +catch { +gosub, ProcessFail +return +} +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Applying GenuineTicket.xml..." . "`r`n", hOut) +FileAppend, Applying GenuineTicket.xml...`n, HWID.log +try RunWait, %system32%\cmd.exe /c "clipup -v -o -altto `"%dir%`" >>%dir%\check.txt", , Hide +catch { +gosub, ProcessFail +return +} +gosub, ApplyCheck +if(acount = "1") { +gosub, ProcessFail +return +} else if(a2count <= "2") { +gosub, ProcessFail +return +} +return +KeyInstallOnly: +InProcess = 1 +Gui, +Disabled +starttime := a_now +if (Mode == "HWID_Key"){ +GoSub, RefreshGUILicenseInformation +} else if (Mode == "gVLK"){ +GoSub, RefreshGUILicenseInformation +} +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " INSTALLING KEY:" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +IfNotInString, NewKey, %ProductPartialKey% +{ +FileAppend, System check:`n, HWID.log +FileAppend, Description: %ProductDescription%`n, HWID.log +FileAppend, BuildLabEx: %buildlabex%.%buildlabex2%`n, HWID.log +FileAppend, Architecture: %vera%`n, HWID.log +FileAppend, PartialKey: %ProductPartialKey%`n, HWID.log +FileAppend, Edition: %ProductFamily%`n, HWID.log +FileAppend, Status %ProductStatusMsg%`n`n, HWID.log +FileAppend, Starting activation at %A_DD% %A_MMM% %A_YYYY% %A_Hour%:%A_Min%:%A_Sec%...`n`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Installing key:" . " " . NewKey . " " . "`r`n", hOut) +FileAppend, Installing key %NewKey%...`n, HWID.log +try RunWait, %system32%\cmd.exe /c "cscript.exe /nologo %A_WinDir%\system32\slmgr.vbs -ipk %NewKey% >>HWID.log", , Hide +catch { +gosub, ProcessFail +return +} +GuiControl, , StatusProgress, 15 +gosub, RefreshGUILicenseInformation +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Done" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +GuiControl, , StatusProgress, 100 +FileAppend, `n`n, HWID.log +} else { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " KEY ALREADY INSTALLED!" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +} +gosub, SystemInfo +Gui, -Disabled +InProcess = 0 +return +AdapterHandleSetDisabled: +output_Text(timestring . " SYSTEM FOUND BEING:" . " " . online . " " . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting Adapter to 'Disabled'" . "`r`n", hOut) +GuiControl, , StatusProgress, 40 +MsgBox, 64, User Action needed!, Press 'OK' to set adapter to 'Disabled'. +try RunWait, %system32%\cmd.exe /c wmic path win32_networkadapter where index=%AIndex% call disable, , Hide +catch { +gosub, ProcessFail +return +} +GuiControl, , StatusProgress, 100 +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +gosub, RefreshGUILicenseInformation +gosub, SystemChecks +gosub, GetOnlineAdapter +Sleep, 3000 +gosub, SystemInfo +return +AdapterHandleSetDisabledAuto: +output_Text(timestring . " SYSTEM FOUND BEING:" . " " . online . " " . "`r`n", hOut) +FileAppend, SYSTEM FOUND BEING: %online%`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting Adapter to 'Disabled'" . "`r`n", hOut) +FileAppend, Setting Adapter to 'Disabled'`n`n, HWID.log +try RunWait, %system32%\cmd.exe /c wmic path win32_networkadapter where index=%AIndex% call disable, , Hide +catch { +gosub, ProcessFail +return +} +gosub, SystemChecks +gosub, GetOnlineAdapter +return +AdapterHandleSetEnabled: +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " SYSTEM FOUND BEING:" . " " . online . " " . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting Adapter to 'Enabled'" . "`r`n", hOut) +GuiControl, , StatusProgress, 40 +MsgBox, 64, User Action needed!, Press 'OK' to set adapter to 'Enabled'. +try RunWait, %system32%\cmd.exe /c wmic path win32_networkadapter where index=%AIndex% call enable, , Hide +catch { +gosub, ProcessFail +return +} +GuiControl, , StatusProgress, 100 +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +gosub, RefreshGUILicenseInformation +gosub, SystemChecks +gosub, GetOnlineAdapter +Sleep, 3000 +gosub, SystemInfo +return +AdapterHandleSetEnabledAuto: +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " SYSTEM FOUND BEING:" . " " . online . " " . "`r`n", hOut) +FileAppend, SYSTEM FOUND BEING: %online%`n, HWID.log +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Setting Adapter to 'Enabled'" . "`r`n", hOut) +FileAppend, Setting Adapter to 'Enabled'`n`n, HWID.log +try RunWait, %system32%\cmd.exe /c wmic path win32_networkadapter where index=%AIndex% call enable, , Hide +catch { +gosub, ProcessFail +return +} +gosub, SystemChecks +gosub, GetOnlineAdapter +return +GetOnlineAdapter: +AName := "nul" +AStatus := +AIndex := +wmi := ComObjGet("winmgmts:") +for adapter in wmi.ExecQuery("Select * from Win32_NetworkAdapter WHERE NetEnabled=True and PhysicalAdapter=True and PNPDeviceID LIKE '%PCI%'") +AName := adapter.Name +AStatus := adapter.NetConnectionStatus +AIndex := adapter.Index +if (AName == "nul") +{ +wmi := ComObjGet("winmgmts:") +for adapter in wmi.ExecQuery("Select * from Win32_NetworkAdapter WHERE NetEnabled=True and PhysicalAdapter=True and PNPDeviceID LIKE '%USB%'") +AName := adapter.Name +AStatus := adapter.NetConnectionStatus +AIndex := adapter.Index +} +return +GetOfflineAdapter: +AName := "nul" +AStatus := +AIndex := +wmi := ComObjGet("winmgmts:") +for adapter in wmi.ExecQuery("Select * from Win32_NetworkAdapter WHERE NetEnabled=False and PhysicalAdapter=True and PNPDeviceID LIKE '%PCI%'") +AName := adapter.Name +AStatus := adapter.NetConnectionStatus +AIndex := adapter.Index +if (AName == "nul") +{ +wmi := ComObjGet("winmgmts:") +for adapter in wmi.ExecQuery("Select * from Win32_NetworkAdapter WHERE NetEnabled=False and PhysicalAdapter=True and PNPDeviceID LIKE '%USB%'") +AName := adapter.Name +AStatus := adapter.NetConnectionStatus +AIndex := adapter.Index +} +return +RefreshLicenseInformation: +WMI := ComObjGet("winmgmts:") +Query := WMI.ExecQuery("Select * FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL")._NewEnum() +ProductLicenseID := "" +TempProductFamily := "" +TempProductName := "" +while(Query[Info]) { +TempProductFamily := Info.LicenseFamily +if(!TempProductFamily) +continue +TempProductName := Info.Name +if(!RegExMatch(TempProductName, "Windows.*")) +continue +ProductGrace := Info.GracePeriodRemaining +ProductDescription := Info.Description +ProductStatusCode := Info.LicenseStatus +ProductPartialKey := Info.PartialProductKey +ProductLicenseID := Info.ID +ProductFamily := TempProductFamily +ProductName := TempProductName +} +TempProductFamily := "" +TempProductName := "" +ProductGraceDaysRaw := (ProductGrace/60/24) +ProductGraceDays := Round(ProductGraceDaysRaw) +WMI := ComObjGet("winmgmts:") +Query := WMI.ExecQuery("Select * FROM Win32_OperatingSystem")._NewEnum() +while(Query[Info]) { +InstallDate := Info.InstallDate +OperatingSystemSKU := Info.OperatingSystemSKU +} +if(!ProductLicenseID) { +MsgBox, 16, %AppName%, Failed to determine licensing status. Please check if your system has any product key installed. +ExitApp +} +gosub, ConvertStatus +if (Mode == "HWID") { +GoSub, DetermineKeyAndSkuIDHWID +} else if (Mode == "KMS38") { +GoSub, DetermineKeyAndSkuIDKMS38 +} else if (Mode == "HWID_Key") { +GoSub, DetermineKeyAndSkuIDHWID +} else if (Mode == "gVLK") { +GoSub, DetermineKeyAndSkuIDKMS38 +} else if (Mode == "") { +GoSub, DetermineKeyAndSkuIDHWID +} +WMI := "" +Query := "" +Info := "" +return +ConvertStatus: +if(ProductStatusCode = 0) { +ProductStatusMsg = Unlicensed +} else if(ProductStatusCode = 1) { +ProductStatusMsg = Licensed +} else if(ProductStatusCode = 2) { +ProductStatusMsg = Initial grace period +} else if(ProductStatusCode = 3) { +ProductStatusMsg = Additional grace period +} else if(ProductStatusCode = 4) { +ProductStatusMsg = Non-genuine grace period +} else if(ProductStatusCode = 5) { +ProductStatusMsg = Notification +} else { +ProductStatusMsg = Unknown status: %ProductStatusCode% +} +return +DetermineKeyAndSkuIDHWID: +UnsupportedSku := +if(ProductFamily = "Cloud") { +NewKey=V3WVW-N2PV2-CGWC3-34QGF-VMJ2C +NewSku=178 +} else if(ProductFamily = "CloudN") { +NewKey=NH9J3-68WK7-6FB93-4K3DF-DJ4F6 +NewSku=179 +} else if(ProductFamily = "Core") { +NewKey=YTMG3-N6DKC-DKB77-7M9GH-8HVX7 +NewSku=101 +} else if(ProductFamily = "CoreCountrySpecific") { +NewKey=N2434-X9D7W-8PF6X-8DV9T-8TYMD +NewSku=99 +} else if(ProductFamily = "CoreN") { +NewKey=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW +NewSku=98 +} else if(ProductFamily = "CoreSingleLanguage") { +NewKey=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT +NewSku=100 +} else if(ProductFamily = "Education") { +NewKey=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY +NewSku=121 +} else if(ProductFamily = "EducationN") { +NewKey=84NGF-MHBT6-FXBX8-QWJK7-DRR8H +NewSku=122 +} else if(ProductFamily = "Enterprise") { +NewKey=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C +NewSku=4 +} else if(ProductFamily = "EnterpriseN") { +NewKey=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT +NewSku=27 +} else if(ProductFamily = "EnterpriseS") { +if(A_OSVersion = "10.0.14393") { +NewKey=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX +NewSku=125 +} else if(A_OSVersion = "10.0.10240") { +NewKey=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW +NewSku=125 +} else { +UnsupportedSku=1 +} +} else if(ProductFamily = "EnterpriseSN") { +if(A_OSVersion = "10.0.14393") { +NewKey=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4 +NewSku=126 +} else if(A_OSVersion = "10.0.10240") { +NewKey=8V8WN-3GXBH-2TCMG-XHRX3-9766K +NewSku=126 +} else { +UnsupportedSku=1 +} +} else if(ProductFamily = "Professional") { +NewKey=VK7JG-NPHTM-C97JM-9MPGT-3V66T +NewSku=48 +} else if(ProductFamily = "ProfessionalEducation") { +NewKey=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB +NewSku=164 +} else if(ProductFamily = "ProfessionalEducationN") { +NewKey=GJTYN-HDMQY-FRR76-HVGC7-QPF8P +NewSku=165 +} else if(ProductFamily = "ProfessionalN") { +NewKey=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT +NewSku=49 +} else if(ProductFamily = "ProfessionalWorkstation") { +NewKey=DXG7C-N36C4-C4HTG-X4T3X-2YV77 +NewSku=161 +} else if(ProductFamily = "ProfessionalWorkstationN") { +NewKey=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ +NewSku=162 +} else if(ProductFamily = "ServerRdsh") { +NewKey=NJCF7-PW8QT-3324D-688JX-2YV66 +NewSku=52 +} else if(ProductFamily = "ServerRdshCore") { +NewKey=NJCF7-PW8QT-3324D-688JX-2YV66 +NewSku=52 +} else { +UnsupportedSku=1 +} +return +DetermineKeyAndSkuIDKMS38: +UnsupportedSku := +if(ProductFamily = "Core") { +NewKey=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99 +NewSku=101 +} else if(ProductFamily = "CoreCountrySpecific") { +NewKey=PVMJN-6DFY6-9CCP6-7BKTT-D3WVR +NewSku=99 +} else if(ProductFamily = "CoreN") { +NewKey=3KHY7-WNT83-DGQKR-F7HPR-844BM +NewSku=98 +} else if(ProductFamily = "CoreSingleLanguage") { +NewKey=7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH +NewSku=100 +} else if(ProductFamily = "Education") { +NewKey=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2 +NewSku=121 +} else if(ProductFamily = "EducationN") { +NewKey=2WH4N-8QGBV-H22JP-CT43Q-MDWWJ +NewSku=122 +} else if(ProductFamily = "Enterprise") { +NewKey=NPPR9-FWDCX-D2C8J-H872K-2YT43 +NewSku=4 +} else if(ProductFamily = "EnterpriseN") { +NewKey=DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4 +NewSku=27 +} else if(ProductFamily = "EnterpriseS") { +if(A_OSVersion = "10.0.17763") { +NewKey=M7XTQ-FN8P6-TTKYV-9D4CC-J462D +NewSku=125 +} else if(A_OSVersion = "10.0.14393") { +NewKey=DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ +NewSku=125 +} else { +UnsupportedSku=1 +} +} else if(ProductFamily = "EnterpriseSN") { +if(A_OSVersion = "10.0.17763") { +NewKey=92NFX-8DJQP-P6BBQ-THF9C-7CG2H +NewSku=126 +} else if(A_OSVersion = "10.0.14393") { +NewKey=QFFDN-GRT3P-VKWWX-X7T3R-8B639 +NewSku=126 +} else { +UnsupportedSku=1 +} +} else if(ProductFamily = "Professional") { +NewKey=W269N-WFGWX-YVC9B-4J6C9-T83GX +NewSku=48 +} else if(ProductFamily = "ProfessionalEducation") { +NewKey=6TP4R-GNPTD-KYYHQ-7B7DP-J447Y +NewSku=164 +} else if(ProductFamily = "ProfessionalEducationN") { +NewKey=YVWGF-BXNMC-HTQYQ-CPQ99-66QFC +NewSku=165 +} else if(ProductFamily = "ProfessionalN") { +NewKey=MH37W-N47XK-V7XM9-C7227-GCQG9 +NewSku=49 +} else if(ProductFamily = "ProfessionalWorkstation") { +NewKey=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J +NewSku=161 +} else if(ProductFamily = "ProfessionalWorkstationN") { +NewKey=9FNHH-K3HBT-3W4TD-6383H-6XYWF +NewSku=162 +} else if(ProductFamily = "ServerStandard") { +if(A_OSVersion = "10.0.14393") { +NewKey=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY +NewSku=7 +} else if(A_OSVersion = "10.0.17763") { +NewKey=N69G4-B89J2-4G8F4-WWYCC-J464C +NewSku=7 +} +} else if(ProductFamily = "ServerStandardCore") { +if(A_OSVersion = "10.0.14393") { +NewKey=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY +NewSku=7 +} else if(A_OSVersion = "10.0.17763") { +NewKey=N69G4-B89J2-4G8F4-WWYCC-J464C +NewSku=7 +} +} else if(ProductFamily = "ServerDatacenter") { +if(A_OSVersion = "10.0.14393") { +NewKey=CB7KF-BWN84-R7R2Y-793K2-8XDDG +NewSku=8 +} else if(A_OSVersion = "10.0.17763") { +NewKey=WMDGN-G9PQG-XVVXX-R3X43-63DFG +NewSku=8 +} +} else if(ProductFamily = "ServerDatacenterCore") { +if(A_OSVersion = "10.0.14393") { +NewKey=CB7KF-BWN84-R7R2Y-793K2-8XDDG +NewSku=8 +} else if(A_OSVersion = "10.0.17763") { +NewKey=WMDGN-G9PQG-XVVXX-R3X43-63DFG +NewSku=8 +} +} else if(ProductFamily = "ServerSolution") { +if(A_OSVersion = "10.0.14393") { +NewKey=JCKRF-N37P4-C2D82-9YXRT-4M63B +NewSku=52 +} else if(A_OSVersion = "10.0.17763") { +NewKey=WVDHN-86M7X-466P6-VHXV7-YY726 +NewSku=52 +} +} else if(ProductFamily = "ServerSolutionCore") { +if(A_OSVersion = "10.0.14393") { +NewKey=JCKRF-N37P4-C2D82-9YXRT-4M63B +NewSku=52 +} else if(A_OSVersion = "10.0.17763") { +NewKey=WVDHN-86M7X-466P6-VHXV7-YY726 +NewSku=52 +} +} else if(ProductFamily = "ServerCloudStorage") { +if(A_OSVersion = "10.0.14393") { +NewKey=QN4C6-GBJD2-FB422-GHWJK-GJG2R +NewSku=52 +} +} else if(ProductFamily = "ServerRdsh") { +if(A_OSVersion = "10.0.14393") { +NewKey=7NBT4-WGBQX-MP4H7-QXFF8-YP3KX +NewSku=175 +} else if(A_OSVersion = "10.0.17763") { +NewKey=CPWHC-NT2C7-VYW78-DHDB2-PG3GK +NewSku=175 +} +} else if(ProductFamily = "ServerRdshCore") { +if(A_OSVersion = "10.0.14393") { +NewKey=7NBT4-WGBQX-MP4H7-QXFF8-YP3KX +NewSku=175 +} else if(A_OSVersion = "10.0.17763") { +NewKey=CPWHC-NT2C7-VYW78-DHDB2-PG3GK +NewSku=175 +} +} else { +UnsupportedSku=1 +} +return +RefreshGUILicenseInformation: +gosub, RefreshLicenseInformation +GuiControl, , EditionInfo, %ProductFamily% +GuiControl, , StatusCodeInfo, %ProductStatusMsg% +GuiControl, , PartialKeyInfo, %ProductPartialKey% +return +ProcessFail: +MsgBox, 16, Error, Process failed. +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . "Failed" . "`r`n", hOut) +Gui, -Disabled +InProcess = 0 +return +WUCheck: +RegRead, wuraw, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv, Start +if (wuraw == 1) { +wu=AUTO DELAYED +} +if (wuraw == 2) { +wu=AUTO +} +if (wuraw == 3) { +wu=MANUAL +} +if (wuraw == 4) { +wu=DISABLED +} +return +ClipSVCCheck: +RegRead, clipsvcraw, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ClipSVC, Start +if (clipsvcraw == 1) { +clipsvc=AUTO DELAYED +} +if (clipsvcraw == 2) { +clipsvc=AUTO +} +if (clipsvcraw == 3) { +clipsvc=MANUAL +} +if (clipsvcraw == 4) { +clipsvc=DISABLED +} +return +wlidsvcCheck: +RegRead, wlidsvcraw, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wlidsvc, Start +if (wlidsvcraw == 1) { +wlidsvc=AUTO DELAYED +} +if (wlidsvcraw == 2) { +wlidsvc=AUTO +} +if (wlidsvcraw == 3) { +wlidsvc=MANUAL +} +if (wlidsvcraw == 4) { +wlidsvc=DISABLED +} +return +sppsvcCheck: +RegRead, sppsvcraw, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\sppsvc, Start +if (sppsvcraw == 1) { +sppsvc=AUTO DELAYED +} +if (sppsvcraw == 2) { +sppsvc=AUTO +} +if (sppsvcraw == 3) { +sppsvc=MANUAL +} +if (sppsvcraw == 4) { +sppsvc=DISABLED +} +return +CleanTokens: +starttime := a_now +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " CLEANING SPPSVC TOKENS:" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Stopping SPPSVC." . "`r`n", hOut) +RunWait, %system32%\cmd.exe /c "sc stop sppsvc", , Hide +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Deleting Tokens.." . "`r`n", hOut) +FileDelete %system32%\spp\store\2.0\tokens.dat +FileDelete %system32%\spp\store\2.0\data.dat +FileDelete %system32%\spp\store\2.0\cache\cache.dat +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Forcing Rebuild.." . "`r`n", hOut) +GoSub, DetermineKeyAndSkuIDKMS38 +RunWait, %system32%\cmd.exe /c "cscript.exe /nologo %A_WinDir%\system32\slmgr.vbs -ipk %NewKey%", , Hide +RunWait, %system32%\cmd.exe /c "cscript.exe /nologo %A_WinDir%\system32\slmgr.vbs -dlv", , Hide +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +gosub, SystemInfo +return +Clean_ClipSVC: +starttime := a_now +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " CLEANING CLIPSVC TOKENS:" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Stopping CLIPSVC." . "`r`n", hOut) +RunWait, %system32%\cmd.exe /c "sc stop clipsvc", , Hide +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Deleting Tokens.." . "`r`n", hOut) +FileDelete %A_AppDataCommon%\Microsoft\Windows\ClipSVC\tokens.dat +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Forcing Rebuild.." . "`r`n", hOut) +RunWait, %system32%\cmd.exe /c "cscript.exe /nologo %A_WinDir%\system32\slmgr.vbs -dlv", , Hide +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +gosub, SystemInfo +return +RearmSystem: +starttime := a_now +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " REARM SYSTEM:" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Rearming.." . "`r`n", hOut) +RunWait, %system32%\cmd.exe /c "cscript.exe /nologo %A_WinDir%\system32\slmgr.vbs -rearm", , Hide +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Rebooting [Mandatory!].." . "`r`n", hOut) +MsgBox, 64, Rebooting now...!, This is mandatory! +RunWait, %system32%\cmd.exe /c "shutdown.exe /r /t 3 ", , Hide +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +return +SystemInfo: +gosub, RefreshLicenseInformation +gosub, SystemChecks +if (online == "online") { +gosub, GetOnlineAdapter +} else if (online == "offline") { +gosub, GetOfflineAdapter +} +starttime := a_now +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " SYSTEM INFO:" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Product:" . " " . ProductFamily . " [" . buildlabex . "." . buildlabex2 . "] " . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Description:" . " " . channel . " " . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Architecture:" . " " . vera . " " . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " LicenseID:" . " " . ProductLicenseID . " " . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Key:" . " " . SysKey . " " . "`r`n", hOut) +IfNotInString, NewKey, %SysKey% +{ +if(UnsupportedSku) { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " No key in found in database!" . "`r`n", hOut) +} else { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " DefaultKey:" . " " . NewKey . " " . "`r`n", hOut) +} +} +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Status:" . " " . ProductStatusMsg . " " . "`r`n", hOut) +if (ProductGrace) { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Grace (Days):" . " " . ProductGraceDays . " " . "`r`n", hOut) +} +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " WUauserv Status:" . " " . wu . " " . S1StartedStatus . " " . S1StartedState . " " . S1StartedStatusMessage . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " ClipSVC Status:" . " " . clipsvc . " " . S2StartedStatus . " " . S2StartedState . " " . S2StartedStatusMessage . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " wlidsvc Status:" . " " . wlidsvc . " " . S3StartedStatus . " " . S3StartedState . " " . S3StartedStatusMessage . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " sppsvc Status:" . " " . sppsvc . " " . S4StartedStatus . " " . S4StartedState . " " . S4StartedStatusMessage . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " System is:" . " " . online . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Adapter:" . " " . AName . " Index: [" . AIndex . "]" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +if (ProductStatusCode == 1) { +if not (channel == "VOLUME_KMSCLIENT") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Detected: permanently licensed" . " " . channel . " " . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " NO PATCHING NEEDED!" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +} else if (channel == "VOLUME_KMSCLIENT") { +ifGreater, ProductGraceDays, 200 +{ +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Detected: KMS38 activated" . " " . channel . " " . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " NO PATCHING NEEDED!" . "`r`n", hOut) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut) +} +} +} +return +SystemInfo2: +gosub, RefreshLicenseInformation +gosub, SystemChecks +if (online == "online") { +gosub, GetOnlineAdapter +} else if (online == "offline") { +gosub, GetOfflineAdapter +} +starttime := a_now +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " SYSTEM INFO:" . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Product:" . " " . ProductFamily . " [" . buildlabex . "." . buildlabex2 . "] " . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Description:" . " " . channel . " " . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Architecture:" . " " . vera . " | SKUID: " . OperatingSystemSKU . "" . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " LicenseID:" . " " . ProductLicenseID . " " . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " System Key:" . " " . SysKey . " " . "`r`n", hOut2) +IfNotInString, NewKey, %SysKey% +{ +if(UnsupportedSku) { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " No key in found in database!" . "`r`n", hOut2) +} else { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " DefaultKey:" . " " . NewKey . " " . "`r`n", hOut2) +} +} +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Status:" . " " . ProductStatusMsg . " " . "`r`n", hOut2) +if (ProductGrace) { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Grace (Days):" . " " . ProductGraceDays . " " . "`r`n", hOut2) +} +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " WUauserv Status:" . " " . wu . " " . S1StartedStatus . " " . S1StartedState . " " . S1StartedStatusMessage . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " ClipSVC Status:" . " " . clipsvc . " " . S2StartedStatus . " " . S2StartedState . " " . S2StartedStatusMessage . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " wlidsvc Status:" . " " . wlidsvc . " " . S3StartedStatus . " " . S3StartedState . " " . S3StartedStatusMessage . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " sppsvc Status:" . " " . sppsvc . " " . S4StartedStatus . " " . S4StartedState . " " . S4StartedStatusMessage . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " System is:" . " " . online . " " . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Adapter:" . " " . AName . " Index: [" . AIndex . "]" . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut2) +if (ProductStatusCode == 1) { +if not (channel == "VOLUME_KMSCLIENT") { +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Detected: permanently licensed" . " " . channel . " " . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " NO PATCHING NEEDED!" . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut2) +} else if (channel == "VOLUME_KMSCLIENT") { +ifGreater, ProductGraceDays, 200 +{ +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " Detected: KMS38 activated" . " " . channel . " " . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " NO PATCHING NEEDED!" . "`r`n", hOut2) +FormatTime, TimeString,,HH:mm:ss +output_Text(timestring . " +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" . "`r`n", hOut2) +} +} +} +return +LaunchAIOWares: +Run http://aiowares.com/showthread.php?tid=246 +return +LaunchNsane: +Run http://www.nsaneforums.com/topic/312871-windows-10-digital-license-hwid-generation-without-kms-or-predecessor-installupgrade +return +SystemChecks: +stringsplit, InfoArray, ProductDescription, %A_Space% +channel := InfoArray4 +InProcess = 0 +strComputer := "." +objWMIService := ComObjGet("winmgmts:{impersonationLevel=impersonate}!\\" . strComputer . "\root\cimv2") +colPings := objWMIService.ExecQuery("Select * From Win32_PingStatus where Address = 'www.google.com'")._NewEnum +While colPings[objStatus] +{ +If (objStatus.StatusCode="" or objStatus.StatusCode<>0) +online = offline +Else +online = online +} +colPings := "" +strComputer := "" +abortcount=0 +svcname := "wuauserv" +gosub, ServiceCheck +S1StartedStatus := SStartedStatus +S1StartedState := SStartedState +if (S1StartedStatus = "TRUE") { +S1StartedStatusMessage := "Functional" +} else if (S1StartedStatus = "FALSE") { +if (wuraw == 4) { +gosub, ServiceTempEnable +Sleep, 2000 +} +gosub, ServiceStartTest +S1StartedStatusMessage := SStartedStatusMessage +if (wuraw == 4) { +gosub, ServiceTempDisable +} +} +svcname := "ClipSVC" +gosub, ServiceCheck +S2StartedStatus := SStartedStatus +S2StartedState := SStartedState +if (S2StartedStatus = "TRUE") { +S2StartedStatusMessage := "Functional" +} else if (S2StartedStatus = "FALSE") { +if (clipsvcraw == 4) { +gosub, ServiceTempEnable +Sleep, 2000 +} +gosub, ServiceStartTest +S2StartedStatusMessage := SStartedStatusMessage +if (clipsvcraw == 4) { +gosub, ServiceTempDisable +} +} +svcname := "wlidsvc" +gosub, ServiceCheck +S3StartedStatus := SStartedStatus +S3StartedState := SStartedState +if (S3StartedStatus = "TRUE") { +S3StartedStatusMessage := "Functional" +} else if (S3StartedStatus = "FALSE") { +if (wlidsvcraw == 4) { +gosub, ServiceTempEnable +Sleep, 2000 +} +gosub, ServiceStartTest +S3StartedStatusMessage := SStartedStatusMessage +if (wlidsvcraw == 4) { +gosub, ServiceTempDisable +} +} +svcname := "sppsvc" +gosub, ServiceCheck +S4StartedStatus := SStartedStatus +S4StartedState := SStartedState +if (S4StartedStatus = "TRUE") { +S4StartedStatusMessage := "Functional" +} else if (S4StartedStatus = "FALSE") { +if (sppsvcraw == 4) { +gosub, ServiceTempEnable +Sleep, 2000 +} +gosub, ServiceStartTest +S4StartedStatusMessage := SStartedStatusMessage +if (sppsvcraw == 4) { +gosub, ServiceTempDisable +} +} +RegRead, rawbuildlabex, HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion, BuildLabEx +stringsplit, InfoArray, rawbuildlabex, . +buildlabex := InfoArray1 +RegRead, ubr, HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion, UBR +SetFormat Integer, D +buildlabex2 := ubr +buildlabex2 = %buildlabex2% +FileInstall, PID8.vbs, %A_Temp%\PID8.vbs, 1 +RunWait, %system32%\cmd.exe /c (cscript.exe /nologo %A_Temp%\PID8.vbs)>>%A_Temp%\kms.log, , Hide +fileread, syskey, %A_Temp%\kms.log +Loop, Parse, syskey, `n, `n`r +{ +if !eachLine := Trim(A_LoopField) +continue +SysKey := A_LoopField +} +filedelete, %A_Temp%\kms.log +filedelete, %A_Temp%\PID8.vbs +return +ServiceTempEnable: +try RegWrite, REG_DWORD, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%svcname%, Start, 2 >>HWID.log", , Hide +catch { +gosub, ProcessFail +return +} +return +ServiceTempDisable: +try RegWrite, REG_DWORD, HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\%svcname%, Start, 4 >>HWID.log", , Hide +catch { +gosub, ProcessFail +return +} +return +ServiceStartTest: +SStartedStatusReturn := +ServiceTest = wmic service where name='%svcname%' call startservice>%A_Temp%\svctest.txt +runwait, %COMSPEC% /C %ServiceTest%, ,Hide +fileread, svctest, %A_Temp%\svctest.txt +filedelete, %A_Temp%\svctest.txt +Loop, Parse, svctest, `n, `n`r +{ +if !eachLine := Trim(A_LoopField) +continue +IfInstring, A_LoopField, ReturnValue = +{ +stringsplit, InfoArray, A_LoopField, = +ReturnValue2 := InfoArray2 +ReturnValue = %ReturnValue2% +if (ReturnValue == "0;") { +SStartedStatusMessage := "Functional [Start: 0]" +} else if (ReturnValue = "1;") { +SStartedStatusMessage := "Infunctional [Start: 1]" +abortcount++ +} else if (ReturnValue = "2;") { +SStartedStatusMessage := "Access Denied [Start: 2]" +abortcount++ +} else if (ReturnValue = "4;") { +SStartedStatusMessage := "Invalid [Start: 4]" +abortcount++ +} else if (ReturnValue = "5;") { +SStartedStatusMessage := "Invalid [Start: 5]" +abortcount++ +} else if (ReturnValue = "6;") { +SStartedStatusMessage := "Invalid [Start: 6]" +abortcount++ +} else if (ReturnValue = "7;") { +SStartedStatusMessage := "TimeOut [Start: 7]" +abortcount++ +} else if (ReturnValue = "8;") { +SStartedStatusMessage := "Unknown [Start: 8]" +abortcount++ +} else if (ReturnValue = "9;") { +SStartedStatusMessage := "Path Missing [Start: 9]" +abortcount++ +} else if (ReturnValue = "10;") { +SStartedStatusMessage := "Running [Start: 10]" +abortcount++ +} else if (ReturnValue = "12;") { +SStartedStatusMessage := "Dependency Missing [Start: 12]" +abortcount++ +} else if (ReturnValue = "13;") { +SStartedStatusMessage := "Service Missing [Start: 13]" +abortcount++ +} else if (ReturnValue = "14;") { +SStartedStatusMessage := "Service Disabled [Start: 14]" +abortcount++ +} else if (ReturnValue = "15;") { +SStartedStatusMessage := "Auth Missing [Start: 15]" +abortcount++ +} else if (ReturnValue = "16;") { +SStartedStatusMessage := "Service Removed [Start: 16]" +abortcount++ +} else if (ReturnValue = "17;") { +SStartedStatusMessage := "ExThread Missing [Start: 17]" +abortcount++ +} else if (ReturnValue = "22;") { +SStartedStatusMessage := "Account Restriction [Start: 22]" +abortcount++ +} else { +SStartedStatusMessage := ReturnValue +abortcount++ +} +} +} +ServiceTest := +ServiceTest = wmic service where name='%svcname%' call stopservice +runwait, %COMSPEC% /C %ServiceTest%, ,Hide +if (svcname == "wuauserv") { +ServiceTest := +ServiceTest = wmic service where name='%svcname%' call stopservice +runwait, %COMSPEC% /C %ServiceTest%, ,Hide +} +return +ServiceCheck: +SStartedStatus := +SStartedState := +ServiceChk = wmic service where name='%svcname%' get started,state /value>"%A_Temp%\svccheck.txt +runwait, %COMSPEC% /C %ServiceChk%, ,Hide +fileread, svccheck, %A_Temp%\svccheck.txt +filedelete, %A_Temp%\svccheck.txt +Loop, Parse, svccheck, `n, `n`r +{ +if !eachLine := Trim(A_LoopField) +continue +IfInstring, A_LoopField, Started +{ +stringsplit, InfoArray, A_LoopField, = +SStartedStatus := InfoArray2 +} +IfInstring, A_LoopField, State +{ +stringsplit, InfoArray, A_LoopField, = +SStartedState := InfoArray2 +} +} +return +InfoSplash: +Gui, InfoSplashScreen: Color, 0067B3 +Gui, InfoSplashScreen: Font, CFFFFFF, Segoe UI +Gui, InfoSplashScreen: Margin, 32, 32 +Gui, InfoSplashScreen: Font, S14 +Gui, InfoSplashScreen: Add, Text, x+8 ym-8 w450, USE THE MODE DROP-DOWN-MENU TOP-RIGHT. +Gui, InfoSplashScreen: Font, S10 +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Font, S14 +Gui, InfoSplashScreen: Add, Text, y+0 wp, HWID: +Gui, InfoSplashScreen: Font, S10 +Gui, InfoSplashScreen: Add, Text, y+0 wp, Supports all editions BUT NOT LTSC 2019 and Server. +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Font, S14 +Gui, InfoSplashScreen: Add, Text, y+0 wp, KMS38: +Gui, InfoSplashScreen: Font, S10 +Gui, InfoSplashScreen: Add, Text, y+0 wp, Supports all editions WITH LTSC 2019 and Server. +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Font, S14 +Gui, InfoSplashScreen: Add, Text, y+0 wp, HWID_Key: +Gui, InfoSplashScreen: Font, S10 +Gui, InfoSplashScreen: Add, Text, y+0 wp, Installs Generic Default Key for supported HWID editions. +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Font, S14 +Gui, InfoSplashScreen: Add, Text, y+0 wp, gVLK: +Gui, InfoSplashScreen: Font, S10 +Gui, InfoSplashScreen: Add, Text, y+0 wp, Installs the Generic Volume Key used by KMS38 and real KMS. +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Font, S14 +Gui, InfoSplashScreen: Add, Text, y+0 wp, Clean: +Gui, InfoSplashScreen: Font, S10 +Gui, InfoSplashScreen: Add, Text, y+0 wp, Only use this to break the '180 Days Lock' on KMS activated systems. +Gui, InfoSplashScreen: Add, Text, y+0 wp, DO NOT USE IF OFFICE IS INSTALLED!!! See 'Rearm' in that case. This will rebuild the license files. In case of errors, Reboot! +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Font, S14 +Gui, InfoSplashScreen: Add, Text, y+0 wp, Clean_ClipSVC: +Gui, InfoSplashScreen: Font, S10 +Gui, InfoSplashScreen: Add, Text, y+0 wp, Only use to clean HWID/Store tokens when using System Images on a different machine (cannot activate two systems with same tokens). +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Font, S14 +Gui, InfoSplashScreen: Add, Text, y+0 wp, Rearm: +Gui, InfoSplashScreen: Font, S10 +Gui, InfoSplashScreen: Add, Text, y+0 wp, Only use this to break the '180 Days Lock' on KMS activated systems. +Gui, InfoSplashScreen: Add, Text, y+0 wp, ONLY USE IF OFFICE IS INSTALLED. This requires a Reboot (Mandatory!). +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Font, S14 +Gui, InfoSplashScreen: Add, Text, y+0 wp, SetOnline and SetOffline: +Gui, InfoSplashScreen: Font, S10 +Gui, InfoSplashScreen: Add, Text, y+0 wp, Will change the net adapter status to enabled/disabled. +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Font, S14 +Gui, InfoSplashScreen: Add, Text, y+0 wp, LicenseSwitch: +Gui, InfoSplashScreen: Font, S10 +Gui, InfoSplashScreen: Add, Text, y+0 wp, IN-PLACE-UPGRADE: Core(N) [Home (N)] to Professional(N). This requires a Reboot (Mandatory!). +Gui, InfoSplashScreen: Add, Text, y+0 wp, NOTE: IRREVERSIBLE!. Going back needs a re-install. +Gui, InfoSplashScreen: Font, S4 +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Font, S10 +Gui, InfoSplashScreen: Add, Text, y+0 wp, LICENSE-SWITCH: From version 1803 on all other editions are virtual*. This requires a Reboot (Mandatory!). +Gui, InfoSplashScreen: Font, S9 +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Add, Text, y+0 wp, (*Setup installs basically Enterprise with Product Policies enabled for the respective edition. So a License switch just changes the Product Policy and after a Reboot all edition specific features are activated). +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Add, Text, y+0 wp, +Gui, InfoSplashScreen: Font, S14 +Gui, InfoSplashScreen: Add, Text, y+0 wp, PRESS 'ESC' TO EXIT. +Gui, InfoSplashScreen: -Caption +Gui, InfoSplashScreen: +AlwaysOnTop +Gui, InfoSplashScreen: -SysMenu +Gui, InfoSplashScreen: -MinimizeBox +Gui, InfoSplashScreen: Show, , HWID KMS38 Gen Info Screen +Esc:: +Gui, InfoSplashScreen: Destroy, +return +SilentRun: +InProcess = 1 +if(A_Is64bitOS) { +system32 = %A_WinDir%\sysnative +vera = x64 +} else { +system32 = %A_WinDir%\system32 +vera = x86 +} +Random, rand +dir = %A_WinDir%\temp\GatherOsState%rand% +FileCreateDir, %dir% +RunWait, %system32%\cmd.exe /c (Reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx" /v Title /t REG_SZ /d BootTask /f), , Hide +RunWait, %system32%\cmd.exe /c (Reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx" /v Flags /t REG_DWORD /d 2 /f), , Hide +if(go == "h") { +FileInstall, warnh.exe, %A_WinDir%\temp\warnh.exe, 1 +RunWait, %system32%\cmd.exe /c (Reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001" /v MyScript /t REG_SZ /d %A_WinDir%\temp\warnh.exe /f), , Hide +} else if(go == "k") { +FileInstall, warnk.exe, %A_WinDir%\temp\warnk.exe, 1 +RunWait, %system32%\cmd.exe /c (Reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx\0001" /v MyScript /t REG_SZ /d %A_WinDir%\temp\warnk.exe /f), , Hide +} +if(go == "h") { +gosub, RefreshLicenseInformation +gosub, SystemChecks +} else if(go == "k") { +gosub, RefreshLicenseInformation +gosub, SystemChecks +} +FileAppend, System check:`n, HWID.log +FileAppend, Description: %ProductDescription%`n, HWID.log +FileAppend, Architecture: %vera%`n, HWID.log +FileAppend, PartialKey: %ProductPartialKey%`n, HWID.log +FileAppend, Edition: %ProductFamily%`n, HWID.log +FileAppend, Status %ProductStatusMsg%`n`n, HWID.log +FileAppend, Starting activation at %A_DD% %A_MMM% %A_YYYY% %A_Hour%:%A_Min%:%A_Sec%...`n`n, HWID.log +FileAppend, Installing key %NewKey%...`n, HWID.log +RunWait, %system32%\cmd.exe /c "cscript.exe /nologo %A_WinDir%\system32\slmgr.vbs -ipk %NewKey% >>HWID.log", , Hide +if(go == "k") { +FileAppend, Setting KMS Host IP to avoid DNS queries...`n, HWID.log +RunWait, %system32%\cmd.exe /c "cscript.exe /nologo %A_WinDir%\system32\slmgr.vbs -skms 192.0.2.69:1833 >> HWID.log", , Hide +gosub, RefreshLicenseInformation +} +if(go == "h") { +if(ProductFamily = "EnterpriseS") { +if(A_OSVersion = "10.0.10240") { +FileInstall, gatherosstateLTSB15.exe, %dir%\gatherosstate.exe, 1 +} else { +FileInstall, gatherosstate.exe, %dir%\gatherosstate.exe, 1 +} +} else if(ProductFamily = "EnterpriseSN") { +if(A_OSVersion = "10.0.10240") { +FileInstall, gatherosstateLTSB15.exe, %dir%\gatherosstate.exe, 1 +} else { +FileInstall, gatherosstate.exe, %dir%\gatherosstate.exe, 1 +} +} else { +FileInstall, gatherosstate.exe, %dir%\gatherosstate.exe, 1 +} +FileInstall, slshim32_aio.dll, %dir%\slc.dll, 1 +FileAppend, -1 0`n, %dir%\TargetSKU.txt +} else if(go == "k") { +FileInstall, gatherosstate.exe, %dir%\gatherosstate.exe, 1 +FileInstall, slshim32_aio.dll, %dir%\slc.dll, 1 +FileAppend, -1 1`n, %dir%\TargetSKU.txt +} +FileAppend, Creating ticket...`n`n, HWID.log +try RunWait, %dir%\gatherosstate.exe, %dir%, Hide +catch { +gosub, ProcessFail +return +} +FileAppend, Applying GenuineTicket.xml...`n`n, HWID.log +try RunWait, %system32%\cmd.exe /c "clipup -v -o -altto `"%dir%`" >>%dir%\check.txt", , Hide +catch { +gosub, ProcessFail +return +} +gosub, SilentApplyCheck +if(go == "h") { +FileAppend, Activating...`n, HWID.log +RunWait, %system32%\cmd.exe /c "cscript.exe /nologo %A_WinDir%\system32\slmgr.vbs -ato >>HWID.log", , Hide +} +FileAppend, Done.`n, HWID.log +FileAppend, `n`n, HWID.log +FileRemoveDir, %dir%, 1 +InProcess = 0 +ExitApp +NonGenuineGuiClose: +return +SilentApplyCheck: +fileread, actcheck, %dir%\check.txt +filedelete, %dir%\check.txt +acount := +a2count=0 +Loop, Parse, actcheck, `n, `n`r +{ +if !eachLine := Trim(A_LoopField) +continue +a2count++ +IfInString, A_LoopField, no applicable +{ +acount=1 +} +IfInString, A_LoopField, Successfully converted +{ +acount=2 +} +} +if(acount = "1") { +FileAppend, %actcheck%`n, HWID.log +FileAppend, ERROR: Ticket apply failed. No ticket found.`n, HWID.log +gosub, SilentTargetFallback +} else if(acount = "2") { +FileAppend, %actcheck%`n, HWID.log +FileAppend, Ticket apply successful.`n, HWID.log +} else if(a2count <= "2") { +FileAppend, %actcheck%`n, HWID.log +FileAppend, ERROR: Ticket apply failed. Invalid ticket.`n, HWID.log +gosub, SilentTargetFallback +} +return +SilentTargetFallback: +FileAppend, Retrying with fallback method.`n, HWID.log +filedelete, %dir%\TargetSKU.txt +if(go = "h") { +FileAppend, %NewSku% 0`n, %dir%\TargetSKU.txt +} else if(go = "k") { +FileAppend, %NewSku% 1`n, %dir%\TargetSKU.txt +} +try RunWait, %dir%\gatherosstate.exe, %dir%, Hide +catch { +gosub, ProcessFail +return +} +FileAppend, Applying GenuineTicket.xml...`n, HWID.log +try RunWait, %system32%\cmd.exe /c "clipup -v -o -altto `"%dir%`" >>%dir%\check.txt", , Hide +catch { +gosub, ProcessFail +return +} +gosub, SilentApplyCheck +if(acount = "1") { +gosub, ProcessFail +return +} else if(a2count <= "2") { +gosub, ProcessFail +return +} +return +output_Text(Text, hWnd) { +static Start, Stop +SendMessage, 0xB0, &Start, &Stop,, ahk_id %hWnd% +SendMessage, 0xC2, , &Text,, ahk_id %hWnd% +SendMessage, 0xB0, &Start, &Stop,, ahk_id %hWnd% +} +GuiEscape: +if(InProcess) { +return +} else { +ExitApp +} +GuiClose: +if(InProcess) { +return +} else { +ExitApp +}