2024-04-20 18:05:05 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								@ set  masver = 2.6 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								@ echo  off 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								: :============================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :   Homepage: mass grave[.]dev  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :      Email: mas.help@outlook.com  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								: :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :============================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  To activate, run the script with "/KMS38" parameter or change 0 to 1 in below line  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  _act = 0 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  To remove KMS38 protection, run the script with /KMS38-RemoveProtection parameter or change 0 to 1 in below line  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _rem = 0 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  To disable changing edition if current edition doesn't support KMS38 activation, change the value to 1 from 0 or run the script with "/KMS38-NoEditionChange" parameter  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _NoEditionChange = 0 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  To run the script in debug mode, change 0 to "/KMS38" in below line  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _debug=0 "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  If value is changed in above lines or parameter is used then script will run in unattended mode  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Set Environment variables, it helps if they are misconfigured in the system  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								setlocal  EnableExtensions 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								setlocal  DisableDelayedExpansion 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " PathExt=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  " SysPath= %SystemRoot% \System32 "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " Path= %SystemRoot% \System32; %SystemRoot% ; %SystemRoot% \System32\Wbem; %SystemRoot% \System32\WindowsPowerShell\v1.0\ "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  exist  " %SystemRoot% \Sysnative\reg.exe "  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  " SysPath= %SystemRoot% \Sysnative "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " Path= %SystemRoot% \Sysnative; %SystemRoot% ; %SystemRoot% \Sysnative\Wbem; %SystemRoot% \Sysnative\WindowsPowerShell\v1.0\; %Path% "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  " ComSpec= %SysPath% \cmd.exe "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " PSModulePath= %ProgramFiles% \WindowsPowerShell\Modules; %SysPath% \WindowsPowerShell\v1.0\Modules "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _cmdf= %~f0 "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( %* )  do  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  /i  " %% # " == " r1 "  set  r1 = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  /i  " %% # " == " r2 "  set  r2 = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: : Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: : or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								if  exist  %SystemRoot% \Sysnative\cmd.exe if  not  defined  r1  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								setlocal  EnableDelayedExpansion 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								start  %SystemRoot% \Sysnative\cmd.exe /c " " !_cmdf! "   %*  r1 "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: : Re-launch the script with ARM32 process if it was initiated by x64 process on ARM64 Windows  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  exist  %SystemRoot% \SysArm32\cmd.exe if  %PROCESSOR_ARCHITECTURE% == AMD64 if  not  defined  r2  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								setlocal  EnableDelayedExpansion 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								start  %SystemRoot% \SysArm32\cmd.exe /c " " !_cmdf! "   %*  r2 "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Debug code  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  " %_debug% "  EQU  " 0 "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " nul1=1>nul "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " nul2=2>nul "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " nul6=2 ^ >nul "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " nul=>nul 2>&1 "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								goto  : _debug  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " nul1= "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " nul2= "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " nul6= "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " nul= "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								@ echo  on 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								@ prompt  $G 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								@ call  : _debug  " %_debug% "  > " %~dp0 _tmp.log "  2 >& 1  
						 
					
						
							
								
									
										
										
										
											2024-07-13 04:37:16 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								@ cmd /u /c type " %~dp0 _tmp.log " > " %~dp0 _Debug.log "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								@ del  " %~dp0 _tmp.log "  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								@ echo  off 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								@ exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: _debug  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  " blank= "  
						 
					
						
							
								
									
										
										
										
											2023-10-01 01:54:15 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  " mas=ht %blank% tps %blank% ://mass %blank% grave.dev/ "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Check if Null service is working, it's important for the batch script  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sc query Null |  find /i " RUNNING " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %errorlevel%  NEQ  0 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Null service is not running, script may crash... 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  Help - %mas% troubleshoot 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								ping 127.0.0.1 -n 20
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								cls  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Check LF line ending  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								pushd  " %~dp0 "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								> nul findstr /v " $ "  " %~nx0 "  &&  (  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  Error - Script either has LF line ending issue or an empty line at the end of the script is missing. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Help - %mas% troubleshoot 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								ping 127.0.0.1 -n 20 > nul
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								popd  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								popd  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cls  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								color  07 
						 
					
						
							
								
									
										
										
										
											2023-10-16 08:20:03 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title   KMS38 Activation %masver%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _args =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _elev =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _unattended = 0 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _args = %*  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  _args  set  _args = %_args:"=%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  _args  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% A in  ( %_args% )  do  (  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  /i  " %% A " == " /KMS38 "                   set  _act = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  /i  " %% A " == " /KMS38-RemoveProtection "  set  _rem = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  /i  " %% A " == " /KMS38-NoEditionChange "   set  _NoEditionChange = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  /i  " %% A " == " -el "                      set  _elev = 1 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								for  %% A in  ( %_act%  %_rem%  %_NoEditionChange% )  do  ( if  " %% A " == " 1 "  set  _unattended = 1)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _k38 =  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_setvar  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								set  " specific_kms=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\55c92734-d682-4d71-983e-d6ec3f16059f "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %winbuild%  LSS  14393 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%eline%  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  Unsupported OS version detected [%winbuild% ]. 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  KMS38 Activation is supported for Windows 10/11/Server, build 14393 and later. 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								goto  dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-01-01 07:39:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Fix special characters limitation in path name  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _work= %~dp0 "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  " %_work:~-1% " == " \ "  set  " _work= %_work:~0,-1% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _batf= %~f0 "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _batp= %_batf:'=''% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _PSarg = " " " %~f0 " " "  -el %_args%  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  _PSarg = %_PSarg:'=''%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-10-16 08:20:03 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  " _ttemp= %userprofile% \AppData\Local\Temp "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								setlocal  EnableDelayedExpansion 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  " !_batf! "  |  find /i " !_ttemp! "  %nul1%  &&  (  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								if  /i  not  " !_work! " == " !_ttemp! "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%eline%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Script is launched from the temp folder, 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Most likely you are running the script directly from the archive file. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Extract the archive file and launch the script from the extracted folder. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								goto  dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Check PowerShell  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								REM :PowerShellTest: $ExecutionContext.SessionState.LanguageMode :PowerShellTest:  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cmd /c " %psc%   " $f=[io.file]::ReadAllText('!_batp!') -split ':PowerShellTest:\s*';iex ($f[1])" "  |  find /i " FullLanguage "  %nul1%  ||  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%eline%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cmd /c " %psc%   " $ExecutionContext.SessionState.LanguageMode" " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cmd /c " %psc%   " $ExecutionContext.SessionState.LanguageMode" "  |  find /i " FullLanguage "  %nul1%  &&  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Failed to run Powershell command but Powershell is working. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Blue%  " Check if your antivirus is blocking the script. "  
						 
					
						
							
								
									
										
										
										
											2024-07-23 05:12:02 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% troubleshoot 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Help -  "  %_Yellow%  "   %mas% troubleshoot "  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								) || (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  PowerShell is not working. Aborting... 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  If you have applied restrictions on Powershell then undo those changes. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2024-07-23 05:12:02 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% fix_powershell 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Help -  "  %_Yellow%  "   %mas% fix_powershell "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								goto  dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								: :  Elevate script as admin and pass arguments and preventing loop  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%nul1%  fltmc ||  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  _elev  %psc%  " start cmd.exe -arg '/c \ " !_PSarg! \" ' -verb runas "  &&  exit  /b 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								%eline%  
						 
					
						
							
								
									
										
										
										
											2024-01-01 07:39:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  This script needs admin rights. 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo  To do so, right click on this script and select 'Run as administrator'. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								goto  dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Disable QuickEdit and launch from conhost.exe to avoid Terminal app  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %winbuild%  GEQ  17763 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  terminal = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  terminal =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Check if script is running in Terminal app  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  r1 = $TB = [AppDomain]::CurrentDomain.DefineDynamicAssembly(4, 1).DefineDynamicModule(2, $False).DefineType(0); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  r2 = %r1%  [void]$TB.DefinePInvokeMethod('GetConsoleWindow', 'kernel32.dll', 22, 1, [IntPtr], @(), 1, 3).SetImplementationFlags(128); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  r3 = %r2%  [void]$TB.DefinePInvokeMethod('SendMessageW', 'user32.dll', 22, 1, [IntPtr], @([IntPtr], [UInt32], [IntPtr], [IntPtr]), 1, 3).SetImplementationFlags(128); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  d1 = %r3%  $hIcon = $TB.CreateType(); $hWnd = $hIcon::GetConsoleWindow(); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  d2 = %d1%  echo $($hIcon::SendMessageW($hWnd, 127, 0, 0) -ne [IntPtr]::Zero); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  terminal  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%psc%  " %d2% "  %nul2%  |  find /i " True "  %nul1%  &&  set  terminal =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_unattended% == 1 goto  : skipQE  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( %_args% )  do  ( if  /i  " %% # " == " -qedit "  goto  : skipQE )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  terminal  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " launchcmd=start conhost.exe  %psc% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " launchcmd= %psc% "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Disable QuickEdit in current session  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " d1=$t=[AppDomain]::CurrentDomain.DefineDynamicAssembly(4, 1).DefineDynamicModule(2, $False).DefineType(0); "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " d2=$t.DefinePInvokeMethod('GetStdHandle', 'kernel32.dll', 22, 1, [IntPtr], @([Int32]), 1, 3).SetImplementationFlags(128); "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " d3=$t.DefinePInvokeMethod('SetConsoleMode', 'kernel32.dll', 22, 1, [Boolean], @([IntPtr], [Int32]), 1, 3).SetImplementationFlags(128); "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " d4=$k=$t.CreateType(); $b=$k::SetConsoleMode($k::GetStdHandle(-10), 0x0080); "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%launchcmd%  " %d1%   %d2%   %d3%   %d4%  & cmd.exe '/c' '!_PSarg! -qedit' "  &&  ( exit  /b)  ||  ( set  terminal = 1)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: skipQE  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-10-16 08:20:03 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Check for updates  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  - =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  old =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-10-21 05:31:26 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								for  /f  " delims=[] tokens=2 "  %% # in  ( 'ping -4 -n 1 updatecheck.mass %-% grave.dev' )  do  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  [%% #]== [] ( echo  " %% # "  |  find " 127.69 "  %nul1%  &&  ( echo  " %% # "  |  find " 127.69. %masver% "  %nul1%  ||  set  old = 1) )  
						 
					
						
							
								
									
										
										
										
											2023-10-16 08:20:03 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  old  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  ________________________________________________ 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%eline%  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  Version %masver%  of MAS is outdated. 
						 
					
						
							
								
									
										
										
										
											2023-10-16 08:20:03 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  ________________________________________________ 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  %_unattended% == 1 (  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  [1] Get Latest MAS 
						 
					
						
							
								
									
										
										
										
											2023-10-16 08:20:03 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  [0] Continue Anyway 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %_Green%  " Enter a menu option in the Keyboard [1,0] : "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								choice /C:10 /N
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  !errorlevel! == 2 rem  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  !errorlevel! == 1 ( start  ht%-% tps://github.com/mass%-% gravel/Microsoft-Acti%-% vation-Scripts &  start  %mas%  &  exit  /b)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cls  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %_rem% == 1 goto  : k_uninstall  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: k_menu  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_unattended% == 0 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cls  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  terminal  mode 76, 25 
						 
					
						
							
								
									
										
										
										
											2023-10-16 08:20:03 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title   KMS38 Activation %masver%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo          ____________________________________________________________ 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo                  [1] KMS38 Activation 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo                  ____________________________________________ 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo                  [2] Remove KM38 Protection 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo                  [0] %_exitmsg%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo          ____________________________________________________________ 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo :  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color2  %_White%  "                "  %_Green%  " Enter a menu option in the Keyboard [1,2,0] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								choice /C:120 /N
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								set  _el = !errorlevel!  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  !_el! == 3  exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  !_el! == 2  goto  : k_uninstall  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  !_el! == 1  goto  : k_menu2  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								goto  : k_menu  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								: k_menu2  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cls  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  terminal  (  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								mode 110, 34
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  exist  " %SysPath% \spp\store_test\ "  mode 134, 34 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2023-10-16 08:20:03 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title   KMS38 Activation %masver%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Initializing... 
						 
					
						
							
								
									
										
										
										
											2024-07-14 02:29:11 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_chkmal  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  exist  " %SystemRoot% \Servicing\Packages\Microsoft-Windows-Server*CorEdition~*.mum "  if  not  exist  " %SysPath% \clipup.exe "  set  a_cor = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  exist  %SysPath% \sppsvc.exe ( set  _fmiss = sppsvc.exe)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  exist  %SysPath% \ClipUp.exe if  not  defined  a_cor  ( set  _fmiss = %_fmiss% ClipUp.exe)  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  defined  _fmiss  (  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%eline%  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  [%_fmiss% ] file is missing. Aborting... 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% troubleshoot 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Help -  "  %_Yellow%  "   %mas% troubleshoot "  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								goto  dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  spp = SoftwareLicensingProduct 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  sps = SoftwareLicensingService 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_ckeckwmic  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_checksku  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_product  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_sppissue  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Check if system is permanently activated or not  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_checkperm  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  defined  _perm  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cls  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo  ___________________________________________________________________________________________ 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %_White%  "       "  %Green%  " Checking:  %winos%  is Permanently Activated. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %_White%  "       "  %Gray%  " Activation is not required. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  ___________________________________________________________________________________________ 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_unattended% == 1 goto  dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								choice /C:10 /N /M " >    [1] Activate [0]  %_exitmsg%  :  " 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								if  errorlevel  2  exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cls  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Check Evaluation version  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _eval =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _evalserv =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  exist  " %SystemRoot% \Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum "  set  _eval = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  exist  " %SystemRoot% \Servicing\Packages\Microsoft-Windows-Server*EvalEdition~*.mum "  set  _evalserv = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  exist  " %SystemRoot% \Servicing\Packages\Microsoft-Windows-Server*EvalCorEdition~*.mum "  set  _eval = 1 &  set  _evalserv = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  _eval  (  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								reg query " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion "  /v EditionID %nul2%  |  find /i " Eval "  %nul1%  &&  ( 
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								%eline%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  [%winos%  ^|  %winbuild% ] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  _evalserv  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Server Evaluation cannot be activated. Convert it to full Server OS. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Blue%  " Go Back to main menu and use [Change Edition] option. "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  Evaluation Editions cannot be activated outside of evaluation period.  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% evaluation-editions 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Help -  "  %_Yellow%  "   %mas% evaluation-editions "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								goto  dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: : Check clipup.exe for the detection and activation of server cor and acor editions  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  a_cor  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  exist  " !_work! \clipup.exe "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%eline%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  clipup.exe doesn't exist in Server Cor/Acor [No GUI] version. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  It's required for KMS38 Activation. 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Check below page on how to activate it. 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% kms38 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  %mas% kms38 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								goto  dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cls  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_showosinfo  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Initiating Diagnostic Tests... 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  " _serv=ClipSVC sppsvc KeyIso Winmgmt "  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Client License Service (ClipSVC)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Software Protection  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  CNG Key Isolation  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Windows Management Instrumentation  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_errorcheck  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								: :  Check if GVLK (KMS key) is already installed or not  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : k_channel  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Detect Key  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  key =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  pkey =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  altkey =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  changekey =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  altedition =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_actids  55c92734-d682-4d71-983e-d6ec3f16059f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  allapps  call  : kms38data  key 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  key  call  : k_gvlk  %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  allapps  if  not  defined  key  call  : kms38fallback  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								if  defined  altkey  ( set  key = %altkey% & set  changekey = 1)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  /a  UBR = 0  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %osSKU% == 191 if  defined  altkey  if  defined  altedition  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								for  /f  " skip=2 tokens=2* "  %% a in  ( 'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v UBR  %nul6% ' )  do  if  not  errorlevel  1  set  /a  UBR =%% b  
						 
					
						
							
								
									
										
										
										
											2024-07-14 02:29:11 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %winbuild%  LSS  22598 if  !UBR!  LSS  2788 (  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Blue%  " Windows must to be updated to build 19044.2788 or higher for IotEnterpriseS KMS38 activation. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  key  if  defined  notfoundaltactID  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking Alternate Edition For KMS38    [ %altedition%  Activation ID Not Found] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  key  if  not  defined  _gvlk  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%eline%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  [%winos%  ^|  %winbuild%  ^|  SKU:%osSKU% ] 
						 
					
						
							
								
									
										
										
										
											2024-07-16 17:01:13 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  skunotfound  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  This product does not support KMS38 Activation. 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo  Make sure you are using updated version of the script. 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas%  
						 
					
						
							
								
									
										
										
										
											2023-10-01 01:54:15 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  %mas%  
						 
					
						
							
								
									
										
										
										
											2024-07-16 17:01:13 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Required License files not found in %SysPath% \spp\tokens\skus\ 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% troubleshoot 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Help -  "  %_Yellow%  "   %mas% troubleshoot "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								goto  dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Install key  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  changekey  (  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Blue%  " [ %altedition% ] Edition product key will be used to enable KMS38 activation. "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  defined  winsub  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Blue%  " Windows Subscription [SKU ID- %slcSKU% ] found. Script will activate base edition [SKU ID- %regSKU% ]. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								set  _partial =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  key  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %_wmic%  EQU  1 for  /f  " tokens=2 delims== "  %% # in  ( 'wmic path  %spp%  where "ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey<>null AND LicenseDependsOn is NULL" Get PartialProductKey /value  %nul6% ' )  do  set  " _partial= %% # "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  0 for  /f  " tokens=2 delims== "  %% # in  ( ' %psc%  "(([WMISEARCHER]'SELECT PartialProductKey FROM  %spp%  WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f'' AND PartialProductKey IS NOT NULL AND LicenseDependsOn is NULL' ) .Get() ) .PartialProductKey |  %%  {echo ('PartialProductKey='+$_)}"   %nul6% ') do set  " _partial=%% #"  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								call  echo  Checking Installed Product Key          [Partial Key - %% _partial%% ] [Volume:GVLK] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  key  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_inskey  " [ %key% ] "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Check activation ID for setting specific KMS host  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  app =  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %_wmic%  EQU  1 for  /f  " tokens=2 delims== "  %% a in  ( '"wmic path  %spp%  where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and Description like ' %% KMSCLIENT %% ' and PartialProductKey is not NULL AND LicenseDependsOn is NULL) get ID /VALUE"  %nul6% ' )  do  call  set  " app= %% a "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  0 for  /f  " tokens=2 delims== "  %% a in  ( ' %psc%  "(([WMISEARCHER]'SELECT ID FROM  %spp%  WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f'' AND Description like '' %% KMSCLIENT %% '' AND PartialProductKey IS NOT NULL AND LicenseDependsOn is NULL' ) .Get() ) .ID |  %%  {echo ('ID='+$_)}"   %nul6% ') do call set  " app=%% a"  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  app  (  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking Installed GVLK Activation ID   [Not Found] Aborting... "  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% troubleshoot 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Help -  "  %_Yellow%  "   %mas% troubleshoot "  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								goto  : dk_done  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Set specific KMS host to Local Host  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  By doing this, global KMS IP can not replace KMS38 activation but can be used with Office and other Windows Editions  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%nul%  reg delete " HKLM\ %specific_kms% "  /f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%nul%  reg delete " HKU\S-1-5-20\ %specific_kms% "  /f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%nul%  reg query " HKLM\ %specific_kms% "  &&  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%psc%  " $f=[io.file]::ReadAllText('!_batp!') -split ':regdel\:.*';iex ($f[1]) "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								%nul%  reg delete " HKLM\ %specific_kms% "  /f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  k_error =  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								%nul%  reg add " HKLM\ %specific_kms% \ %app% "  /f /v KeyManagementServiceName /t REG_SZ /d " 127.0.0.2 "  ||  set  k_error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%nul%  reg add " HKLM\ %specific_kms% \ %app% "  /f /v KeyManagementServicePort /t REG_SZ /d " 1688 "  ||  set  k_error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  k_error  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Adding Specific KMS Host                [LocalHost 127.0.0.2] [Successful] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Adding Specific KMS Host                [LocalHost 127.0.0.2] [Failed] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Copy clipup.exe to System32 directory to activate Server Cor/Acor editions  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  defined  a_cor  (  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								set  " _clipup= %systemroot% \System32\clipup.exe "  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								pushd  " !_work! \ "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								copy  /y /b " ClipUp.exe "  " !_clipup! "  %nul%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								popd  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  exist  " !_clipup! "  (  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								echo  Copying clipup.exe File to              [%systemroot% \System32\] [Successful] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Copying clipup.exe File to              [ %systemroot% \System32\] [Failed] Aborting... "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								goto  : k_final  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Generate GenuineTicket.xml and apply  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  In some cases clipup -v -o method fails and in some cases service restart method fails as well  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  To maximize success rate and get better error details, script will install tickets two times (service restart + clipup -v -o)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  " tdir= %ProgramData% \Microsoft\Windows\ClipSVC\GenuineTicket "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  exist  " %tdir% \ "  md  " %tdir% \ "  %nul%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  exist  " %tdir% \Genuine* "  del  /f /q " %tdir% \Genuine* "  %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  exist  " %tdir% \*.xml "  del  /f /q " %tdir% \*.xml "  %nul%  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  exist  " %ProgramData% \Microsoft\Windows\ClipSVC\Install\Migration\* "  del  /f /q " %ProgramData% \Microsoft\Windows\ClipSVC\Install\Migration\* "  %nul%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Signature value is as it is, it's not encoded  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Session ID is in Base64 encoded format. It's decoded value is "OSMajorVersion=5;OSMinorVersion=1;OSPlatformId=2;PP=0;GVLKExp=2038-01-19T03:14:07Z;DownlevelGenuineState=1;"  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Check mass grave [.] dev/kms38#manual-activation to see how it's generated  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  " signature=C52iGEoH+1VqzI6kEAqOhUyrWuEObnivzaVjyef8WqItVYd/xGDTZZ3bkxAI9hTpobPFNJyJx6a3uriXq3HVd7mlXfSUK9ydeoUdG4eqMeLwkxeb6jQWJzLOz41rFVSMtBL0e+ycCATebTaXS4uvFYaDHDdPw2lKY8ADj3MLgsA= "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " sessionId=TwBTAE0AYQBqAG8AcgBWAGUAcgBzAGkAbwBuAD0ANQA7AE8AUwBNAGkAbgBvAHIAVgBlAHIAcwBpAG8AbgA9ADEAOwBPAFMAUABsAGEAdABmAG8AcgBtAEkAZAA9ADIAOwBQAFAAPQAwADsARwBWAEwASwBFAHgAcAA9ADIAMAAzADgALQAwADEALQAxADkAVAAwADMAOgAxADQAOgAwADcAWgA7AEQAbwB3AG4AbABlAHYAZQBsAEcAZQBuAHUAaQBuAGUAUwB0AGEAdABlAD0AMQA7AAAA "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								< nul set  /p  " =<?xml version= " 1.0"  encoding= " utf-8" ?><genuineAuthorization xmlns= " http://www.microsoft.com/DRM/SL/GenuineAuthorization/1.0" ><version>1.0</version><genuineProperties origin= " sppclient" ><properties>OA3xOriginalProductId=;OA3xOriginalProductKey=;SessionId= %sessionId% ;TimeStampClient=2022-10-11T12:00:00Z</properties><signatures><signature name= " clientLockboxKey"  method= " rsa-sha256" > %signature% </signature></signatures></genuineProperties></genuineAuthorization> "  > " %tdir% \GenuineTicket "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								copy  /y /b " %tdir% \GenuineTicket "  " %tdir% \GenuineTicket.xml "  %nul%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  exist  " %tdir% \GenuineTicket.xml "  (  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Generating GenuineTicket.xml            [Failed, aborting the process] "  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  exist  " %tdir% \Genuine* "  del  /f /q " %tdir% \Genuine* "  %nul%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								goto  : k_final  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Generating GenuineTicket.xml            [Successful] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  " _xmlexist=if exist  " %tdir% \GenuineTicket.xml" "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Stop sppsvc  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%psc%  " Start-Job { Stop-Service sppsvc -force } | Wait-Job -Timeout 10 | Out-Null "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								sc query sppsvc |  find /i " STOPPED "  %nul%  &&  ( 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  Stopping sppsvc Service                 [Successful] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) || (  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Gray%  " Stopping sppsvc Service                 [Failed] "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%_xmlexist%  ( 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%psc%  " Start-Job { Restart-Service ClipSVC } | Wait-Job -Timeout 10 | Out-Null "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								%_xmlexist%  timeout /t 2 %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%_xmlexist%  timeout /t 2 %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%_xmlexist%  ( 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								if  exist  " %tdir% \*.xml "  del  /f /q " %tdir% \*.xml "  %nul%  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Installing GenuineTicket.xml            [Failed With ClipSVC Service Restart, Wait...] "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								copy  /y /b " %tdir% \GenuineTicket "  " %tdir% \GenuineTicket.xml "  %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								clipup -v -o
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  rebuildinfo =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  exist  %ProgramData% \Microsoft\Windows\ClipSVC\tokens.dat (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  rebuildinfo = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking ClipSVC tokens.dat             [Not Found] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%_xmlexist%  ( 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  rebuildinfo = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Installing GenuineTicket.xml            [Failed With clipup -v -o] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  exist  " %ProgramData% \Microsoft\Windows\ClipSVC\Install\Migration\*.xml "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  rebuildinfo = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking Ticket Migration               [Failed] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  showfix  if  defined  rebuildinfo  (  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Blue%  " %_fixmsg% "  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  exist  " %tdir% \Genuine* "  del  /f /q " %tdir% \Genuine* "  %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								: :==========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_product  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Activating... 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : k_checkexp  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  _k38  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : k_actinfo  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								goto  : k_final  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Clear 180 Days KMS Activation lock with Windows SKU specific rearm and without the need to restart the system  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %_wmic%  EQU  1 wmic path %spp%  where ID='%app% ' call ReArmsku %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  0 %psc%  " $null=([WMI]' %spp% ='' %app% ''').ReArmsku() "  %nul%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %errorlevel% == 0 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Applying SKU-ID Rearm                   [Successful] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Applying SKU-ID Rearm                   [Failed] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_refresh  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								call  : k_checkexp  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  _k38  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : k_actinfo  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								goto  : k_final  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Activation Failed "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  error  call  : dk_color  %Blue%  " %_fixmsg% "  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% troubleshoot 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Help -  "  %_Yellow%  "   %mas% troubleshoot "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: k_final  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Remove the added Specific KMS Host (Local Host) if activation is not completed  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  _k38  (  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								%nul%  reg delete " HKLM\ %specific_kms% "  /f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%nul%  reg delete " HKU\S-1-5-20\ %specific_kms% "  /f 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%nul%  reg query " HKLM\ %specific_kms% "  &&  (  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Removing The Added Specific KMS Host    [Failed] "  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								) || (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Removing The Added Specific KMS Host    [Successful] 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Protect KMS38 if opted by the user and conditions are correct  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  defined  _k38  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%psc%  " $f=[io.file]::ReadAllText('!_batp!') -split ':regdel\:.*';& ([ScriptBlock]::Create($f[1])) -protect "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								%nul%  reg delete " HKLM\ %specific_kms% "  /f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%nul%  reg query " HKLM\ %specific_kms% "  &&  (  
						 
					
						
							
								
									
										
										
										
											2023-10-01 01:54:15 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  Protect KMS38 From KMS                  [Successful] [Locked A Registry Key] 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								) || (  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Protect KMS38 From KMS                  [Failed To Lock A Registry Key] "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  clipup.exe does not exist in server cor and acor editions by default, it was copied there with this script  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  a_cor  if  exist  " %_clipup% "  del  /f /q " %_clipup% "  %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  a_cor  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  exist  " %_clipup% "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Deleting copied clipup.exe file         [Failed] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Deleting copied clipup.exe file         [Successful] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								for  %% # in  ( 407)  do  if  %osSKU% == %% # (  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " %winos%  does not support activation on non-azure platforms. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Trigger reevaluation of SPP's Scheduled Tasks  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  _k38  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_reeval  %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								goto  : dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: k_uninstall  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cls  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  terminal  mode 99, 28 
						 
					
						
							
								
									
										
										
										
											2023-10-16 08:20:03 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								title   Remove KMS38 Protection %masver%  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%nul%  reg delete " HKLM\ %specific_kms% "  /f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%nul%  reg delete " HKU\S-1-5-20\ %specific_kms% "  /f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%nul%  reg query " HKLM\ %specific_kms% "  &&  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%psc%  " $f=[io.file]::ReadAllText('!_batp!') -split ':regdel\:.*';iex ($f[1]) "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								%nul%  reg delete " HKLM\ %specific_kms% "  /f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								%nul%  reg query " HKLM\ %specific_kms% "  &&  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Removing Specific KMS Host              [Failed] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) || (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Removing Specific KMS Host              [Successful] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								goto  : dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  This code runs to protect/undo below registry key for KMS38 protection  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\55c92734-d682-4d71-983e-d6ec3f16059f  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  KMS38 protection stops 180 days KMS Activation from replacing KMS38 activation  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: regdel :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								param (
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    [switch]$protect
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$SID = New-Object System.Security.Principal.SecurityIdentifier('S-1-5-32-544')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$Admin = ($SID.Translate([System.Security.Principal.NTAccount])).Value
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if   {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$ruleArgs = @(" $Admin " , " Delete, SetValue " , " ContainerInherit " , " None " , " Deny " )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								} else {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$ruleArgs = @(" $Admin " , " FullControl " , " Allow " )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$path = 'SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\55c92734-d682-4d71-983e-d6ec3f16059f'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$key = [Microsoft.Win32.RegistryKey]::OpenBaseKey('LocalMachine', 'Registry64').OpenSubKey($path, 'ReadWriteSubTree', 'ChangePermissions')
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$acl = $key.GetAccessControl()
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$rule = [System.Security.AccessControl.RegistryAccessRule]::new.Invoke($ruleArgs)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$acl.ResetAccessRule($rule)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$key.SetAccessControl($acl)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: regdel :  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Set variables  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_setvar  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  psc = powershell.exe 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  winbuild = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /f  " tokens=6 delims=[].  "  %% G in  ( 'ver' )  do  set  winbuild = %% G 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _NCS = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %winbuild%  LSS  10586 set  _NCS = 0 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %winbuild%  GEQ  10586 reg query " HKCU\Console "  /v ForceV2 %nul2%  |  find /i " 0x0 "  %nul1%  &&  ( set  _NCS = 0)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_NCS%  EQU  1 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /F  %% a in  ( 'echo prompt $E ^| cmd' )  do  set  " esc= %% a "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set      " Red= " 41;97m" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set     " Gray= " 100;97m" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set    " Green= " 42;97m" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set     " Blue= " 44;97m" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set   " _White= " 40;37m" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set   " _Green= " 40;92m" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _Yellow= " 40;93m" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set      " Red= " Red"   " white" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set     " Gray= " Darkgray"   " white" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set    " Green= " DarkGreen"   " white" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set     " Blue= " Blue"   " white" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set   " _White= " Black"   " Gray" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set   " _Green= " Black"   " Green" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _Yellow= " Black"   " Yellow" "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " nceline=echo: &echo ==== ERROR ==== &echo: "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " eline=echo: &call :dk_color  %Red%   " ==== ERROR ===="  &echo: "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %~z0  GEQ  200000 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _exitmsg=Go back "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _fixmsg=Go back to Main Menu, select Troubleshoot and run Fix Licensing option. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _exitmsg=Exit "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _fixmsg=In MAS folder, run Troubleshoot script and select Fix Licensing option. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Show OS info  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_showosinfo  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /f  " skip=2 tokens=2* "  %% a in  ( 'reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE' )  do  set  osarch = %% b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /f  " tokens=6-7 delims=[].  "  %% i in  ( 'ver' )  do  if  not  " %% j " == " "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  fullbuild = %% i.%% j 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /f  " tokens=3 "  %% G in  ( '"reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v UBR"  %nul6% ' )  do  if  not  errorlevel  1  set  /a  " UBR= %% G "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /f  " skip=2 tokens=3,4 delims=.  "  %% G in  ( 'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v BuildLabEx' )  do  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  UBR  ( set  " fullbuild= %% G.!UBR! " )  else  ( set  " fullbuild= %% G. %% H " )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Checking OS Info                        [%winos%  ^|  %fullbuild%  ^|  %osarch% ] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Check SKU value  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_checksku  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_reflection  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  osSKU =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  slcSKU =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  wmiSKU =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  regSKU =  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  winsub =  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								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)  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  slcSKU = %slcSKU: =%  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  " %slcSKU% " == " 0 "  set  slcSKU =  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								for  /f  " tokens=* delims=0123456789 "  %% a in  ( " %slcSKU% " )  do  ( if  not  " [ %% a] " == " [] "  set  slcSKU = )  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								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"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %winbuild%  GEQ  15063 %psc%  " $f=[io.file]::ReadAllText('!_batp!') -split ':winsubstatus\:.*';iex ($f[1]) "  %nul2%  |  find /i " Subscription_is_activated "  %nul%  &&  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  regSKU  if  defined  slcSKU  if  not  " %regSKU% " == " %slcSKU% "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  winsub = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  osSKU = %regSKU%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  osSKU  set  osSKU = %slcSKU%  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  osSKU  set  osSKU = %wmiSKU%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  osSKU  set  osSKU = %regSKU%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Get Windows Subscription status  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: winsubstatus :  
						 
					
						
							
								
									
										
										
										
											2024-07-13 04:18:44 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$DM = [AppDomain]::CurrentDomain.DefineDynamicAssembly(6, 1).DefineDynamicModule(4).DefineType(2)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								[void]$DM.DefinePInvokeMethod('ClipGetSubscriptionStatus', 'Clipc.dll', 22, 1, [Int32], @([IntPtr].MakeByRefType()), 1, 3).SetImplementationFlags(128)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$m = [System.Runtime.InteropServices.Marshal]
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$p = $m::AllocHGlobal(12)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$r = $DM.CreateType()::ClipGetSubscriptionStatus([ref]$p)
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if    - e q   0 )   {  
						 
					
						
							
								
									
										
										
										
											2024-07-13 04:18:44 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  $enabled = $m::ReadInt32($p)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  if    - g e   1 )   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $state = $m::ReadInt32($p, 8)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if    - e q   1 )   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        " Subscription_is_activated. " 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 04:18:44 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  }
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: winsubstatus :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								: :  Check KMS activation status  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: k_actinfo  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  xpr =  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								for  /f  " tokens=* delims= "  %% # in  ( ' %psc%  "$([DateTime]::Now.addMinutes( %gpr% )).ToString('yyyy-MM-dd HH:mm:ss' ) "   %nul6% ') do set  " xpr=%% #"  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Green%  " %winos%  is activated till !xpr! "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Check remaining KMS activation grace period  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: k_checkexp  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  gpr = 0 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %_wmic%  EQU  1 for  /f  " tokens=2 delims== "  %% # in  ( '"wmic path  %spp%  where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and Description like ' %% KMSCLIENT %% ' and PartialProductKey is not NULL AND LicenseDependsOn is NULL) get GracePeriodRemaining /VALUE"  %nul6% ' )  do  set  " gpr= %% # "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  0 for  /f  " tokens=2 delims== "  %% # in  ( ' %psc%  "(([WMISEARCHER]'SELECT GracePeriodRemaining FROM  %spp%  WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f'' AND Description like '' %% KMSCLIENT %% '' AND PartialProductKey IS NOT NULL AND LicenseDependsOn is NULL' ) .Get() ) .GracePeriodRemaining |  %%  {echo ('GracePeriodRemaining='+$_)}"   %nul6% ') do set  " gpr=%% #"  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								if  %gpr%  GTR  259200 ( set  _k38 = 1)  else  ( set  _k38 = )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Get Windows permanent activation status  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_checkperm  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %_wmic%  EQU  1 wmic path %spp%  where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL AND LicenseDependsOn is NULL) get Name /value %nul2%  |  findstr /i " Windows "  %nul1%  &&  set  _perm = 1|| set  _perm =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  0 %psc%  " (([WMISEARCHER]'SELECT Name FROM  %spp%  WHERE LicenseStatus=1 AND GracePeriodRemaining=0 AND PartialProductKey IS NOT NULL AND LicenseDependsOn is NULL').Get()).Name |  %%  {echo ('Name='+$_)} "  %nul2%  |  findstr /i " Windows "  %nul1%  &&  set  _perm = 1|| set  _perm =  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Refresh license status  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_refresh  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %_wmic%  EQU  1 wmic path %sps%  where __CLASS='%sps% ' call RefreshLicenseStatus %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  0 %psc%  " $null=(([WMICLASS]' %sps% ').GetInstances()).RefreshLicenseStatus() "  %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Install Key  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_inskey  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  1 wmic path %sps%  where __CLASS='%sps% ' call InstallProductKey ProductKey=" %key% "  %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  0 %psc%  " try { $null=(([WMISEARCHER]'SELECT Version FROM  %sps% ').Get()).InstallProductKey(' %key% '); exit 0 } catch { exit $_.Exception.InnerException.HResult } "  %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  keyerror = %errorlevel%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cmd /c exit /b %keyerror% 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %keyerror%  NEQ  0 set  " keyerror=[0x %=ExitCode% ] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %keyerror%  EQU  0 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %sps% == SoftwareLicensingService call  : dk_refresh  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Installing Generic Product Key          %~1  [Successful] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Installing Generic Product Key           %~1  [Failed]  %keyerror% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  error  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  altapplist  call  : dk_color  %Red%  " Activation ID not found for this key. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Blue%  " %_fixmsg% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Get Windows installed key channel  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: k_channel  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  _gvlk =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  1 for  /f  " tokens=2 delims== "  %% # in  ( 'wmic path  %spp%  where "ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey IS NOT NULL AND LicenseDependsOn is NULL and Description like ' %% KMSCLIENT %% '" Get Name /value  %nul6% ' )  do  ( echo  %% # findstr /i " Windows "  %nul1%  &&  set  _gvlk = 1)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  0 for  /f  " tokens=2 delims== "  %% # in  ( ' %psc%  "(([WMISEARCHER]'SELECT Name FROM  %spp%  WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f'' AND PartialProductKey IS NOT NULL AND LicenseDependsOn is NULL and Description like '' %% KMSCLIENT %% ''' ) .Get() ) .Name |  %%  {echo ('Name='+$_)}"   %nul6% ') do (echo  %% # findstr /i  " Windows"   %nul1%  && set _gvlk=1)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Get all products Activation IDs  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_actids  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  allapps =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  1 set  " chkapp=for /f  " tokens=2 delims=="   %% a in (' " wmic path %spp%  where (ApplicationID='%1 ') get ID /VALUE"   %nul6% ') "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  0 set  " chkapp=for /f  " tokens=2 delims=="   %% a in (' %psc%   " (([WMISEARCHER]'SELECT ID FROM %spp%  WHERE ApplicationID=''%1 ''').Get()).ID ^|  %%  {echo ('ID='+$_)}"   %nul6% ') "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%chkapp%  do (if defined allapps (call set " allapps=!allapps!  %% a " ) else (call set " allapps= %% a " )) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Get installed products Activation IDs  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_actid  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  apps =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  1 set  " chkapp=for /f  " tokens=2 delims=="   %% a in (' " wmic path %spp%  where (ApplicationID='%1 ' and PartialProductKey is not null) get ID /VALUE"   %nul6% ') "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  0 set  " chkapp=for /f  " tokens=2 delims=="   %% a in (' %psc%   " (([WMISEARCHER]'SELECT ID FROM %spp%  WHERE ApplicationID=''%1 '' AND PartialProductKey IS NOT NULL').Get()).ID ^|  %%  {echo ('ID='+$_)}"   %nul6% ') "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%chkapp%  do (if defined apps (call set " apps=!apps!  %% a " ) else (call set " apps= %% a " )) 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Trigger reevaluation, it helps in updating SPP tasks  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_reeval  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  This key is left by the system in rearm process and sppsvc sometimes fails to delete it, it causes issues in working of the Scheduled Tasks of SPP  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " ruleskey=HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\PersistedSystemState "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reg delete " %ruleskey% "  /v " State "  /f %nul% 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reg delete " %ruleskey% "  /v " SuppressRulesEngine "  /f %nul% 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  r1 = $TB = [AppDomain]::CurrentDomain.DefineDynamicAssembly(4, 1).DefineDynamicModule(2, $False).DefineType(0); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  r2 = %r1%  [void]$TB.DefinePInvokeMethod('SLpTriggerServiceWorker', 'sppc.dll', 22, 1, [Int32], @([UInt32], [IntPtr], [String], [UInt32]), 1, 3); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  d1 = %r2%  [void]$TB.CreateType()::SLpTriggerServiceWorker(0, 0, 'reeval', 0) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%psc%  " Start-Job { Stop-Service sppsvc -force } | Wait-Job -Timeout 10 | Out-Null;  %d1% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Install License files using Powershell/WMI instead of slmgr.vbs  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: xrm :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function InstallLicenseFile($Lsc) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    try {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $null = $sls.InstallLicense([IO.File]::ReadAllText($Lsc))
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    } catch {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $host.SetShouldExit($_.Exception.HResult)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function InstallLicenseArr($Str) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $a = $Str -split ';'
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    ForEach ($x in $a) {InstallLicenseFile " $x " }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function InstallLicenseDir($Loc) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    dir  $Loc *.xrm-ms -af -s |  select -expand FullName |  % {InstallLicenseFile " $_ " }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								function ReinstallLicenses() {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $Oem = " $env:SysPath\oem " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $Spp = " $env:SysPath\spp\tokens " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    InstallLicenseDir " $Spp " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    If    $ O e m )   { I n s t a l l L i c e n s e D i r   " $ O e m " } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: xrm :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Check wmic.exe  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_ckeckwmic  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _wmic = 0 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( wmic.exe)  do  @ if  not  " %% ~$PATH:# " == " "  (  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								wmic path Win32_ComputerSystem get CreationClassName /value %nul2%  |  find /i " computersystem "  %nul1%  &&  set  _wmic = 1
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Show info for potential script stuck scenario  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_sppissue  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sc start sppsvc %nul% 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  spperror = %errorlevel%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %spperror%  NEQ  1056 if  %spperror%  NEQ  0 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%eline%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  sc start sppsvc [Error Code: %spperror% ] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%psc%  " $job = Start-Job { (Get-WmiObject -Query 'SELECT * FROM  %sps% ').Version }; if (-not (Wait-Job $job -Timeout 20)) {write-host 'sppsvc is not working correctly. Help -  %mas% troubleshoot'} "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								: :  Get Product name (WMI/REG methods are not reliable in all conditions, hence winbrand.dll method is used)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_product  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  d1 = %ref%  $meth = $TypeBuilder.DefinePInvokeMethod('BrandingFormatString', 'winbrand.dll', 'Public, Static', 1, [String], @([String]), 1, 3); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  d1 = %d1%  $meth.SetImplementationFlags(128); $TypeBuilder.CreateType()::BrandingFormatString('%% WINDOWS_LONG%% ') 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								set  winos =  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								for  /f  " delims= "  %% s in  ( '" %psc%   %d1% "' )  do  if  not  errorlevel  1  ( set  winos = %% s)  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  " %winos% "  |  find /i " Windows "  %nul1%  ||  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /f  " skip=2 tokens=2* "  %% a in  ( 'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName  %nul6% ' )  do  set  " winos= %% b "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								if  %winbuild%  GEQ  22000 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  winos = !winos:Windows 10=Windows 11!  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  winsub  exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Check base edition product name if Windows subscription license is found  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( pkeyhelper.dll)  do  @ if  " %% ~$PATH:# " == " "  exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  d1 = %ref%  [void]$TypeBuilder.DefinePInvokeMethod('GetEditionNameFromId', 'pkeyhelper.dll', 'Public, Static', 1, [int], @([int], [IntPtr].MakeByRefType()), 1, 3); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  d1 = %d1%  $out = 0; [void]$TypeBuilder.CreateType()::GetEditionNameFromId(%regSKU% , [ref]$out);$s=[Runtime.InteropServices.Marshal]::PtrToStringUni($out); $s 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /f  %% a in  ( ' %psc%  " %d1% "' )  do  if  not  errorlevel  1  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %winbuild%  GEQ  22000 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  winos = Windows 11 %% a 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  winos = Windows 10 %% a 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Common lines used in PowerShell reflection code  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: dk_reflection  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  ref = $AssemblyBuilder = [AppDomain]::CurrentDomain.DefineDynamicAssembly(4, 1); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  ref = %ref%  $ModuleBuilder = $AssemblyBuilder.DefineDynamicModule(2, $False); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  ref = %ref%  $TypeBuilder = $ModuleBuilder.DefineType(0); 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Get Product Key from pkeyhelper.dll for future new editions  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  It works on Windows 10 1803 (17134) and later builds.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: k_pkey  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_reflection  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  d1 = %ref%  [void]$TypeBuilder.DefinePInvokeMethod('SkuGetProductKeyForEdition', 'pkeyhelper.dll', 'Public, Static', 1, [int], @([int], [String], [String].MakeByRefType(), [String].MakeByRefType()), 1, 3); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  d1 = %d1%  $out = ''; [void]$TypeBuilder.CreateType()::SkuGetProductKeyForEdition(%1 , %2 , [ref]$out, [ref]$null); $out 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								set  pkey =  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								for  /f  %% a in  ( ' %psc%  " %d1% "' )  do  if  not  errorlevel  1  ( set  pkey = %% a)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Get channel name for the key which was extracted from pkeyhelper.dll  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: k_pkeychannel  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  k = %1  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  m = [Runtime.InteropServices.Marshal] 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  p = %SysPath% \spp\tokens\pkeyconfig\pkeyconfig.xrm-ms 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  d1 = %ref%  [void]$TypeBuilder.DefinePInvokeMethod('PidGenX', 'pidgenx.dll', 'Public, Static', 1, [int], @([String], [String], [String], [int], [IntPtr], [IntPtr], [IntPtr]), 1, 3); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  d1 = %d1%  $r = [byte[]]::new(0x04F8); $r[0] = 0xF8; $r[1] = 0x04; $f = %m% ::AllocHGlobal(0x04F8); %m% ::Copy($r, 0, $f, 0x04F8); 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  d1 = %d1%  [void]$TypeBuilder.CreateType()::PidGenX('%k% ', '%p% ', '00000', 0, 0, 0, $f); %m% ::Copy($f, $r, 0, 0x04F8); %m% ::FreeHGlobal($f); [Text.Encoding]::Unicode.GetString($r, 1016, 128) 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  pkeychannel =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /f  %% a in  ( ' %psc%  " %d1% "' )  do  if  not  errorlevel  1  ( set  pkeychannel = %% a)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: k_gvlk  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( pkeyhelper.dll)  do  @ if  " %% ~$PATH:# " == " "  exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( Volume:GVLK)  do  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : k_pkey  %osSKU%  '%% #' 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  pkey  call  : k_pkeychannel  !pkey!  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								if  /i  == [%% #] (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  key = !pkey!  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-14 02:29:11 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: dk_chkmal  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Many users unknowingly download mal-ware by using activators found through Google search.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  This code aims to notify users that their system has been affected by mal-ware.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-14 02:29:11 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  w =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  results =  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  exist  " %ProgramFiles% \KM %w% Spico "  set  pupfound1 =  KM%w% Spico  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  exist  " %SysPath% \Tasks\R@1n-KMS "   set  pupfound2 =  R@inKMS  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reg query " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks "  /f Path /s |  find /i " AutoPico "  %nul%  &&  set  pupfound1 =  KM%w% Spico 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reg query " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks "  /f Path /s |  find /i " R@1n "  %nul%  &&  set  pupfound2 =  R@inKMS 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  pupfound = %pupfound1% %pupfound2%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  hcount = 0 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( avira.com kaspersky.com virustotal.com mcafee.com)  do  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								find /i " %% # "  %SysPath% \drivers\etc\hosts %nul%  &&  set  /a  hcount += 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %hcount% == 4 set  " results=[AV URLs are blocked in hosts] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  wucount = 0 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( wuauserv)  do  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _corrupt =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								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 &  set  /a  wucount += 1 ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %wucount%  GEQ  1 set  " results= %results% [WU registry is corrupt] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sc start sppsvc %nul% 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  " %errorlevel% "  |  findstr " 577 225 "  %nul%  &&  set  " results= %results% [Likely File Infector] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  " %results% %pupfound% " == " "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  pupfound  call  : dk_color  %Gray%  " Checking PUP Activators                 [Found %pupfound% ] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  results  call  : dk_color  %Red%  " Checking Probable Mal %w% ware Infection      %results% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% remove_mal%w% ware 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Help -  "  %_Yellow%  "   %mas% remove_mal %w% ware "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2024-07-14 02:29:11 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-14 02:29:11 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: dk_errorcheck  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  showfix =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_chkmal  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-21 04:31:33 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Check Sandboxing  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sc query Null %nul%  ||  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking Sandboxing                     [Found. Script may not work properly.] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Blue%  " If you are using any third-party antivirus, check if it is blocking the script. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Check corrupt services  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  serv_cor =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( %_serv% )  do  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  _corrupt =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sc start %% # %nul% 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  !errorlevel!  EQU  1060 set  _corrupt = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sc query %% # %nul%  ||  set  _corrupt = 1
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								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
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  defined  _corrupt  ( if  defined  serv_cor  ( set  " serv_cor=!serv_cor!  %% # " )  else  ( set  " serv_cor= %% # " ) )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  serv_cor  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking Corrupt Services               [ %serv_cor% ] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  Check disabled services  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  serv_ste =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( %_serv% )  do  (  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								sc start %% # %nul% 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  !errorlevel!  EQU  1058 ( if  defined  serv_ste  ( set  " serv_ste=!serv_ste!  %% # " )  else  ( set  " serv_ste= %% # " ) )  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Change disabled services startup type to default  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  serv_csts =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  serv_cste =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  serv_ste  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( %serv_ste% )  do  (  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								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%  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  !errorlevel! == 0 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  serv_csts  ( set  " serv_csts=!serv_csts!  %% # " )  else  ( set  " serv_csts= %% # " )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  serv_cste  ( set  " serv_cste=!serv_cste!  %% # " )  else  ( set  " serv_cste= %% # " )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  defined  serv_csts  call  : dk_color  %Gray%  " Enabling Disabled Services              [Successful] [ %serv_csts% ] "  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  serv_cste  (  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Enabling Disabled Services              [Failed] [ %serv_cste% ] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Check if the services are able to run or not  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Workarounds are added to get correct status and error code because sc query doesn't output correct results in some conditions  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  serv_e =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( %_serv% )  do  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  errorcode =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  checkerror =  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sc query %% # |  find /i " RUNNING "  %nul%  ||  ( 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%psc%  " Start-Job { Start-Service  %% # } | Wait-Job -Timeout 10 | Out-Null "  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  errorcode = !errorlevel!  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								sc query %% # |  find /i " RUNNING "  %nul%  ||  set  checkerror = 1
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								sc start %% # %nul% 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  !errorlevel!  NEQ  1056 if  !errorlevel!  NEQ  0 ( set  errorcode = !errorlevel! & set  checkerror = 1)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								if  defined  checkerror  if  defined  serv_e  ( set  " serv_e=!serv_e!,  %% #-!errorcode! " )  else  ( set  " serv_e= %% #-!errorcode! " )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  serv_e  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Starting Services                       [Failed] [ %serv_e% ] "  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  %serv_e%  |  findstr /i " ClipSVC-1058 sppsvc-1058 "  %nul%  &&  (  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Blue%  " Restart the system to fix this error. "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								: :  Various error checks  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  defined  safeboot_option  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color2  %Red%  " Checking Boot Mode                      [ %safeboot_option% ]  "  %Blue%  " [Safe mode found. Run in normal mode.] "  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								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 "  (  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking Windows Setup State            [ %imagestate% ] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  " %imagestate% "  |  find /i " RESEAL "  %nul%  &&  (  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Blue%  " You need to run it in normal mode in case you are running it in Audit Mode. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reg query " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinPE "  /v InstRoot %nul%  &&  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
									
										
										
										
											2023-10-16 08:20:03 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color2  %Red%  " Checking WinPE                           "  %Blue%  " [WinPE mode found. Run in normal mode.] "  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  wpainfo =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  wpaerror =  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								for  /f  " delims= "  %% a in  ( ' %psc%  "$f=[io.file]::ReadAllText('!_batp!' )  -split ':wpatest\:.*';iex ($f[1])"  %nul6% ' )  do  ( set  wpainfo = %% a)  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  " %wpainfo% "  |  find /i " Error Found "  %nul%  &&  (  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  wpaerror = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking WPA Registry Error             [ %wpainfo% ] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) || (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Checking WPA Registry Count             [%wpainfo% ] 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  officeact  if  exist  " %SystemRoot% \Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum "  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								reg query " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion "  /v EditionID %nul2%  |  find /i " Eval "  %nul1%  ||  ( 
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking Eval Packages                  [Non-Eval Licenses are installed in Eval Windows] "  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% evaluation-editions 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Help -  "  %_Yellow%  "   %mas% evaluation-editions "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-16 17:01:13 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  osedition = 0 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								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  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-16 17:01:13 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  %osedition% == 0 (  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  " %osSKU% " == " 164 "  set  osedition = ProfessionalEducation 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  " %osSKU% " == " 165 "  set  osedition = ProfessionalEducationN 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  officeact  (  
						 
					
						
							
								
									
										
										
										
											2024-07-16 17:01:13 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %osedition% == 0 (  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking Edition Name                   [Not Found In Registry] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  exist  " %SysPath% \spp\tokens\skus\ %osedition% \ %osedition% *.xrm-ms "  if  not  exist  " %SysPath% \spp\tokens\skus\Security-SPP-Component-SKU- %osedition% \*- %osedition% -*.xrm-ms "  (  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2024-07-16 17:01:13 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  skunotfound = 1 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								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% ] "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%psc%  " try { $null=([WMISEARCHER]'SELECT * FROM  %sps% ').Get().Version; exit 0 } catch { exit $_.Exception.InnerException.HResult } "  %nul%  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  error_code = %errorlevel%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cmd /c exit /b %error_code% 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %error_code%  NEQ  0 set  " error_code=0x %=ExitCode% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %error_code%  NEQ  0 (  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking SoftwareLicensingService       [Not Working]  %error_code% "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  wmifailed =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_wmic%  EQU  1 wmic path Win32_ComputerSystem get CreationClassName /value %nul2%  |  find /i " computersystem "  %nul1%  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %_wmic%  EQU  0 %psc%  " Get-WmiObject -Class Win32_ComputerSystem | Select-Object -Property CreationClassName "  %nul2%  |  find /i " computersystem "  %nul1%  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %errorlevel%  NEQ  0 set  wmifailed = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  " %error_code% "  |  findstr /i " 0x800410 0x800440 "  %nul1%  &&  set  wmifailed = 1&  ::  https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmi-error-constants 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  wmifailed  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking WMI                            [Not Working] "  
						 
					
						
							
								
									
										
										
										
											2024-07-21 04:31:33 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  showfix  call  : dk_color  %Blue%  " Go back to Main Menu, select Troubleshoot and run Fix WMI option. "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  officeact  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %winbuild%  GEQ  10240 (  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%nul%  set /a " sum= %slcSKU% + %regSKU% + %wmiSKU% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  /a  " sum/=3 "  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  " !sum! " == " %slcSKU% "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Gray%  " Checking SLC/WMI/REG SKU                [Difference Found - SLC: %slcSKU%  WMI: %wmiSKU%  Reg: %regSKU% ] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%nul%  set /a " sum= %slcSKU% + %wmiSKU% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  /a  " sum/=2 "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  " !sum! " == " %slcSKU% "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Gray%  " Checking SLC/WMI SKU                    [Difference Found - SLC: %slcSKU%  WMI: %wmiSKU% ] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								reg query " HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\PersistedTSReArmed "  %nul%  &&  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Red%  " Checking Rearm                           "  %Blue%  " [System Restart Is Required] "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								reg query " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ClipSVC\Volatile\PersistedSystemState "  %nul%  &&  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Red%  " Checking ClipSVC                         "  %Blue%  " [System Restart Is Required] "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  This "WLMS" service was included in previous Eval editions (which were activable) to automatically shut down the system every hour after the evaluation period expired and prevent SPPSVC from stopping.  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  exist  " %SysPath% \wlms\wlms.exe "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								sc query wlms |  find /i " RUNNING "  %nul%  &&  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Checking Eval WLMS Service              [Found] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-18 04:36:50 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								reg query " HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion "  %nul%  ||  ( 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking HKU\S-1-5-20 Reg               [Not Found] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% troubleshoot 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Help -  "  %_Yellow%  "   %mas% troubleshoot "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  ( SppEx%w% tComObj.exe sppsvc.exe)  do  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reg query " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ima %w% ge File Execu %w% tion Options\ %% # "  %nul%  &&  ( if  defined  _sppint  ( set  " _sppint=!_sppint!,  %% # " )  else  ( set  " _sppint= %% # " ) ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  _sppint  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  Checking SPP Interference In IFEO       [%_sppint% ] 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								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 (  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								reg add " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform "  /v " SkipRearm "  /t REG_DWORD /d " 0 "  /f %nul% 
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking SkipRearm                      [Default 0 Value Not Found. Changing To 0] "  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%psc%  " Start-Job { Stop-Service sppsvc -force } | Wait-Job -Timeout 10 | Out-Null "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								reg query " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Plugins\Objects\msft:rm/algorithm/hwid/4.0 "  /f ba02fed39662 /d %nul%  ||  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking SPP Registry Key               [Incorrect ModuleId Found] "  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% issues_due_to_gaming_spoofers 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Possibly Caused By Gaming Spoofers. Help -  "  %_Yellow%  "   %mas% issues_due_to_gaming_spoofers "  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  tokenstore =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /f  " skip=2 tokens=2* "  %% a in  ( 'reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v TokenStore  %nul6% ' )  do  call  set  " tokenstore= %% b "  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %winbuild%  LSS  9200 set  " tokenstore= %Systemdrive% \Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %winbuild%  GEQ  9200 if  /i  not  " %tokenstore% " == " %SysPath% \spp\store "  if  /i  not  " %tokenstore% " == " %SysPath% \spp\store\2.0 "  if  /i  not  " %tokenstore% " == " %SysPath% \spp\store_test\2.0 "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  toerr = 1 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking TokenStore Registry Key        [Correct Path Not Found] [ %tokenstore% ] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  fixes = %fixes%  %mas% troubleshoot 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Help -  "  %_Yellow%  "   %mas% troubleshoot "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  This code creates token folder only if it's missing and sets default permission for it  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  toerr  if  not  exist  " %tokenstore% \ "  (  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								mkdir  " %tokenstore% "  %nul%  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %winbuild%  LSS  9200 set  " d=$sddl = 'O:NSG:NSD:AI(A;OICIID;FA;;;SY)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;NS)'; "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %winbuild%  GEQ  9200 set  " d=$sddl = 'O:BAG:BAD:PAI(A;OICI;FA;;;SY)(A;OICI;FA;;;BA)(A;OICIIO;GR;;;BU)(A;;FR;;;BU)(A;OICI;FA;;;S-1-5-80-123231216-2592883651-3715271367-3753151631-4175906628)'; "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  " d=!d! $AclObject = New-Object System.Security.AccessControl.DirectorySecurity; "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " d=!d! $AclObject.SetSecurityDescriptorSddlForm($sddl); "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " d=!d! Set-Acl -Path  %tokenstore%  -AclObject $AclObject; "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%psc%  " !d! "  %nul%  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  exist  " %tokenstore% \ "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Gray%  " Checking SPP Token Folder               [Not Found. Created Now] [ %tokenstore% \] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking SPP Token Folder               [Not Found. Failed To Create] [ %tokenstore% \] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_actid  55c92734-d682-4d71-983e-d6ec3f16059f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  apps  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%psc%  " Start-Job { Stop-Service sppsvc -force } | Wait-Job -Timeout 10 | Out-Null; $sls = Get-WmiObject SoftwareLicensingService; $f=[io.file]::ReadAllText('!_batp!') -split ':xrm\:.*';iex ($f[1]); ReinstallLicenses "  %nul%  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_actid  55c92734-d682-4d71-983e-d6ec3f16059f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  apps  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _notfoundids=Key Not Installed / Act ID Not Found "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_actids  55c92734-d682-4d71-983e-d6ec3f16059f 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  allapps  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " _notfoundids=Not found "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking Activation IDs                 [!_notfoundids!] "  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  exist  " %tokenstore% \ "  if  not  exist  " %tokenstore% \tokens.dat "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking SPP tokens.dat                 [Not Found] [ %tokenstore% \] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %winbuild%  GEQ  9200 if  not  exist  " %SystemRoot% \Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum "  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /f  " delims= "  %% a in  ( ' %psc%  "(Get-ScheduledTask -TaskName 'SvcRestartTask' -TaskPath '\Microsoft\Windows\SoftwareProtectionPlatform\' ) .State"   %nul6% ') do (set taskinfo= %% a)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  !taskinfo!  |  find /i " Ready "  %nul%  ||  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reg delete " HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform "  /v " actionlist "  /f %nul% 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reg query " HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\Microsoft\Windows\SoftwareProtectionPlatform\SvcRestartTask "  %nul%  ||  set  taskinfo = Removed
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking SvcRestartTask Status          [!taskinfo!] "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-18 04:36:50 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  This code checks if SPP has permission access to tokens folder and required registry keys. It's often caused by gaming spoofers.  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  permerror =  
						 
					
						
							
								
									
										
										
										
											2024-07-18 04:36:50 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %winbuild%  GEQ  9200 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								" %tokenstore% +FullControl "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								" HKLM:\SYSTEM\WPA+QueryValues, EnumerateSubKeys, WriteKey "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								" HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform+SetValue "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) do for /f "tokens=1,2 delims=+" %%A in (%%#) do if not defined permerror (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%psc%  " $acl = (Get-Acl ' %% A' | fl | Out-String); if (-not ($acl -match 'NT SERVICE\\sppsvc Allow   %% B') -or ($acl -match 'NT SERVICE\\sppsvc Deny')) {Exit 2} "  %nul%  
						 
					
						
							
								
									
										
										
										
											2024-07-18 04:36:50 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  !errorlevel! == 2 set  permerror = Error_Found 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-19 20:06:52 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								REM  https://learn.microsoft.com/office/troubleshoot/activation/license-issue-when-start-office-application  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-18 04:36:50 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  permerror  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reg query " HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion "  %nul%  &&  ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  " pol=HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Policies "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								reg query " !pol! "  %nul%  ||  reg add " !pol! "  %nul% 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-20 03:13:45 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								%psc%  " $acl = (Get-Acl 'Registry::!pol!' | fl | Out-String); if (-not ($acl -match 'NT AUTHORITY\\NETWORK SERVICE Allow  FullControl' -or $acl -match 'NT SERVICE\\sppsvc Allow  FullControl') -or ($acl -match 'Deny')) {Exit 3} "  %nul%  
						 
					
						
							
								
									
										
										
										
											2024-07-18 04:36:50 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  !errorlevel! == 3 set  " permerror=Error Found In S-1-5-20 SPP "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  permerror  (  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  error = 1 
						 
					
						
							
								
									
										
										
										
											2024-07-18 04:36:50 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Red%  " Checking SPP Permissions                [!permerror!] "  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  showfix  call  : dk_color  %Blue%  " %_fixmsg% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2024-07-18 04:36:50 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  If required services are not disabled or corrupted + if there is any error + SoftwareLicensingService errorlevel is not Zero + no fix was shown before  
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  serv_cor  if  not  defined  serv_cste  if  defined  error  if  /i  not  %error_code% == 0 if  not  defined  showfix  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  not  defined  permerror  if  defined  wpaerror  ( call  : dk_color  %Blue%  " Go back to Main Menu, select Troubleshoot and run Fix WPA Registry option. "  &  set  showfix = 1)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  showfix  (  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  showfix = 1 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								call  : dk_color  %Blue%  " %_fixmsg% "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  not  defined  permerror  call  : dk_color  %Blue%  " If activation still fails then run Fix WPA Registry option. "  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								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. "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  This code checks for invalid registry keys in HKLM\SYSTEM\WPA. This issue may appear even on healthy systems  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: wpatest :  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$wpaKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $env:COMPUTERNAME).OpenSubKey(" SYSTEM\\WPA " )
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$count = 0
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								foreach ($subkeyName in $wpaKey.GetSubKeyNames()) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    if    - m a t c h   ' . * - . * - . * - . * - . * - ' )   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        $count++
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								$osVersion = [System.Environment]::OSVersion.Version
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$minBuildNumber = 14393
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if    - g e   $ m i n B u i l d N u m b e r )   {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    $subkeyHashTable = @{}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    foreach ($subkeyName in $wpaKey.GetSubKeyNames()) {
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        if    - m a t c h   ' . * - . * - . * - . * - . * - ' )   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $keyNumber = $subkeyName -replace '.*-', ''
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $subkeyHashTable[$keyNumber] = $true
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    for  ($i=1; $i -le $count; $i++) {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if    $ 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 " ) )   { 
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								            Write-Output " Total Keys $count. Error Found- $i key does not exist " 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											$wpaKey.Close()
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
											exit 
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$wpaKey.GetSubKeyNames() |  ForEach-Object {
							 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    if    - m a t c h   ' . * - . * - . * - . * - . * - ' )   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        if    - l t   3 )   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            cmd /c " reg query  " HKLM\SYSTEM\WPA\$_"  /ve /t REG_BINARY >nul 2>&1 " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											if    - n e   0 )   { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            Write-Host " Total Keys $count. Error Found- Binary Data is corrupt " 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											$wpaKey.Close()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											exit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
											}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        } else {
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $subkey = $wpaKey.OpenSubKey($_)
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            $p = $subkey.GetValueNames()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            if    |   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 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								            }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								        }
							 
						 
					
						
							
								
									
										
										
										
											2023-11-16 02:33:20 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    }
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$count
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								$wpaKey.Close()
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: wpatest :  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_color  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_NCS%  EQU  1 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  %esc% [%~1 %~2 %esc% [0m 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%psc%  write-host -back '%1 ' -fore '%2 ' '%3 ' 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_color2  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_NCS%  EQU  1 (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  %esc% [%~1 %~2 %esc% [%~3 %~4 %esc% [0m 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								%psc%  write-host -back '%1 ' -fore '%2 ' '%3 ' -NoNewline; write-host -back '%4 ' -fore '%5 ' '%6 ' 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: dk_done  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo : 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_unattended% == 1 timeout /t 2 &  exit  /b 
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  fixes  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color2  %Blue%  " Press [1] To Open Troubleshoot Page  "  %Gray%  "  Press [0] To Ignore "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								choice /C:10 /N
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  !errorlevel! == 1 ( for  %% # in  ( %fixes% )  do  ( start  %% #) )  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  defined  terminal  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %_Yellow%  " Press 0 key to  %_exitmsg% ... "  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								choice /c 0 /n
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) else (  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								call  : dk_color  %_Yellow%  " Press any key to  %_exitmsg% ... "  
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								pause  %nul1%  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  1st column = Activation ID  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  2nd column = GVLK (Generic volume licensing key)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  3rd column = SKU ID  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  4th column = WMI Edition ID (For reference only)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  5th column = Build Branch name incase same Edition ID is used in different OS versions with different key (For reference only)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Separator  = "_"  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: kms38data  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-03-16 11:11:04 -07:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  f =  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								for  %% # in  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: : Windows 10/11  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								73111121-5638-40f6-bc11-f1d7b0d64300_NPPR9-FWDCX-D2C8J-H872K-2Y%f% T43___4_Enterprise
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								e272e3e2-732f-4c65-a8f0-484747d0d947_DPH2V-TTNVB-4X9Q3-TJR4H-KH%f% JW4__27_EnterpriseN
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								2de67392-b7a7-462a-b1ca-108dd189f588_W269N-WFGWX-YVC9B-4J6C9-T8%f% 3GX__48_Professional
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								a80b5abf-76ad-428b-b05d-a47d2dffeebf_MH37W-N47XK-V7XM9-C7227-GC%f% QG9__49_ProfessionalN
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								7b9e1751-a8da-4f75-9560-5fadfe3d8e38_3KHY7-WNT83-DGQKR-F7HPR-84%f% 4BM__98_CoreN
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								a9107544-f4a0-4053-a96a-1479abdef912_PVMJN-6DFY6-9CCP6-7BKTT-D3%f% WVR__99_CoreCountrySpecific
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								cd918a57-a41b-4c82-8dce-1a538e221a83_7HNRX-D7KGG-3K4RQ-4WPJ4-YT%f% DFH_100_CoreSingleLanguage
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								58e97c99-f377-4ef1-81d5-4ad5522b5fd8_TX9XD-98N7V-6WMQ6-BX7FG-H8%f% Q99_101_Core
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								e0c42288-980c-4788-a014-c080d2e1926e_NW6C2-QMPVW-D7KKK-3GKT6-VC%f% FB2_121_Education
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								3c102355-d027-42c6-ad23-2e7ef8a02585_2WH4N-8QGBV-H22JP-CT43Q-MD%f% WWJ_122_EducationN
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee_M7XTQ-FN8P6-TTKYV-9D4CC-J4%f% 62D_125_EnterpriseS_RS5,VB,Ge
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								2d5a5a60-3040-48bf-beb0-fcd770c20ce0_DCPHK-NFMTC-H88MJ-PFHPY-QJ%f% 4BJ_125_EnterpriseS_RS1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								7b51a46c-0c04-4e8f-9af4-8496cca90d5e_WNMTR-4C88C-JK8YV-HQ7T2-76%f% DF9_125_EnterpriseS_TH1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								7103a333-b8c8-49cc-93ce-d37c09687f92_92NFX-8DJQP-P6BBQ-THF9C-7C%f% G2H_126_EnterpriseSN_RS5,VB,Ge
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								9f776d83-7156-45b2-8a5c-359b9c9f22a3_QFFDN-GRT3P-VKWWX-X7T3R-8B%f% 639_126_EnterpriseSN_RS1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								87b838b7-41b6-4590-8318-5797951d8529_2F77B-TNFGY-69QQF-B8YKP-D6%f% 9TJ_126_EnterpriseSN_TH1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								82bbc092-bc50-4e16-8e18-b74fc486aec3_NRG8B-VKK3Q-CXVCJ-9G2XF-6Q%f% 84J_161_ProfessionalWorkstation
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								4b1571d3-bafb-4b40-8087-a961be2caf65_9FNHH-K3HBT-3W4TD-6383H-6X%f% YWF_162_ProfessionalWorkstationN
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								3f1afc82-f8ac-4f6c-8005-1d233e606eee_6TP4R-GNPTD-KYYHQ-7B7DP-J4%f% 47Y_164_ProfessionalEducation
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								5300b18c-2e33-4dc2-8291-47ffcec746dd_YVWGF-BXNMC-HTQYQ-CPQ99-66%f% QFC_165_ProfessionalEducationN
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								e0b2d383-d112-413f-8a80-97f373a5820c_YYVX9-NTFWV-6MDM3-9PT4T-4M%f% 68B_171_EnterpriseG
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								e38454fb-41a4-4f59-a5dc-25080e354730_44RPN-FTY23-9VTTB-MP9BX-T8%f% 4FV_172_EnterpriseGN
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ec868e65-fadf-4759-b23e-93fe37f2cc29_CPWHC-NT2C7-VYW78-DHDB2-PG%f% 3GK_175_ServerRdsh_RS5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								e4db50ea-bda1-4566-b047-0ca50abc6f07_7NBT4-WGBQX-MP4H7-QXFF8-YP%f% 3KX_175_ServerRdsh_RS3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								0df4f814-3f57-4b8b-9a9d-fddadcd69fac_NBTWJ-3DR69-3C4V8-C26MC-GQ%f% 9M6_183_CloudE
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								59eb965c-9150-42b7-a0ec-22151b9897c5_KBN8V-HFGQ4-MGXVD-347P6-PD%f% QGT_191_IoTEnterpriseS_VB,NI
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								d30136fc-cb4b-416e-a23d-87207abc44a9_6XN7V-PCBDC-BDBRH-8DQY7-G6%f% R44_202_CloudEditionN
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ca7df2e3-5ea0-47b8-9ac1-b1be4d8edd69_37D7F-N49CB-WQR8W-TBJ73-FM%f% 8RX_203_CloudEdition
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: : Windows 2016/19/22/25 LTSC/SAC  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								7dc26449-db21-4e09-ba37-28f2958506a6_TVRH6-WHNXV-R9WG3-9XRFY-MY%f% 832___7_ServerStandard_Ge
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								9bd77860-9b31-4b7b-96ad-2564017315bf_VDYBN-27WPP-V4HQT-9VMD4-VM%f% K7H___7_ServerStandard_FE
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								de32eafd-aaee-4662-9444-c1befb41bde2_N69G4-B89J2-4G8F4-WWYCC-J4%f% 64C___7_ServerStandard_RS5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								8c1c5410-9f39-4805-8c9d-63a07706358f_WC2BQ-8NRM3-FDDYY-2BFGV-KH%f% KQY___7_ServerStandard_RS1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								c052f164-cdf6-409a-a0cb-853ba0f0f55a_D764K-2NDRG-47T6Q-P8T8W-YP%f% 6DF___8_ServerDatacenter_Ge
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								ef6cfc9f-8c5d-44ac-9aad-de6a2ea0ae03_WX4NM-KYWYW-QJJR4-XV3QB-6V%f% M33___8_ServerDatacenter_FE
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								34e1ae55-27f8-4950-8877-7a03be5fb181_WMDGN-G9PQG-XVVXX-R3X43-63%f% DFG___8_ServerDatacenter_RS5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								21c56779-b449-4d20-adfc-eece0e1ad74b_CB7KF-BWN84-R7R2Y-793K2-8X%f% DDG___8_ServerDatacenter_RS1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								034d3cbb-5d4b-4245-b3f8-f84571314078_WVDHN-86M7X-466P6-VHXV7-YY%f% 726__50_ServerSolution_RS5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283_JCKRF-N37P4-C2D82-9YXRT-4M%f% 63B__50_ServerSolution_RS1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								7b4433f4-b1e7-4788-895a-c45378d38253_QN4C6-GBJD2-FB422-GHWJK-GJ%f% G2R_110_ServerCloudStorage
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								8de8eb62-bbe0-40ac-ac17-f75595071ea3_GRFBW-QNDC4-6QBHG-CCK3B-2P%f% R88_120_ServerARM64_RS5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								43d9af6e-5e86-4be8-a797-d072a046896c_K9FYF-G6NCK-73M32-XMVPY-F9%f% DRR_120_ServerARM64_RS4
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								39e69c41-42b4-4a0a-abad-8e3c10a797cc_QFND9-D3Y9C-J3KKY-6RPVP-2D%f% PYV_145_ServerDatacenterACor_FE
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								90c362e5-0da1-4bfd-b53b-b87d309ade43_6NMRW-2C8FM-D24W7-TQWMY-CW%f% H2D_145_ServerDatacenterACor_RS5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								e49c08e7-da82-42f8-bde2-b570fbcae76c_2HXDN-KRXHB-GPYC7-YCKFJ-7F%f% VDG_145_ServerDatacenterACor_RS3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								f5e9429c-f50b-4b98-b15c-ef92eb5cff39_67KN8-4FYJW-2487Q-MQ2J7-4C%f% 4RG_146_ServerStandardACor_FE
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								73e3957c-fc0c-400d-9184-5f7b6f2eb409_N2KJX-J94YW-TQVFB-DG9YT-72%f% 4CC_146_ServerStandardACor_RS5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								61c5ef22-f14f-4553-a824-c4b31e84b100_PTXN8-JFHJM-4WC78-MPCBR-9W%f% 4KR_146_ServerStandardACor_RS3
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								45b5aff2-60a0-42f2-bc4b-ec6e5f7b527e_FCNV3-279Q9-BQB46-FTKXX-9H%f% PRH_168_ServerAzureCor_Ge
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								8c8f0ad3-9a43-4e05-b840-93b8d1475cbc_6N379-GGTMK-23C6M-XVVTC-CK%f% FRQ_168_ServerAzureCor_FE
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								a99cc1f0-7719-4306-9645-294102fbff95_FDNH6-VW9RW-BXPJ7-4XTYG-23%f% 9TB_168_ServerAzureCor_RS5
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								3dbf341b-5f6c-4fa7-b936-699dce9e263f_VP34G-4NPPG-79JTQ-864T4-R3%f% MQX_168_ServerAzureCor_RS1
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								c2e946d1-cfa2-4523-8c87-30bc696ee584_XGN3F-F394H-FD2MY-PP6FD-8M%f% CRC_407_ServerTurbine_Ge
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								19b5e0fb-4431-46bc-bac1-2f1873e4ae73_NTBV8-9K7Q8-V27C6-M2BTV-KH%f% MXV_407_ServerTurbine_RS5
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								) do (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  /f  " tokens=1-5 delims=_ "  %% A in  ( " %% # " )  do  if  %osSKU% == %% C (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								if  %1 == key if  not  defined  key  echo  " !allapps! "  |  find /i " %% A "  %nul1%  &&  set  key = %% B 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  Below code is used to get alternate edition name and key if current edition doesn't support KMS38 activation  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  1st column = Current SKU ID  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  2nd column = Current Edition Name  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :  3rd column = Current Edition Activation ID  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  4th column = Alternate Edition Activation ID  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  5th column = Alternate Edition GVLK  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: :  6th column = Alternate Edition Name  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								: :  Separator  = _  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: kms38fallback  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  notfoundaltactID =  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								if  %_NoEditionChange% == 1 exit  /b 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								for  %% # in  (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								188_IoTEnterprise__________________8ab9bdd1-1f67-4997-82d9-8878520837d9_73111121-5638-40f6-bc11-f1d7b0d64300_NPPR9-FWDCX-D2C8J-H872K-2Y%f% T43_Enterprise
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								206_IoTEnterpriseK_________________80083eae-7031-4394-9e88-4901973d56fe_73111121-5638-40f6-bc11-f1d7b0d64300_NPPR9-FWDCX-D2C8J-H872K-2Y%f% T43_Enterprise
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								191_IoTEnterpriseS-2021____________ed655016-a9e8-4434-95d9-4345352c2552_32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee_M7XTQ-FN8P6-TTKYV-9D4CC-J4%f% 62D_EnterpriseS-2021
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								205_IoTEnterpriseSK________________d4f9b41f-205c-405e-8e08-3d16e88e02be_59eb965c-9150-42b7-a0ec-22151b9897c5_KBN8V-HFGQ4-MGXVD-347P6-PD%f% QGT_IoTEnterpriseS
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								138_ProfessionalSingleLanguage_____a48938aa-62fa-4966-9d44-9f04da3f72f2_2de67392-b7a7-462a-b1ca-108dd189f588_W269N-WFGWX-YVC9B-4J6C9-T8%f% 3GX_Professional
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								139_ProfessionalCountrySpecific____f7af7d09-40e4-419c-a49b-eae366689ebd_2de67392-b7a7-462a-b1ca-108dd189f588_W269N-WFGWX-YVC9B-4J6C9-T8%f% 3GX_Professional
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								139_ProfessionalCountrySpecific-Zn_01eb852c-424d-4060-94b8-c10d799d7364_2de67392-b7a7-462a-b1ca-108dd189f588_W269N-WFGWX-YVC9B-4J6C9-T8%f% 3GX_Professional
							 
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								) do (  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								for  /f  " tokens=1-6 delims=_ "  %% A in  ( " %% # " )  do  if  %osSKU% == %% A (  
						 
					
						
							
								
									
										
										
										
											2024-07-13 03:56:18 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								echo  " !allapps! "  |  find /i " %% C "  %nul1%  &&  (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								echo  " !allapps! "  |  find /i " %% D "  %nul1%  &&  (  
						 
					
						
							
								
									
										
										
										
											2022-11-07 12:33:01 -08:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								set  altkey = %% E 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  altedition = %% F 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								) || (  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  altedition = %% F 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								set  notfoundaltactID = 1 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
									
										
										
										
											2022-07-25 23:33:00 +05:30 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								)  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								exit  /b 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2023-09-25 19:16:19 +05:30 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								: :========================================================================================================================================  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								: : Leave empty line below