@ -1,9 +1,9 @@
@@ -1,9 +1,9 @@
@ set masver = 2.4
@ set masver = 2.5
@ setlocal DisableDelayedExpansion
@ echo off
: :
: :============================================================================
: :
: : This script is a part of 'Microsoft_Activation_Scripts' (MAS) project.
@ -257,7 +257,7 @@ echo You are running outdated version MAS %masver%
@@ -257,7 +257,7 @@ echo You are running outdated version MAS %masver%
echo ________________________________________________
echo :
if not %_unattended% == 1 (
echo [1] Download Latest MAS
echo [1] Get Latest MAS
echo [0] Continue Anyway
echo :
call : dk_color %_Green% " Enter a menu option in the Keyboard [1,0] : "
@ -270,15 +270,28 @@ if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%v
@@ -270,15 +270,28 @@ if !errorlevel!==1 (start ht%-%tps://github.com/mass%-%gravel/Microsoft-Acti%-%v
: :========================================================================================================================================
cls
mode 108, 34
mode 110, 34
if exist " %Systemdrive% \Windows\System32\spp\store_test\ " mode 134, 34
title HWID Activation %masver%
: : Start Windows update service at the beginning and in later checks as well, because in some normal conditions one kick is not enough
echo :
echo Initializing...
sc start wuauserv %nul%
: : Check PowerShell
%psc% $ExecutionContext.SessionState.LanguageMode %nul2% | find /i " Full " %nul1% || (
%eline%
%psc% $ExecutionContext.SessionState.LanguageMode
echo :
echo Initializing...
echo PowerShell is not working. Aborting...
echo If you have applied restrictions on Powershell then undo those changes.
echo :
echo Check this page for help. %mas% troubleshoot
goto dk_done
)
: :========================================================================================================================================
call : dk_product
call : dk_ckeckwmic
@ -331,27 +344,7 @@ goto dk_done
@@ -331,27 +344,7 @@ goto dk_done
: :========================================================================================================================================
: : Check SKU value / Check in multiple places to find Edition change corruption
set osSKU =
set slcSKU =
set wmiSKU =
set regSKU =
if %winbuild% GEQ 14393 ( set info = Kernel-BrandingInfo) else ( set info = Kernel-ProductInfo)
set d1 = %ref% [void]$TypeBuilder.DefinePInvokeMethod('SLGetWindowsInformationDWORD', 'slc.dll', 'Public, Static', 1, [int], @([String], [int].MakeByRefType()), 1, 3);
set d1 = %d1% $Sku = 0; [void]$TypeBuilder.CreateType()::SLGetWindowsInformationDWORD('%info% ', [ref]$Sku); $Sku
for /f " delims= " %% s in ( '" %psc% %d1% "' ) do if not errorlevel 1 ( set slcSKU = %% s)
if " %slcSKU% " == " 0 " set slcSKU =
if 1%slcSKU% NEQ +1%slcSKU% set slcSKU =
for /f " tokens=3 delims=. " %% a in ( 'reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn %nul6% ' ) do set " regSKU= %% a "
if %_wmic% EQU 1 for /f " tokens=2 delims== " %% a in ( '"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" %nul6% ' ) do if not errorlevel 1 set " wmiSKU= %% a "
if %_wmic% EQU 0 for /f " tokens=1 " %% a in ( ' %psc% "([WMI]'Win32_OperatingSystem=@' ) .OperatingSystemSKU" %nul6% ') do if not errorlevel 1 set " wmiSKU=%% a"
set osSKU = %slcSKU%
if not defined osSKU set osSKU = %wmiSKU%
if not defined osSKU set osSKU = %regSKU%
call : dk_checksku
if not defined osSKU (
%eline%
@ -378,11 +371,11 @@ for /f "delims=[] tokens=2" %%# in ('ping -n 1 %%a') do (if not [%%#]==[] set _i
@@ -378,11 +371,11 @@ for /f "delims=[] tokens=2" %%# in ('ping -n 1 %%a') do (if not [%%#]==[] set _i
if not defined _int (
%psc% " If([Activator]::CreateInstance([Type]::GetTypeFromCLSID([Guid]'{DCB00C01-570F-4A9B-8D69-199FDBA5723B}')).IsConnectedToInternet){Exit 0}Else{Exit 1} "
if !errorlevel! == 0 set _int = 1
if !errorlevel! == 0 ( set _int = 1& set ping_f = But Ping Failed)
)
if defined _int (
echo Checking Internet Connection [Connected]
echo Checking Internet Connection [Connected%ping_f% ]
) else (
set error = 1
call : dk_color %Red% " Checking Internet Connection [Not Connected] "
@ -407,7 +400,8 @@ echo Enabling Windows Script Host [Successful]
@@ -407,7 +400,8 @@ echo Enabling Windows Script Host [Successful]
echo Initiating Diagnostic Tests...
set " _serv=ClipSVC wlidsvc sppsvc KeyIso LicenseManager Winmgmt wuauserv "
set " _serv=ClipSVC wlidsvc sppsvc KeyIso LicenseManager Winmgmt DoSvc UsoSvc CryptSvc BITS TrustedInstaller wuauserv "
if %winbuild% GEQ 17134 set " _serv= %_serv% WaaSMedicSvc "
: : Client License Service (ClipSVC)
: : Microsoft Account Sign-in Assistant
@ -415,37 +409,32 @@ set "_serv=ClipSVC wlidsvc sppsvc KeyIso LicenseManager Winmgmt wuauserv"
@@ -415,37 +409,32 @@ set "_serv=ClipSVC wlidsvc sppsvc KeyIso LicenseManager Winmgmt wuauserv"
: : CNG Key Isolation
: : Windows License Manager Service
: : Windows Management Instrumentation
: : Delivery Optimization
: : Update Orchestrator Service
: : Cryptographic Services
: : Background Intelligent Transfer Service
: : Windows Modules Installer
: : Windows Update
: : Windows Update Medic Service
call : dk_errorcheck
: : Check Windows updates and store app blockers
set updatesblock =
echo : %serv_cor% %serv_ste% | findstr /i " wuauserv " %nul% && set updatesblock = 1
sc start UsoSvc %nul%
if %errorlevel% NEQ 1056 if %errorlevel% NEQ 0 set updatesblock = 1
if %winbuild% GEQ 17134 (
sc start WaaSMedicSvc %nul%
if !errorlevel! NEQ 1056 if !errorlevel! NEQ 0 set updatesblock = 1
)
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\Explorer /v SettingsPageVisibility %nul2% | find /i " windowsupdate " %nul% && set updatesblock = 1
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdateSysprepInProgress %nul% && set updatesblock = 1
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate /s %nul2% | findstr /i " NoAutoUpdate DisableWindowsUpdateAccess " %nul% && set updatesblock = 1
if defined updatesblock (
call : dk_color %Gray% " Checking Windows Update Blockers [Found] "
if defined updatesblock call : dk_color %Gray% " Checking Update Blocker In Registry [Found] "
if defined applist echo : %serv_e% | find /i " wuauserv " %nul% && (
call : dk_color %Blue% " Windows Update is not working. Enable it incase if you have disabled it. "
reg query HKLM\SYSTEM\CurrentControlSet\Services\wuauserv /v WubLock %nul% && call : dk_color %Blue% " Sordum Windows Update Blocker tool has been used to block updates. "
)
)
reg query " HKLM\SOFTWARE\Policies\Microsoft\WindowsStore " /v DisableStoreApps %nul2% | find /i " 0x1 " %nul% && (
call : dk_color %Gray% " Checking Store App Blocker [Found] "
call : dk_color %Gray% " Checking Store Blocker In Registry [Found] "
)
: :========================================================================================================================================
@ -454,6 +443,7 @@ call :dk_color %Gray% "Checking Store App Blocker [Found]"
@@ -454,6 +443,7 @@ call :dk_color %Gray% "Checking Store App Blocker [Found]"
set key =
set altkey =
set skufound =
set changekey =
set altapplist =
set altedition =
@ -477,7 +467,11 @@ call :dk_color %Red% "Checking Alternate Edition For HWID [%altedition% Acti
@@ -477,7 +467,11 @@ call :dk_color %Red% "Checking Alternate Edition For HWID [%altedition% Acti
if not defined key (
%eline%
echo [%winos% ^| %winbuild% ^| SKU:%osSKU% ]
if not defined skufound (
echo Unable to find this product in the supported product list.
) else (
echo Required License files not found in %SystemRoot% \System32\spp\tokens\skus\
)
echo Make sure you are using updated version of the script.
echo %mas%
echo :
@ -569,8 +563,7 @@ echo Generating GenuineTicket.xml [Successful]
@@ -569,8 +563,7 @@ echo Generating GenuineTicket.xml [Successful]
set " _xmlexist=if exist " %tdir% \GenuineTicket.xml" "
%_xmlexist% (
net stop ClipSVC /y %nul%
net start ClipSVC /y %nul%
%psc% Restart-Service ClipSVC %nul%
%_xmlexist% timeout /t 2 %nul%
%_xmlexist% timeout /t 2 %nul%
@ -675,7 +668,7 @@ echo Deleting a Registry [Successful] [!_ident!]
@@ -675,7 +668,7 @@ echo Deleting a Registry [Successful] [!_ident!]
REM Refresh some services and license status
for %% # in ( wlidsvc LicenseManager sppsvc) do ( net stop %% # /y %nul% & net start %% # /y %nul% )
for %% # in ( wlidsvc LicenseManager sppsvc) do ( %psc% Restart-Service %% # %nul% )
call : dk_refresh
call : dk_act
call : dk_checkperm
@ -684,7 +677,7 @@ call :dk_checkperm
@@ -684,7 +677,7 @@ call :dk_checkperm
REM Check Internet related error codes
if not defined error if not defined _perm (
echo " %error_code% " | findstr /i " 0x80072e 0x80072f " %nul% && (
echo " %error_code% " | findstr /i " 0x80072e 0x80072f 0x800704cf " %nul% && (
set error = 1
echo :
call : dk_color %Red% " Checking Internet Issues [Found] %error_code% "
@ -729,6 +722,31 @@ goto :dk_done
@@ -729,6 +722,31 @@ goto :dk_done
: :========================================================================================================================================
: : Check SKU value
: dk_checksku
set osSKU =
set slcSKU =
set wmiSKU =
set regSKU =
if %winbuild% GEQ 14393 ( set info = Kernel-BrandingInfo) else ( set info = Kernel-ProductInfo)
set d1 = %ref% [void]$TypeBuilder.DefinePInvokeMethod('SLGetWindowsInformationDWORD', 'slc.dll', 'Public, Static', 1, [int], @([String], [int].MakeByRefType()), 1, 3);
set d1 = %d1% $Sku = 0; [void]$TypeBuilder.CreateType()::SLGetWindowsInformationDWORD('%info% ', [ref]$Sku); $Sku
for /f " delims= " %% s in ( '" %psc% %d1% "' ) do if not errorlevel 1 ( set slcSKU = %% s)
if " %slcSKU% " == " 0 " set slcSKU =
if 1%slcSKU% NEQ +1%slcSKU% set slcSKU =
for /f " tokens=3 delims=. " %% a in ( 'reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn %nul6% ' ) do set " regSKU= %% a "
if %_wmic% EQU 1 for /f " tokens=2 delims== " %% a in ( '"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" %nul6% ' ) do if not errorlevel 1 set " wmiSKU= %% a "
if %_wmic% EQU 0 for /f " tokens=1 " %% a in ( ' %psc% "([WMI]'Win32_OperatingSystem=@' ) .OperatingSystemSKU" %nul6% ') do if not errorlevel 1 set " wmiSKU=%% a"
set osSKU = %slcSKU%
if not defined osSKU set osSKU = %wmiSKU%
if not defined osSKU set osSKU = %regSKU%
exit /b
: : Get Windows permanent activation status
: dk_checkperm
@ -838,7 +856,11 @@ set _corrupt=
@@ -838,7 +856,11 @@ set _corrupt=
sc start %% # %nul%
if !errorlevel! EQU 1060 set _corrupt = 1
sc query %% # %nul% || set _corrupt = 1
for %% G in ( DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _corrupt ( reg query HKLM\SYSTEM\CurrentControlSet\Services\%% # /v %% G %nul% || set _corrupt = 1)
for %% G in ( DependOnService Description DisplayName ErrorControl ImagePath ObjectName Start Type) do if not defined _corrupt (
reg query HKLM\SYSTEM\CurrentControlSet\Services\%% # /v %% G %nul% || set _corrupt = 1
if /i %% #== TrustedInstaller if /i %% G== DependOnService set _corrupt =
)
if defined _corrupt ( if defined serv_cor ( set " serv_cor=!serv_cor! %% # " ) else ( set " serv_cor= %% # " ) )
)
@ -864,13 +886,18 @@ set serv_cste=
@@ -864,13 +886,18 @@ set serv_cste=
if defined serv_ste (
for %% # in ( %serv_ste% ) do (
if /i %% #== ClipSVC ( reg add " HKLM\SYSTEM\CurrentControlSet\Services\ %% # " /v " Start " /t REG_DWORD /d " 3 " /f %nul% & sc config %% # start= demand %nul% )
if /i %% #== wlidsvc sc config %% # start= demand %nul%
if /i %% #== sppsvc ( reg add " HKLM\SYSTEM\CurrentControlSet\Services\ %% # " /v " Start " /t REG_DWORD /d " 2 " /f %nul% & sc config %% # start= delayed-auto %nul% )
if /i %% #== KeyIso sc config %% # start= demand %nul%
if /i %% #== LicenseManager sc config %% # start= demand %nul%
if /i %% #== Winmgmt sc config %% # start= auto %nul%
if /i %% #== wuauserv sc config %% # start= demand %nul%
if /i %% #== ClipSVC ( reg add " HKLM\SYSTEM\CurrentControlSet\Services\ %% # " /v " Start " /t REG_DWORD /d " 3 " /f %nul% & sc config %% # start= demand %nul% )
if /i %% #== wlidsvc sc config %% # start= demand %nul%
if /i %% #== sppsvc ( reg add " HKLM\SYSTEM\CurrentControlSet\Services\ %% # " /v " Start " /t REG_DWORD /d " 2 " /f %nul% & sc config %% # start= delayed-auto %nul% )
if /i %% #== KeyIso sc config %% # start= demand %nul%
if /i %% #== LicenseManager sc config %% # start= demand %nul%
if /i %% #== Winmgmt sc config %% # start= auto %nul%
if /i %% #== DoSvc sc config %% # start= delayed-auto %nul%
if /i %% #== UsoSvc sc config %% # start= delayed-auto %nul%
if /i %% #== CryptSvc sc config %% # start= auto %nul%
if /i %% #== BITS sc config %% # start= delayed-auto %nul%
if /i %% #== wuauserv sc config %% # start= demand %nul%
if /i %% #== WaaSMedicSvc sc config %% # start= demand %nul%
if !errorlevel! == 0 (
if defined serv_csts ( set " serv_csts=!serv_csts! %% # " ) else ( set " serv_csts= %% # " )
) else (
@ -895,9 +922,12 @@ set serv_e=
@@ -895,9 +922,12 @@ set serv_e=
for %% # in ( %_serv% ) do (
set errorcode =
set checkerror =
net start %% # /y %nul%
sc query %% # | find /i " RUNNING " %nul% || (
%psc% Start-Service %% # %nul%
set errorcode = !errorlevel!
sc query %% # | find /i " RUNNING " %nul% || set checkerror = 1
)
sc start %% # %nul%
if !errorlevel! NEQ 1056 if !errorlevel! NEQ 0 ( set errorcode = !errorlevel! & set checkerror = 1)
@ -908,7 +938,7 @@ if defined serv_e (
@@ -908,7 +938,7 @@ if defined serv_e (
set error = 1
call : dk_color %Red% " Starting Services [Failed] [ %serv_e% ] "
echo %serv_e% | findstr /i " ClipSVC-1058 sppsvc-1058 " %nul% && (
call : dk_color %Blue% " Restart the system to fix disabled service error 1058 . "
call : dk_color %Blue% " Restart the system to fix this error . "
set showfix = 1
)
)
@ -920,14 +950,18 @@ set showfix=1
@@ -920,14 +950,18 @@ set showfix=1
if defined safeboot_option (
set error = 1
set showfix = 1
call : dk_color2 %Red% " Checking Boot Mode " %Blue% " [Safe mode found. Run in normal mode.] "
call : dk_color2 %Red% " Checking Boot Mode [ %safeboot_option% ] " %Blue% " [Safe mode found. Run in normal mode.] "
)
reg query " HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State " %nul2% | find /i " IMAGE_STATE_COMPLETE " %nul1% || (
for /f " skip=2 tokens=2* " %% A in ( 'reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State" /v ImageState' ) do ( set imagestate = %% B)
if /i not " %imagestate% " == " IMAGE_STATE_COMPLETE " (
set error = 1
call : dk_color %Red% " Checking Windows Setup State [ %imagestate% ] "
echo " %imagestate% " | find /i " RESEAL " %nul% && (
set showfix = 1
call : dk_color2 %Red% " Checking Audit Mode " %Blue% " [IMAGE_STATE_COMPLETE status not found. Run in normal mode.] "
call : dk_color %Blue% " You need to run it in normal mode in case you are running it in Audit Mode. "
)
)
@ -938,30 +972,58 @@ call :dk_color2 %Red% "Checking WinPE " %Blue% "[WinPE
@@ -938,30 +972,58 @@ call :dk_color2 %Red% "Checking WinPE " %Blue% "[WinPE
)
%psc% $ExecutionContext.SessionState.LanguageMode %nul2% | find /i " Full " %nul1% || (
set wpainfo =
set wpaerror =
for /f " delims= " %% a in ( ' %psc% "$f=[io.file]::ReadAllText('!_batp!' ) -split ':wpatest\:.*';iex ($f[1]);" %nul6% ' ) do ( set wpainfo = %% a)
echo " %wpainfo% " | find /i " Error Found " %nul% && (
set error = 1
call : dk_color %Red% " Checking Powershell [Not Responding] "
set wpaerror = 1
call : dk_color %Red% " Checking WPA Registry Error [ %wpainfo% ] "
) || (
echo Checking WPA Registry Count [%wpainfo% ]
)
DISM /English /Online /Get-CurrentEdition %nul%
set dism_error = %errorlevel%
cmd /c exit /b %dism_error%
if %dism_error% NEQ 0 set " dism_error=[ 0x %=ExitCode% ] "
if %dism_error% NEQ 0 set " dism_error=0x %=ExitCode% "
if %dism_error% NEQ 0 (
call : dk_color %Red% " Checking DISM [Not Responding] %dism_error% "
call : dk_color %Red% " Checking DISM [Not Responding] [ %dism_error% ] "
)
if not defined officeact if exist " %SystemRoot% \Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum " (
set error = 1
set showfix = 1
call : dk_color %Red% " Checking Eval Packages [Non-Eval Licenses are installed in Eval Windows] "
if /i %dism_error% == [0x800F0805] (
for %% # in ( 4 125 126 188 191 205) do if " %osSKU% " == " %% # " (
call : dk_color %Blue% " Evaluation Windows can not be activated and different License install may lead to errors. "
call : dk_color %Blue% " It is recommended to install full version of %winos% . "
call : dk_color %Blue% " You can download it from %mas% genuine-installation-media.html "
set showfix = 1
)
set osedition =
for /f " skip=2 tokens=3 " %% a in ( 'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul6% ' ) do set " osedition= %% a "
: : Workaround for an issue in builds between 1607 and 1709 where ProfessionalEducation is shown as Professional
if " %osSKU% " == " 164 " set osedition = ProfessionalEducation
if " %osSKU% " == " 165 " set osedition = ProfessionalEducationN
if not defined officeact (
if not defined osedition (
call : dk_color %Red% " Checking Edition Name [Not Found In Registry] "
) else (
if not exist " %SystemRoot% \System32\spp\tokens\skus\ %osedition% \ %osedition% *.xrm-ms " (
set error = 1
call : dk_color %Red% " Checking License Files [Not Found] [ %osedition% ] "
)
if not exist " %SystemRoot% \Servicing\Packages\Microsoft-Windows-*- %osedition% -*.mum " (
set error = 1
call : dk_color %Red% " Checking Package File [Not Found] [ %osedition% ] "
)
)
)
@ -1020,8 +1082,7 @@ call :dk_color2 %Red% "Checking ClipSVC " %Blue% "[System
@@ -1020,8 +1082,7 @@ call :dk_color2 %Red% "Checking ClipSVC " %Blue% "[System
for /f " skip=2 tokens=2* " %% a in ( 'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "SkipRearm" %nul6% ' ) do if /i %% b NEQ 0x0 (
reg add " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform " /v " SkipRearm " /t REG_DWORD /d " 0 " /f %nul%
call : dk_color %Red% " Checking SkipRearm [Default 0 Value Not Found. Changing To 0] "
net stop sppsvc /y %nul%
net start sppsvc /y %nul%
%psc% Restart-Service sppsvc %nul%
set error = 1
)
@ -1051,7 +1112,7 @@ call :dk_color %Gray% "Checking SPP Token Folder [Not Found. Creat
@@ -1051,7 +1112,7 @@ call :dk_color %Gray% "Checking SPP Token Folder [Not Found. Creat
call : dk_actids
if not defined applist (
net s top sppsvc /y %nul%
%psc% S top-Service sppsvc %nul%
cscript //nologo %windir% \system32\slmgr.vbs /rilc %nul%
if !errorlevel! NEQ 0 cscript //nologo %windir% \system32\slmgr.vbs /rilc %nul%
call : dk_refresh
@ -1076,25 +1137,9 @@ call :dk_color %Red% "Checking sppsvc.exe File [Not Found]"
@@ -1076,25 +1137,9 @@ call :dk_color %Red% "Checking sppsvc.exe File [Not Found]"
)
: : Below checks are performed if required services are not disabled or corrupted + if there is any error + slmgr /dlv errorlevel is not Zero + no fix was shown before
: : This code checks if NT SERVICE\sppsvc has permission access to tokens folder and required registry keys. It's often caused by gaming spoofers.
set wpaerror =
set permerror =
if not defined serv_cor if not defined serv_cste if defined error if /i not %error_code% == 0 if not defined showfix (
REM This code checks for invalid registry keys in HKLM\SYSTEM\WPA. This issue may appear even on healthy systems.
if %winbuild% GEQ 14393 (
set /a count = 0
for /f %% a in ( 'reg query "HKLM\SYSTEM\WPA" %nul6% ' ) do set /a count += 1
for /L %% # in ( 1 ,1 ,!count! ) do (
reg query " HKLM\SYSTEM\WPA\8DEC0AF1-0341-4b93-85CD-72606C2DF94C-7P- %% # " /ve /t REG_BINARY %nul% || set wpaerror = 1
)
if defined wpaerror call : dk_color %Red% " Checking WPA Registry Keys [Error Found] [Registry Count - !count!] "
)
REM This code checks if NT SERVICE\sppsvc has permission access to tokens folder and required registry keys. It's often caused by gaming spoofers.
if not exist " %tokenstore% \ " set permerror = 1
for %% # in (
@ -1105,15 +1150,65 @@ for %%# in (
@@ -1105,15 +1150,65 @@ for %%# in (
%psc% " $acl = Get-Acl ' %% #'; if ($acl.Access.Where{ $_.IdentityReference -eq 'NT SERVICE\sppsvc' -and $_.AccessControlType -eq 'Deny' -or $acl.Access.IdentityReference -notcontains 'NT SERVICE\sppsvc'}) {Exit 2} " %nul%
if !errorlevel! == 2 set permerror = 1
)
if defined permerror call : dk_color %Red% " Checking SPP Permissions [Error Found] "
if defined permerror (
set error = 1
set showfix = 1
call : dk_color %Red% " Checking SPP Permissions [Error Found] "
call : dk_color %Blue% " %_fixmsg% "
)
: : If required services are not disabled or corrupted + if there is any error + slmgr /dlv errorlevel is not Zero + no fix was shown before
if not defined serv_cor if not defined serv_cste if defined error if /i not %error_code% == 0 if not defined showfix (
set showfix = 1
call : dk_color %Blue% " %_fixmsg% "
if not defined permerror call : dk_color %Blue% " If activation still fails then run Fix WPA Registry option. "
)
if not defined showfix if defined wpaerror (
set showfix = 1
call : dk_color %Blue% " If activation fails then go back to Main Menu, select Troubleshoot and run Fix WPA Registry option. "
)
exit /b
: : This code checks for invalid registry keys in HKLM\SYSTEM\WPA. This issue may appear even on healthy systems
: wpatest :
$wpaKey = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine', 'Registry64').OpenSubKey(" SYSTEM\\WPA " )
$count = $wpaKey.SubKeyCount
$osVersion = [System.Environment]::OSVersion.Version
$minBuildNumber = 14393
if ($osVersion.Build - g e $ m i n B u i l d N u m b e r ) {
$subkeyHashTable = @{}
foreach ($subkeyName in $wpaKey.GetSubKeyNames()) {
$keyNumber = $subkeyName -replace '.*-', ''
$subkeyHashTable[$keyNumber] = $true
}
for ($i=1; $i -le $count; $i++) {
if (-not $ s u b k e y H a s h T a b l e . C o n t a i n s K e y ( " $ i " ) ) {
Write-Host " Total Keys $count. Error Found- $i key does not exist "
$wpaKey.Close()
exit
}
}
}
$wpaKey.GetSubKeyNames() | ForEach-Object {
$subkey = $wpaKey.OpenSubKey($_)
$p = $subkey.GetValueNames()
if (($p | W h e r e - O b j e c t { $ s u b k e y . G e t V a l u e K i n d ( $ _ ) - e q [ M i c r o s o f t . W i n 3 2 . R e g i s t r y V a l u e K i n d ] : : B i n a r y } ) . C o u n t - e q 0 ) {
Write-Host " Total Keys $count. Error Found- Binary Data is corrupt "
$wpaKey.Close()
exit
}
}
$count
$wpaKey.Close()
: wpatest :
: :========================================================================================================================================
: dk_color
@ -1162,47 +1257,49 @@ exit /b
@@ -1162,47 +1257,49 @@ exit /b
set f =
for %% # in (
8b351c9c-f398-4515-9900-09df49427262_XGV%f% PP-NM%f% H47-7TT%f% HJ-W3%f% FW7-8H%f% V2C___4_X19-99683_HGNKjkKcKQHO6n8srMUrDh/MElffBZarLqCMD9rWtgFKf3YzYOLDPEMGhuO/auNMKCeiU7ebFbQALS/MyZ7TvidMQ2dvzXeXXKzPBjfwQx549WJUU7qAQ9Txg9cR9SAT8b12Pry2iBk+nZWD9VtHK3kOnEYkvp5WTCTsrSi6Re4_0_OEM:NONSLP_Enterprise
c83cef07-6b72-4bbc-a28f-a00386872839_3V6%f% Q6-NQ%f% XCX-V8Y%f% XR-9Q%f% CYV-QP%f% FCT__27_X19-98746_NHn2n0N1UfVf00CfaI5LCDMDsKdVAWpD/HAfUrcTAKsw9d2Sks4h5MhyH/WUx+B6dFi8ol7D3AHorR8y9dqVS1Bd2FdZNJl/tTR1PGwYn6KL88NS19aHmFNdX8s4438vaa+Ty8Qk8EDcwm/wscC8lQmi3/RgUKYdyGFvpbGSVlk_0_Volume:MAK_EnterpriseN
4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c_VK7%f% JG-NP%f% HTM-C97%f% JM-9M%f% PGT-3V%f% 66T__48_X19-98841_Yl/jNfxJ1SnaIZCIZ4m6Pf3ySNoQXifNeqfltNaNctx+onwiivOx7qcSn8dFtURzgMzSOFnsRQzb5IrvuqHoxWWl1S3JIQn56FvKsvSx7aFXIX3+2Q98G1amPV/WEQ0uHA5d7Ya6An+g0Z0zRP7evGoomTs4YuweaWiZQjQzSpA_0_____Retail_Professional
9fbaf5d6-4d83-4422-870d-fdda6e5858aa_2B8%f% 7N-8K%f% FHP-DKV%f% 6R-Y2%f% C8J-PK%f% CKT__49_X19-98859_Ge0mRQbW8ALk7T09V+1k1yg66qoS0lhkgPIROOIOgxKmWPAvsiLAYPKDqM4+neFCA/qf1dHFmdh0VUrwFBPYsK251UeWuElj4bZFVISL6gUt1eZwbGfv5eurQ0i+qZiFv+CcQOEFsd5DD4Up6xPLLQS3nAXODL5rSrn2sHRoCVY_0_____Retail_ProfessionalN
f742e4ff-909d-4fe9-aacb-3231d24a0c58_4CP%f% RK-NM%f% 3K3-X6X%f% XQ-RX%f% X86-WX%f% CHW__98_X19-98877_vel4ytVtnE8FhvN87Cflz9sbh5QwHD1YGOeej9QP7hF3vlBR4EX2/S/09gRneeXVbQnjDOCd2KFMKRUWHLM7ZhFBk8AtlG+kvUawPZ+CIrwrD3mhi7NMv8UX/xkLK3HnBupMEuEwsMJgCUD8Pn6om1mEiQebHBAqu4cT7GN9Y0g_0_____Retail_CoreN
1d1bac85-7365-4fea-949a-96978ec91ae0_N24%f% 34-X9%f% D7W-8PF%f% 6X-8D%f% V9T-8T%f% YMD__99_X19-99652_Nv17eUTrr1TmUX6frlI7V69VR6yWb7alppCFJPcdjfI+xX4/Cf2np3zm7jmC+zxFb9nELUs477/ydw2KCCXFfM53bKpBQZKHE5+MdGJGxebOCcOtJ3hrkDJtwlVxTQmUgk5xnlmpk8PHg82M2uM5B7UsGLxGKK4d3hi0voSyKeI_0_____Retail_CoreCountrySpecific
3ae2cc14-ab2d-41f4-972f-5e20142771dc_BT7%f% 9Q-G7%f% N6G-PGB%f% YW-4Y%f% WX6-6F%f% 4BT_100_X19-99661_FV2Eao/R5v8sGrfQeOjQ4daokVlNOlqRCDZXuaC45bQd5PsNU3t1b4AwWeYM8TAwbHauzr4tPG0UlsUqUikCZHy0poROx35bBBMBym6Zbm9wDBVyi7nCzBtwS86eOonQ3cU6WfZxhZRze0POdR33G3QTNPrnVIM2gf6nZJYqDOA_0_____Retail_CoreSingleLanguage
2b1f36bb-c1cd-4306-bf5c-a0367c2d97d8_YTM%f% G3-N6%f% DKC-DKB%f% 77-7M%f% 9GH-8H%f% VX7_101_X19-98868_GH/jwFxIcdQhNxJIlFka8c1H48PF0y7TgJwaryAUzqSKXynONLw7MVciDJFVXTkCjbXSdxLSWpPIC50/xyy1rAf8aC7WuN/9cRNAvtFPC1IVAJaMeq1vf4mCqRrrxJQP6ZEcuAeHFzLe/LLovGWCd8rrs6BbBwJXCvAqXImvycQ_0_____Retail_Core
2a6137f3-75c0-4f26-8e3e-d83d802865a4_XKC%f% NC-J2%f% 6Q9-KFH%f% D2-FK%f% THY-KD%f% 72Y_119_X19-99606_hci78IRWDLBtdbnAIKLDgV9whYgtHc1uYyp9y6FszE9wZBD5Nc8CUD2pI2s2RRd3M04C4O7M3tisB3Ov/XVjpAbxlX3MWfUR5w4MH0AphbuQX0p5MuHEDYyfqlRgBBRzOKePF06qfYvPQMuEfDpKCKFwNojQxBV8O0Arf5zmrIw_0_OEM:NONSLP_PPIPro
e558417a-5123-4f6f-91e7-385c1c7ca9d4_YNM%f% GQ-8R%f% YV3-4PG%f% Q3-C8%f% XTP-7C%f% FBY_121_X19-98886_x9tPFDZmjZMf29zFeHV5SHbXj8Wd8YAcCn/0hbpLcId4D7OWqkQKXxXHIegRlwcWjtII0sZ6WYB0HQV2KH3LvYRnWKpJ5SxeOgdzBIJ6fhegYGGyiXsBv9sEb3/zidPU6ZK9LugVGAcRZ6HQOiXyOw+Yf5H35iM+2oDZXSpjvJw_0_____Retail_Education
c5198a66-e435-4432-89cf-ec777c9d0352_84N%f% GF-MH%f% BT6-FXB%f% X8-QW%f% JK7-DR%f% R8H_122_X19-98892_jkL4YZkmBCJtvL1fT30ZPBcjmzshBSxjwrE0Q00AZ1hYnhrH+npzo1MPCT6ZRHw19ZLTz7wzyBb0qqcBVbtEjZW0Xs2MYLxgriyoONkhnPE6KSUJBw7C0enFVLHEqnVu/nkaOFfockN3bc+Eouw6W2lmHjklPHc9c6Clo04jul0_0_____Retail_EducationN
f6e29426-a256-4316-88bf-cc5b0f95ec0c_PJB%f% 47-8P%f% N2T-MCG%f% DY-JT%f% Y3D-CB%f% CPV_125_X23-50331_OPGhsyx+Ctw7w/KLMRNrY+fNBmKPjUG0R9RqkWk4e8ez+ExSJxSLLex5WhO5QSNgXLmEra+cCsN6C638aLjIdH2/L7D+8z/C6EDgRvbHMmidHg1lX3/O8lv0JudHkGtHJYewjorn/xXGY++vOCTQdZNk6qzEgmYSvPehKfdg8js_1_Volume:MAK_EnterpriseS_Ge
cce9d2de-98ee-4ce2-8113-222620c64a27_KCN%f% VH-YK%f% WX8-GJJ%f% B9-H9%f% FDT-6F%f% 7W2_125_X22-66075_GCqWmJOsTVun9z4QkE9n2XqBvt3ZWSPl9QmIh9Q2mXMG/QVt2IE7S+ES/NWlyTSNjLVySr1D2sGjxgEzy9kLwn7VENQVJ736h1iOdMj/3rdqLMSpTa813+nPSQgKpqJ3uMuvIvRP0FdB7Y4qt8qf9kNKK25A1QknioD/6YubL/4_1_Volume:MAK_EnterpriseS_VB
d06934ee-5448-4fd1-964a-cd077618aa06_43T%f% BQ-NH%f% 92J-XKT%f% M7-KT%f% 3KK-P3%f% 9PB_125_X21-83233_EpB6qOCo8pRgO5kL4vxEHck2J1vxyd9OqvxUenDnYO9AkcGWat/D74ZcFg5SFlIya1U8l5zv+tsvZ4wAvQ1IaFW1PwOKJLOaGgejqZ41TIMdFGGw+G+s1RHsEnrWr3UOakTodby1aIMUMoqf3NdaM5aWFo8fOmqWC5/LnCoighs_0_OEM:NONSLP_EnterpriseS_RS5
706e0cfd-23f4-43bb-a9af-1a492b9f1302_NK9%f% 6Y-D9%f% CD8-W44%f% CQ-R8%f% YTK-DY%f% JWX_125_X21-05035_ntcKmazIvLpZOryft28gWBHu1nHSbR+Gp143f/BiVe+BD2UjHBZfSR1q405xmQZsygz6VRK6+zm8FPR++71pkmArgCLhodCQJ5I4m7rAJNw/YX99pILphi1yCRcvHsOTGa825GUVXgf530tHT6hr0HQ1lGeGgG1hPekpqqBbTlg_0_OEM:NONSLP_EnterpriseS_RS1
faa57748-75c8-40a2-b851-71ce92aa8b45_FWN%f% 7H-PF%f% 93Q-4GG%f% P8-M8%f% RF3-MD%f% WWW_125_X19-99617_Fe9CDClilrAmwwT7Yhfx67GafWRQEpwyj8R+a4eaTqbpPcAt7d1hv1rx8Sa9AzopEGxIrb7IhiPoDZs0XaT1HN0/olJJ/MnD73CfBP4sdQdLTsSJE3dKMWYTQHpnjqRaS/pNBYRr8l9Mv8yfcP8uS2MjIQ1cRTqRmC7WMpShyCg_0_OEM:NONSLP_EnterpriseS_TH
837766ff-61c5-427d-87c3-a2acbd44767a_XFC%f% 77-XN%f% RXM-2Q3%f% 6W-FC%f% M9T-YH%f% DJ9_126_X23-50304_h6V6Q4DL/hlvcD3GyVxrVfP1BEL4a5TdyNCMlbq/OZnky/HowuRAcHMpN59fwqLS98+7WEDooWCrxriXcATwo0fwOGs/fEfP/Pa5SKP+Xnng1eoPm1PkjuZaqA8p2dPQv32wJ0u3QW7VMQM9BzzpyqtNAsqNS/wl7vfN7tyLbDo_1_Volume:MAK_EnterpriseSN_Ge
2c060131-0e43-4e01-adc1-cf5ad1100da8_RQF%f% NW-9T%f% PM3-JQ7%f% 3T-QV%f% 4VQ-DV%f% 9PT_126_X22-66108_w/HFPDNCz4EogszDYZ8xUJh8aylfpgh6gzm9k8JSteprY5UumLc5n6KUwiSE3/5NaiI9gZ3xmTJq+g1OSPsdGwhuA+8LA2pQhA+wU8VO/ZaYxe1T4WF6oip/c0n6xA1sx/mWYNwd/WBDJpslTw5NRNLc5wWh0FV5RtxCaXE07lM_1_Volume:MAK_EnterpriseSN_VB
e8f74caa-03fb-4839-8bcc-2e442b317e53_M33%f% WV-NH%f% Y3C-R7F%f% PM-BQ%f% GPT-23%f% 9PG_126_X21-83264_Fl7tjifybEI9hArxMVFKqIqmI6mrCZy4EtJyVjpo2eSfeMTBli55+E0i2AaPfE2FJknUig7HuiNC1Pu2IWZcj5ShVFQEKPY6K//RucX8oPQfh0zK5r1aNJNvV4gMlqvOyGD8sXttLBZv8wg1w/++cNk/z38DE2shiDf7LYnK4w0_1_Volume:MAK_EnterpriseSN_RS5
3d1022d8-969f-4222-b54b-327f5a5af4c9_2DB%f% W3-N2%f% PJG-MVH%f% W3-G7%f% TDK-9H%f% KR4_126_X21-04921_zLPNvcl1iqOefy0VLg+WZgNtRNhuGpn8+BFKjMqjaNOSKiuDcR6GNDS5FF1Aqk6/e6shJ+ohKzuwrnmYq3iNQ3I2MBlYjM5kuNfKs8Vl9dCjSpQr//GBGps6HtF2xrG/2g/yhtYC7FbtGDIE16uOeNKFcVg+XMb0qHE/5Etyfd8_0_Volume:MAK_EnterpriseSN_RS1
60c243e1-f90b-4a1b-ba89-387294948fb6_NTX%f% 6B-BR%f% YC2-K67%f% 86-F6%f% MVQ-M7%f% V2X_126_X19-98770_kbXfe0z9Vi1S0yfxMWzI5+UtWsJKzxs7wLGUDLjrckFDn1bDQb4MvvuCK1w+Qrq33lemiGpNDspa+ehXiYEeSPFcCvUBpoMlGBFfzurNCHWiv3o1k3jBoawJr/VoDoVZfxhkps0fVoubf9oy6C6AgrkZ7PjCaS58edMcaUWvYYg_0_Volume:MAK_EnterpriseSN_TH
01eb852c-424d-4060-94b8-c10d799d7364_3XP%f% 6D-CR%f% ND4-DRY%f% M2-GM%f% 84D-4G%f% G8Y_139_X23-37869_PVW0XnRJnsWYjTqxb6StCi2tge/uUwegjdiFaFUiZpwdJ620RK+MIAsSq5S+egXXzIWNntoy2fB6BO8F1wBFmxP/mm/3rn5C33jtF5QrbNqY7X9HMbqSiC7zhs4v4u2Xa4oZQx8JQkwr8Q2c/NgHrOJKKRASsSckhunxZ+WVEuM_1_____Retail_ProfessionalCountrySpecific_Zn
eb6d346f-1c60-4643-b960-40ec31596c45_DXG%f% 7C-N3%f% 6C4-C4H%f% TG-X4%f% T3X-2Y%f% V77_161_X21-43626_MaVqTkRrGnOqYizl15whCOKWzx01+BZTVAalvEuHXM+WV55jnIfhWmd/u1GqCd5OplqXdU959zmipK2Iwgu2nw/g91nW//sQiN/cUcvg1Lxo6pC3gAo1AjTpHmGIIf9XlZMYlD+Vl6gXsi/Auwh3yrSSFh5s7gOczZoDTqQwHXA_0_____Retail_ProfessionalWorkstation
89e87510-ba92-45f6-8329-3afa905e3e83_WYP%f% NQ-8C%f% 467-V2W%f% 6J-TX%f% 4WX-WT%f% 2RQ_162_X21-43644_JVGQowLiCcPtGY9ndbBDV+rTu/q5ljmQTwQWZgBIQsrAeQjLD8jLEk/qse7riZ7tMT6PKFVNXeWqF7PhLAmACbE8O3Lvp65XMd/Oml9Daynj5/4n7unsffFHIHH8TGyO5j7xb4dkFNqC5TX3P8/1gQEkTIdZEOTQQXFu0L2SP5c_0_____Retail_ProfessionalWorkstationN
62f0c100-9c53-4e02-b886-a3528ddfe7f6_8PT%f% T6-RN%f% W4C-6V7%f% J2-C2%f% D3X-MH%f% BPB_164_X21-04955_CEDgxI8f/fxMBiwmeXw5Of55DG32sbGALzHihXkdbYTDaE3pY37oAA4zwGHALzAFN/t254QImGPYR6hATgl+Cp804f7serJqiLeXY965Zy67I4CKIMBm49lzHLFJeDnVTjDB0wVyN29pvgO3+HLhZ22KYCpkRHFFMy2OKxS68Yc_0_____Retail_ProfessionalEducation
13a38698-4a49-4b9e-8e83-98fe51110953_GJT%f% YN-HD%f% MQY-FRR%f% 76-HV%f% GC7-QP%f% F8P_165_X21-04956_r35zp9OfxKSBcTxKWon3zFtbOiCufAPo6xRGY5DJqCRFKdB0jgZalNQitvjmaZ/Rlez2vjRJnEart4LrvyW4d9rrukAjR3+c3UkeTKwoD3qBl9AdRJbXCa2BdsoXJs1WVS4w4LuVzpB/SZDuggZt0F2DlMB427F5aflook/n1pY_0_____Retail_ProfessionalEducationN
df96023b-dcd9-4be2-afa0-c6c871159ebe_NJC%f% F7-PW%f% 8QT-332%f% 4D-68%f% 8JX-2Y%f% V66_175_X21-41295_rVpetYUmiRB48YJfCvJHiaZapJ0bO8gQDRoql+rq5IobiSRu//efV1VXqVpBkwILQRKgKIVONSTUF5y2TSxlDLbDSPKp7UHfbz17g6vRKLwOameYEz0ZcK3NTbApN/cMljHvvF/mBag1+sHjWu+eoFzk8H89k9nw8LMeVOPJRDc_0_____Retail_ServerRdsh
d4ef7282-3d2c-4cf0-9976-8854e64a8d1e_V3W%f% VW-N2%f% PV2-CGW%f% C3-34%f% QGF-VM%f% J2C_178_X21-32983_Xzme9hDZR6H0Yx0deURVdE6LiTOkVqWng5W/OTbkxRc0rq+mSYpo/f/yqhtwYlrkBPWx16Yok5Bvcb34vbKHvEAtxfYp4te20uexLzVOtBcoeEozARv4W/6MhYfl+llZtR5efsktj4N4/G4sVbuGvZ9nzNfQO9TwV6NGgGEj2Ec_0_____Retail_Cloud
af5c9381-9240-417d-8d35-eb40cd03e484_NH9%f% J3-68%f% WK7-6FB%f% 93-4K%f% 3DF-DJ%f% 4F6_179_X21-32987_QGRDZOU/VZhYLOSdp2xDnFs8HInNZctcQlWCIrORVnxTQr55IJwN4vK3PJHjkfRLQ/bgUrcEIhyFbANqZFUq8yD1YNubb2bjNORgI/m8u85O9V7nDGtxzO/viEBSWyEHnrzLKKWYqkRQKbbSW3ungaZR0Ti5O2mAUI4HzAFej50_0_____Retail_CloudN
8ab9bdd1-1f67-4997-82d9-8878520837d9_XQQ%f% YW-NF%f% FMW-XJP%f% BH-K8%f% 732-CK%f% FFD_188_X21-99378_djy0od0uuKd2rrIl+V1/2+MeRltNgW7FEeTNQsPMkVSL75NBphgoso4uS0JPv2D7Y1iEEvmVq6G842Kyt52QOwXgFWmP/IQ6Sq1dr+fHK/4Et7bEPrrGBEZoCfWqk0kdcZRPBij2KN6qCRWhrk1hX2g+U40smx/EYCLGh9HCi24_0_____OEM:DM_IoTEnterprise
ed655016-a9e8-4434-95d9-4345352c2552_QPM%f% 6N-7J%f% 2WJ-P88%f% HH-P3%f% YRH-YY%f% 74H_191_X21-99682_qHs/PzfhYWdtSys2edzcz4h+Qs8aDqb8BIiQ/mJ/+0uyoJh1fitbRCIgiFh2WAGZXjdgB8hZeheNwHibd8ChXaXg4u+0XlOdFlaDTgTXblji8fjETzDBk9aGkeMCvyVXRuUYhTSdp83IqGHz7XuLwN2p/6AUArx9JZCoLGV8j3w_0_OEM:NONSLP_IoTEnterpriseS_VB
6c4de1b8-24bb-4c17-9a77-7b939414c298_CGK%f% 42-GY%f% N6Y-VD2%f% 2B-BX%f% 98W-J8%f% JXD_191_X23-12617_J/fpIRynsVQXbp4qZNKp6RvOgZ/P2klILUKQguMlcwrBZybwNkHg/kM5LNOF/aDzEktbPnLnX40GEvKkYT6/qP4cMhn/SOY0/hYOkIdR34ilzNlVNq5xP7CMjCjaUYJe+6ydHPK6FpOuEoWOYYP5BZENKNGyBy4w4shkMAw19mA_0_OEM:NONSLP_IoTEnterpriseS_Ge
d4bdc678-0a4b-4a32-a5b3-aaa24c3b0f24_K9V%f% KN-3B%f% GWV-Y62%f% 4W-MC%f% RMQ-BH%f% DCD_202_X22-53884_kyoNx2s93U6OUSklB1xn+GXcwCJO1QTEtACYnChi8aXSoxGQ6H2xHfUdHVCwUA1OR0UeNcRrMmOzZBOEUBtdoGWSYPg9AMjvxlxq9JOzYAH+G6lT0UbCWgMSGGrqdcIfmshyEak3aUmsZK6l+uIAFCCZZ/HbbCRkkHC5rWKstMI_0_____Retail_CloudEditionN
92fb8726-92a8-4ffc-94ce-f82e07444653_KY7%f% PN-VR%f% 6RX-83W%f% 6Y-6D%f% DYQ-T6%f% R4W_203_X22-53847_gD6HnT4jP4rcNu9u83gvDiQq1xs7QSujcDbo60Di5iSVa9/ihZ7nlhnA0eDEZfnoDXriRiPPqc09T6AhSnFxLYitAkOuPJqL5UMobIrab9dwTKlowqFolxoHhLOO4V92Hsvn/9JLy7rEzoiAWHhX/0cpMr3FCzVYPeUW1OyLT1A_0_____Retail_CloudEdition
d4f9b41f-205c-405e-8e08-3d16e88e02be_J7N%f% JW-V6%f% KBM-CC8%f% RW-Y2%f% 9Y4-HQ%f% 2MJ_205_X23-15027_BjCACpBJMs/qftw+cjNvpXmG+++IzXTMqE5kPCTbWuNZXh/d5OSX8Ii3l2yq6xJAdSiYcALItHttLbBBEJ9H8iBj8STQeYHxdp3xU2k3/5Hoe+dPHwf1Qfg/CBd/AkCpiPqFYvjH9OhxvdUk8GvBGL2p2MrAAU4n+CuISSutZKM_0_OEM:NONSLP_IoTEnterpriseSK
8b351c9c-f398-4515-9900-09df49427262_XG%f% VPP-NMH%f% 47-7T%f% THJ-W3F%f% W7-8H%f% V2C___4_X19-99683_HGNKjkKcKQHO6n8srMUrDh/MElffBZarLqCMD9rWtgFKf3YzYOLDPEMGhuO/auNMKCeiU7ebFbQALS/MyZ7TvidMQ2dvzXeXXKzPBjfwQx549WJUU7qAQ9Txg9cR9SAT8b12Pry2iBk+nZWD9VtHK3kOnEYkvp5WTCTsrSi6Re4_0_OEM:NONSLP_Enterprise
c83cef07-6b72-4bbc-a28f-a00386872839_3V%f% 6Q6-NQX%f% CX-V8%f% YXR-9QC%f% YV-QP%f% FCT__27_X19-98746_NHn2n0N1UfVf00CfaI5LCDMDsKdVAWpD/HAfUrcTAKsw9d2Sks4h5MhyH/WUx+B6dFi8ol7D3AHorR8y9dqVS1Bd2FdZNJl/tTR1PGwYn6KL88NS19aHmFNdX8s4438vaa+Ty8Qk8EDcwm/wscC8lQmi3/RgUKYdyGFvpbGSVlk_0_Volume:MAK_EnterpriseN
4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c_VK%f% 7JG-NPH%f% TM-C9%f% 7JM-9MP%f% GT-3V%f% 66T__48_X19-98841_Yl/jNfxJ1SnaIZCIZ4m6Pf3ySNoQXifNeqfltNaNctx+onwiivOx7qcSn8dFtURzgMzSOFnsRQzb5IrvuqHoxWWl1S3JIQn56FvKsvSx7aFXIX3+2Q98G1amPV/WEQ0uHA5d7Ya6An+g0Z0zRP7evGoomTs4YuweaWiZQjQzSpA_0_____Retail_Professional
9fbaf5d6-4d83-4422-870d-fdda6e5858aa_2B%f% 87N-8KF%f% HP-DK%f% V6R-Y2C%f% 8J-PK%f% CKT__49_X19-98859_Ge0mRQbW8ALk7T09V+1k1yg66qoS0lhkgPIROOIOgxKmWPAvsiLAYPKDqM4+neFCA/qf1dHFmdh0VUrwFBPYsK251UeWuElj4bZFVISL6gUt1eZwbGfv5eurQ0i+qZiFv+CcQOEFsd5DD4Up6xPLLQS3nAXODL5rSrn2sHRoCVY_0_____Retail_ProfessionalN
f742e4ff-909d-4fe9-aacb-3231d24a0c58_4C%f% PRK-NM3%f% K3-X6%f% XXQ-RXX%f% 86-WX%f% CHW__98_X19-98877_vel4ytVtnE8FhvN87Cflz9sbh5QwHD1YGOeej9QP7hF3vlBR4EX2/S/09gRneeXVbQnjDOCd2KFMKRUWHLM7ZhFBk8AtlG+kvUawPZ+CIrwrD3mhi7NMv8UX/xkLK3HnBupMEuEwsMJgCUD8Pn6om1mEiQebHBAqu4cT7GN9Y0g_0_____Retail_CoreN
1d1bac85-7365-4fea-949a-96978ec91ae0_N2%f% 434-X9D%f% 7W-8P%f% F6X-8DV%f% 9T-8T%f% YMD__99_X19-99652_Nv17eUTrr1TmUX6frlI7V69VR6yWb7alppCFJPcdjfI+xX4/Cf2np3zm7jmC+zxFb9nELUs477/ydw2KCCXFfM53bKpBQZKHE5+MdGJGxebOCcOtJ3hrkDJtwlVxTQmUgk5xnlmpk8PHg82M2uM5B7UsGLxGKK4d3hi0voSyKeI_0_____Retail_CoreCountrySpecific
3ae2cc14-ab2d-41f4-972f-5e20142771dc_BT%f% 79Q-G7N%f% 6G-PG%f% BYW-4YW%f% X6-6F%f% 4BT_100_X19-99661_FV2Eao/R5v8sGrfQeOjQ4daokVlNOlqRCDZXuaC45bQd5PsNU3t1b4AwWeYM8TAwbHauzr4tPG0UlsUqUikCZHy0poROx35bBBMBym6Zbm9wDBVyi7nCzBtwS86eOonQ3cU6WfZxhZRze0POdR33G3QTNPrnVIM2gf6nZJYqDOA_0_____Retail_CoreSingleLanguage
2b1f36bb-c1cd-4306-bf5c-a0367c2d97d8_YT%f% MG3-N6D%f% KC-DK%f% B77-7M9%f% GH-8H%f% VX7_101_X19-98868_GH/jwFxIcdQhNxJIlFka8c1H48PF0y7TgJwaryAUzqSKXynONLw7MVciDJFVXTkCjbXSdxLSWpPIC50/xyy1rAf8aC7WuN/9cRNAvtFPC1IVAJaMeq1vf4mCqRrrxJQP6ZEcuAeHFzLe/LLovGWCd8rrs6BbBwJXCvAqXImvycQ_0_____Retail_Core
2a6137f3-75c0-4f26-8e3e-d83d802865a4_XK%f% CNC-J26%f% Q9-KF%f% HD2-FKT%f% HY-KD%f% 72Y_119_X19-99606_hci78IRWDLBtdbnAIKLDgV9whYgtHc1uYyp9y6FszE9wZBD5Nc8CUD2pI2s2RRd3M04C4O7M3tisB3Ov/XVjpAbxlX3MWfUR5w4MH0AphbuQX0p5MuHEDYyfqlRgBBRzOKePF06qfYvPQMuEfDpKCKFwNojQxBV8O0Arf5zmrIw_0_OEM:NONSLP_PPIPro
e558417a-5123-4f6f-91e7-385c1c7ca9d4_YN%f% MGQ-8RY%f% V3-4P%f% GQ3-C8X%f% TP-7C%f% FBY_121_X19-98886_x9tPFDZmjZMf29zFeHV5SHbXj8Wd8YAcCn/0hbpLcId4D7OWqkQKXxXHIegRlwcWjtII0sZ6WYB0HQV2KH3LvYRnWKpJ5SxeOgdzBIJ6fhegYGGyiXsBv9sEb3/zidPU6ZK9LugVGAcRZ6HQOiXyOw+Yf5H35iM+2oDZXSpjvJw_0_____Retail_Education
c5198a66-e435-4432-89cf-ec777c9d0352_84%f% NGF-MHB%f% T6-FX%f% BX8-QWJ%f% K7-DR%f% R8H_122_X19-98892_jkL4YZkmBCJtvL1fT30ZPBcjmzshBSxjwrE0Q00AZ1hYnhrH+npzo1MPCT6ZRHw19ZLTz7wzyBb0qqcBVbtEjZW0Xs2MYLxgriyoONkhnPE6KSUJBw7C0enFVLHEqnVu/nkaOFfockN3bc+Eouw6W2lmHjklPHc9c6Clo04jul0_0_____Retail_EducationN
f6e29426-a256-4316-88bf-cc5b0f95ec0c_PJ%f% B47-8PN%f% 2T-MC%f% GDY-JTY%f% 3D-CB%f% CPV_125_X23-50331_OPGhsyx+Ctw7w/KLMRNrY+fNBmKPjUG0R9RqkWk4e8ez+ExSJxSLLex5WhO5QSNgXLmEra+cCsN6C638aLjIdH2/L7D+8z/C6EDgRvbHMmidHg1lX3/O8lv0JudHkGtHJYewjorn/xXGY++vOCTQdZNk6qzEgmYSvPehKfdg8js_1_Volume:MAK_EnterpriseS_Ge
cce9d2de-98ee-4ce2-8113-222620c64a27_KC%f% NVH-YKW%f% X8-GJ%f% JB9-H9F%f% DT-6F%f% 7W2_125_X22-66075_GCqWmJOsTVun9z4QkE9n2XqBvt3ZWSPl9QmIh9Q2mXMG/QVt2IE7S+ES/NWlyTSNjLVySr1D2sGjxgEzy9kLwn7VENQVJ736h1iOdMj/3rdqLMSpTa813+nPSQgKpqJ3uMuvIvRP0FdB7Y4qt8qf9kNKK25A1QknioD/6YubL/4_1_Volume:MAK_EnterpriseS_VB
d06934ee-5448-4fd1-964a-cd077618aa06_43%f% TBQ-NH9%f% 2J-XK%f% TM7-KT3%f% KK-P3%f% 9PB_125_X21-83233_EpB6qOCo8pRgO5kL4vxEHck2J1vxyd9OqvxUenDnYO9AkcGWat/D74ZcFg5SFlIya1U8l5zv+tsvZ4wAvQ1IaFW1PwOKJLOaGgejqZ41TIMdFGGw+G+s1RHsEnrWr3UOakTodby1aIMUMoqf3NdaM5aWFo8fOmqWC5/LnCoighs_0_OEM:NONSLP_EnterpriseS_RS5
706e0cfd-23f4-43bb-a9af-1a492b9f1302_NK%f% 96Y-D9C%f% D8-W4%f% 4CQ-R8Y%f% TK-DY%f% JWX_125_X21-05035_ntcKmazIvLpZOryft28gWBHu1nHSbR+Gp143f/BiVe+BD2UjHBZfSR1q405xmQZsygz6VRK6+zm8FPR++71pkmArgCLhodCQJ5I4m7rAJNw/YX99pILphi1yCRcvHsOTGa825GUVXgf530tHT6hr0HQ1lGeGgG1hPekpqqBbTlg_0_OEM:NONSLP_EnterpriseS_RS1
faa57748-75c8-40a2-b851-71ce92aa8b45_FW%f% N7H-PF9%f% 3Q-4G%f% GP8-M8R%f% F3-MD%f% WWW_125_X19-99617_Fe9CDClilrAmwwT7Yhfx67GafWRQEpwyj8R+a4eaTqbpPcAt7d1hv1rx8Sa9AzopEGxIrb7IhiPoDZs0XaT1HN0/olJJ/MnD73CfBP4sdQdLTsSJE3dKMWYTQHpnjqRaS/pNBYRr8l9Mv8yfcP8uS2MjIQ1cRTqRmC7WMpShyCg_0_OEM:NONSLP_EnterpriseS_TH
837766ff-61c5-427d-87c3-a2acbd44767a_XF%f% C77-XNR%f% XM-2Q%f% 36W-FCM%f% 9T-YH%f% DJ9_126_X23-50304_h6V6Q4DL/hlvcD3GyVxrVfP1BEL4a5TdyNCMlbq/OZnky/HowuRAcHMpN59fwqLS98+7WEDooWCrxriXcATwo0fwOGs/fEfP/Pa5SKP+Xnng1eoPm1PkjuZaqA8p2dPQv32wJ0u3QW7VMQM9BzzpyqtNAsqNS/wl7vfN7tyLbDo_1_Volume:MAK_EnterpriseSN_Ge
2c060131-0e43-4e01-adc1-cf5ad1100da8_RQ%f% FNW-9TP%f% M3-JQ%f% 73T-QV4%f% VQ-DV%f% 9PT_126_X22-66108_w/HFPDNCz4EogszDYZ8xUJh8aylfpgh6gzm9k8JSteprY5UumLc5n6KUwiSE3/5NaiI9gZ3xmTJq+g1OSPsdGwhuA+8LA2pQhA+wU8VO/ZaYxe1T4WF6oip/c0n6xA1sx/mWYNwd/WBDJpslTw5NRNLc5wWh0FV5RtxCaXE07lM_1_Volume:MAK_EnterpriseSN_VB
e8f74caa-03fb-4839-8bcc-2e442b317e53_M3%f% 3WV-NHY%f% 3C-R7%f% FPM-BQG%f% PT-23%f% 9PG_126_X21-83264_Fl7tjifybEI9hArxMVFKqIqmI6mrCZy4EtJyVjpo2eSfeMTBli55+E0i2AaPfE2FJknUig7HuiNC1Pu2IWZcj5ShVFQEKPY6K//RucX8oPQfh0zK5r1aNJNvV4gMlqvOyGD8sXttLBZv8wg1w/++cNk/z38DE2shiDf7LYnK4w0_1_Volume:MAK_EnterpriseSN_RS5
3d1022d8-969f-4222-b54b-327f5a5af4c9_2D%f% BW3-N2P%f% JG-MV%f% HW3-G7T%f% DK-9H%f% KR4_126_X21-04921_zLPNvcl1iqOefy0VLg+WZgNtRNhuGpn8+BFKjMqjaNOSKiuDcR6GNDS5FF1Aqk6/e6shJ+ohKzuwrnmYq3iNQ3I2MBlYjM5kuNfKs8Vl9dCjSpQr//GBGps6HtF2xrG/2g/yhtYC7FbtGDIE16uOeNKFcVg+XMb0qHE/5Etyfd8_0_Volume:MAK_EnterpriseSN_RS1
60c243e1-f90b-4a1b-ba89-387294948fb6_NT%f% X6B-BRY%f% C2-K6%f% 786-F6M%f% VQ-M7%f% V2X_126_X19-98770_kbXfe0z9Vi1S0yfxMWzI5+UtWsJKzxs7wLGUDLjrckFDn1bDQb4MvvuCK1w+Qrq33lemiGpNDspa+ehXiYEeSPFcCvUBpoMlGBFfzurNCHWiv3o1k3jBoawJr/VoDoVZfxhkps0fVoubf9oy6C6AgrkZ7PjCaS58edMcaUWvYYg_0_Volume:MAK_EnterpriseSN_TH
01eb852c-424d-4060-94b8-c10d799d7364_3X%f% P6D-CRN%f% D4-DR%f% YM2-GM8%f% 4D-4G%f% G8Y_139_X23-37869_PVW0XnRJnsWYjTqxb6StCi2tge/uUwegjdiFaFUiZpwdJ620RK+MIAsSq5S+egXXzIWNntoy2fB6BO8F1wBFmxP/mm/3rn5C33jtF5QrbNqY7X9HMbqSiC7zhs4v4u2Xa4oZQx8JQkwr8Q2c/NgHrOJKKRASsSckhunxZ+WVEuM_1_____Retail_ProfessionalCountrySpecific_Zn
eb6d346f-1c60-4643-b960-40ec31596c45_DX%f% G7C-N36%f% C4-C4%f% HTG-X4T%f% 3X-2Y%f% V77_161_X21-43626_MaVqTkRrGnOqYizl15whCOKWzx01+BZTVAalvEuHXM+WV55jnIfhWmd/u1GqCd5OplqXdU959zmipK2Iwgu2nw/g91nW//sQiN/cUcvg1Lxo6pC3gAo1AjTpHmGIIf9XlZMYlD+Vl6gXsi/Auwh3yrSSFh5s7gOczZoDTqQwHXA_0_____Retail_ProfessionalWorkstation
89e87510-ba92-45f6-8329-3afa905e3e83_WY%f% PNQ-8C4%f% 67-V2%f% W6J-TX4%f% WX-WT%f% 2RQ_162_X21-43644_JVGQowLiCcPtGY9ndbBDV+rTu/q5ljmQTwQWZgBIQsrAeQjLD8jLEk/qse7riZ7tMT6PKFVNXeWqF7PhLAmACbE8O3Lvp65XMd/Oml9Daynj5/4n7unsffFHIHH8TGyO5j7xb4dkFNqC5TX3P8/1gQEkTIdZEOTQQXFu0L2SP5c_0_____Retail_ProfessionalWorkstationN
62f0c100-9c53-4e02-b886-a3528ddfe7f6_8P%f% TT6-RNW%f% 4C-6V%f% 7J2-C2D%f% 3X-MH%f% BPB_164_X21-04955_CEDgxI8f/fxMBiwmeXw5Of55DG32sbGALzHihXkdbYTDaE3pY37oAA4zwGHALzAFN/t254QImGPYR6hATgl+Cp804f7serJqiLeXY965Zy67I4CKIMBm49lzHLFJeDnVTjDB0wVyN29pvgO3+HLhZ22KYCpkRHFFMy2OKxS68Yc_0_____Retail_ProfessionalEducation
13a38698-4a49-4b9e-8e83-98fe51110953_GJ%f% TYN-HDM%f% QY-FR%f% R76-HVG%f% C7-QP%f% F8P_165_X21-04956_r35zp9OfxKSBcTxKWon3zFtbOiCufAPo6xRGY5DJqCRFKdB0jgZalNQitvjmaZ/Rlez2vjRJnEart4LrvyW4d9rrukAjR3+c3UkeTKwoD3qBl9AdRJbXCa2BdsoXJs1WVS4w4LuVzpB/SZDuggZt0F2DlMB427F5aflook/n1pY_0_____Retail_ProfessionalEducationN
df96023b-dcd9-4be2-afa0-c6c871159ebe_NJ%f% CF7-PW8%f% QT-33%f% 24D-688%f% JX-2Y%f% V66_175_X21-41295_rVpetYUmiRB48YJfCvJHiaZapJ0bO8gQDRoql+rq5IobiSRu//efV1VXqVpBkwILQRKgKIVONSTUF5y2TSxlDLbDSPKp7UHfbz17g6vRKLwOameYEz0ZcK3NTbApN/cMljHvvF/mBag1+sHjWu+eoFzk8H89k9nw8LMeVOPJRDc_0_____Retail_ServerRdsh
d4ef7282-3d2c-4cf0-9976-8854e64a8d1e_V3%f% WVW-N2P%f% V2-CG%f% WC3-34Q%f% GF-VM%f% J2C_178_X21-32983_Xzme9hDZR6H0Yx0deURVdE6LiTOkVqWng5W/OTbkxRc0rq+mSYpo/f/yqhtwYlrkBPWx16Yok5Bvcb34vbKHvEAtxfYp4te20uexLzVOtBcoeEozARv4W/6MhYfl+llZtR5efsktj4N4/G4sVbuGvZ9nzNfQO9TwV6NGgGEj2Ec_0_____Retail_Cloud
af5c9381-9240-417d-8d35-eb40cd03e484_NH%f% 9J3-68W%f% K7-6F%f% B93-4K3%f% DF-DJ%f% 4F6_179_X21-32987_QGRDZOU/VZhYLOSdp2xDnFs8HInNZctcQlWCIrORVnxTQr55IJwN4vK3PJHjkfRLQ/bgUrcEIhyFbANqZFUq8yD1YNubb2bjNORgI/m8u85O9V7nDGtxzO/viEBSWyEHnrzLKKWYqkRQKbbSW3ungaZR0Ti5O2mAUI4HzAFej50_0_____Retail_CloudN
8ab9bdd1-1f67-4997-82d9-8878520837d9_XQ%f% QYW-NFF%f% MW-XJ%f% PBH-K87%f% 32-CK%f% FFD_188_X21-99378_djy0od0uuKd2rrIl+V1/2+MeRltNgW7FEeTNQsPMkVSL75NBphgoso4uS0JPv2D7Y1iEEvmVq6G842Kyt52QOwXgFWmP/IQ6Sq1dr+fHK/4Et7bEPrrGBEZoCfWqk0kdcZRPBij2KN6qCRWhrk1hX2g+U40smx/EYCLGh9HCi24_0_____OEM:DM_IoTEnterprise
ed655016-a9e8-4434-95d9-4345352c2552_QP%f% M6N-7J2%f% WJ-P8%f% 8HH-P3Y%f% RH-YY%f% 74H_191_X21-99682_qHs/PzfhYWdtSys2edzcz4h+Qs8aDqb8BIiQ/mJ/+0uyoJh1fitbRCIgiFh2WAGZXjdgB8hZeheNwHibd8ChXaXg4u+0XlOdFlaDTgTXblji8fjETzDBk9aGkeMCvyVXRuUYhTSdp83IqGHz7XuLwN2p/6AUArx9JZCoLGV8j3w_0_OEM:NONSLP_IoTEnterpriseS_VB
6c4de1b8-24bb-4c17-9a77-7b939414c298_CG%f% K42-GYN%f% 6Y-VD%f% 22B-BX9%f% 8W-J8%f% JXD_191_X23-12617_J/fpIRynsVQXbp4qZNKp6RvOgZ/P2klILUKQguMlcwrBZybwNkHg/kM5LNOF/aDzEktbPnLnX40GEvKkYT6/qP4cMhn/SOY0/hYOkIdR34ilzNlVNq5xP7CMjCjaUYJe+6ydHPK6FpOuEoWOYYP5BZENKNGyBy4w4shkMAw19mA_0_OEM:NONSLP_IoTEnterpriseS_Ge
d4bdc678-0a4b-4a32-a5b3-aaa24c3b0f24_K9%f% VKN-3BG%f% WV-Y6%f% 24W-MCR%f% MQ-BH%f% DCD_202_X22-53884_kyoNx2s93U6OUSklB1xn+GXcwCJO1QTEtACYnChi8aXSoxGQ6H2xHfUdHVCwUA1OR0UeNcRrMmOzZBOEUBtdoGWSYPg9AMjvxlxq9JOzYAH+G6lT0UbCWgMSGGrqdcIfmshyEak3aUmsZK6l+uIAFCCZZ/HbbCRkkHC5rWKstMI_0_____Retail_CloudEditionN
92fb8726-92a8-4ffc-94ce-f82e07444653_KY%f% 7PN-VR6%f% RX-83%f% W6Y-6DD%f% YQ-T6%f% R4W_203_X22-53847_gD6HnT4jP4rcNu9u83gvDiQq1xs7QSujcDbo60Di5iSVa9/ihZ7nlhnA0eDEZfnoDXriRiPPqc09T6AhSnFxLYitAkOuPJqL5UMobIrab9dwTKlowqFolxoHhLOO4V92Hsvn/9JLy7rEzoiAWHhX/0cpMr3FCzVYPeUW1OyLT1A_0_____Retail_CloudEdition
5a85300a-bfce-474f-ac07-a30983e3fb90_N9%f% 79K-XWD%f% 77-YW%f% 3GB-HBG%f% H6-D3%f% 2MH_205_X23-15042_blZopkUuayCTgZKH4bOFiisH9GTAHG5/js6UX/qcMWWc3sWNxKSX1OLp1k3h8Xx1cFuvfG/fNAw/I83ssEtPY+A0Gx1JF4QpRqsGOqJ5ruQ2tGW56CJcCVHkB+i46nJAD759gYmy3pEYMQbmpWbhLx3MJ6kvwxKfU+0VCio8k50_0_____OEM:DM_IoTEnterpriseSK
80083eae-7031-4394-9e88-4901973d56fe_P8%f% Q7T-WNK%f% 7X-PM%f% FXY-VXH%f% BG-RR%f% K69_206_X23-62084_habUJ0hhAG0P8iIKaRQ74/wZQHyAdFlwHmrejNjOSRG08JeqilJlTM6V8G9UERLJ92/uMDVHIVOPXfN8Zdh8JuYO8oflPnqymIRmff/pU+Gpb871jV2JDA4Cft5gmn+ictKoN4VoSfEZRR+R5hzF2FsoCExDNNw6gLdjtiX94uA_0_____OEM:DM_IoTEnterpriseK
) do (
for /f " tokens=1-9 delims=_ " %% A in ( " %% # " ) do (
REM Detect key
if %1 == key if %osSKU% == %% C if not defined key (
set skufound = 1
echo " !applist! !altapplist! " | find /i " %% A " %nul1% && (
if %% F== 1 set notworking = 1
set key = %% B