Added HWID support for Windows 10 LTSC 2019
- Now Microsoft support HWID (Digital License) for Windows 10 LTSC 2019, added key for it in the script. - Some minor improvements.
This commit is contained in:
		| @@ -0,0 +1,239 @@ | ||||
| @setlocal DisableDelayedExpansion | ||||
| @echo off | ||||
| @cls | ||||
|  | ||||
|  | ||||
| :: ================================================== | ||||
| ::  Check-Activation-Status-Alternative.cmd | ||||
| ::  Written by @abbodi1406 (MDL) | ||||
| ::  https://forums.mydigitallife.net/posts/838808 | ||||
| :: ================================================== | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| color 07 | ||||
| title Check Activation Status [wmic] | ||||
| set wspp=SoftwareLicensingProduct | ||||
| set wsps=SoftwareLicensingService | ||||
| set ospp=OfficeSoftwareProtectionProduct | ||||
| set osps=OfficeSoftwareProtectionService | ||||
| set winApp=55c92734-d682-4d71-983e-d6ec3f16059f | ||||
| set o14App=59a52881-a989-479d-af46-f275c6370663 | ||||
| set o15App=0ff1ce15-a989-479d-af46-f275c6370663 | ||||
| for %%# in (spp_get,ospp_get,cW1nd0ws,sppw,c0ff1ce15,sppo,osppsvc,ospp14,ospp15) do set "%%#=" | ||||
| for /f "tokens=6 delims=[]. " %%# in ('ver') do set winbuild=%%# | ||||
| set "spp_get=Description, DiscoveredKeyManagementServiceMachineName, DiscoveredKeyManagementServiceMachinePort, EvaluationEndDate, GracePeriodRemaining, ID, KeyManagementServiceMachine, KeyManagementServicePort, KeyManagementServiceProductKeyID, LicenseStatus, LicenseStatusReason, Name, PartialProductKey, ProductKeyID, VLActivationInterval, VLRenewalInterval" | ||||
| set "ospp_get=%spp_get%" | ||||
| if %winbuild% geq 9200 set "spp_get=%spp_get%, DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled" | ||||
|  | ||||
| set "SysPath=%Windir%\System32" | ||||
| if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative") | ||||
| set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\" | ||||
| set "line2=************************************************************" | ||||
| set "line3=____________________________________________________________" | ||||
|  | ||||
| call :casWpkey %wspp% %winApp% cW1nd0ws sppw | ||||
| if %winbuild% geq 9200 call :casWpkey %wspp% %o15App% c0ff1ce15 sppo | ||||
| wmic path %osps% get Version 1>nul 2>nul && ( | ||||
| call :casWpkey %ospp% %o14App% osppsvc ospp14 | ||||
| if %winbuild% lss 9200 call :casWpkey %ospp% %o15App% osppsvc ospp15 | ||||
| ) | ||||
|  | ||||
| echo %line2% | ||||
| echo ***                   Windows Status                     *** | ||||
| echo %line2% | ||||
| if not defined cW1nd0ws ( | ||||
| echo: | ||||
| echo Error: product key not found. | ||||
| goto :casWcon | ||||
| ) | ||||
| set winID=1 | ||||
| for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%winApp%' and PartialProductKey is not null) get ID /value"') do ( | ||||
|   set "chkID=%%#" | ||||
|   call :casWdet "%wspp%" "%wsps%" "%spp_get%" | ||||
|   call :casWout | ||||
|   echo %line3% | ||||
|   echo: | ||||
| ) | ||||
|  | ||||
| :casWcon | ||||
| set winID=0 | ||||
| set verbose=1 | ||||
| if not defined c0ff1ce15 ( | ||||
| if defined osppsvc goto :casWospp | ||||
| goto :casWend | ||||
| ) | ||||
| echo %line2% | ||||
| echo ***                   Office Status                      *** | ||||
| echo %line2% | ||||
| for /f "tokens=2 delims==" %%# in ('"wmic path %wspp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do ( | ||||
|   set "chkID=%%#" | ||||
|   call :casWdet "%wspp%" "%wsps%" "%spp_get%" | ||||
|   call :casWout | ||||
|   echo %line3% | ||||
|   echo: | ||||
| ) | ||||
| set verbose=0 | ||||
| if defined osppsvc goto :casWospp | ||||
| goto :casWend | ||||
|  | ||||
| :casWospp | ||||
| if %verbose%==1 ( | ||||
| echo %line2% | ||||
| echo ***                   Office Status                      *** | ||||
| echo %line2% | ||||
| ) | ||||
| if defined ospp15 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o15App%' and PartialProductKey is not null) get ID /value"') do ( | ||||
|   set "chkID=%%#" | ||||
|   call :casWdet "%ospp%" "%osps%" "%ospp_get%" | ||||
|   call :casWout | ||||
|   echo %line3% | ||||
|   echo: | ||||
| ) | ||||
| if defined ospp14 for /f "tokens=2 delims==" %%# in ('"wmic path %ospp% where (ApplicationID='%o14App%' and PartialProductKey is not null) get ID /value"') do ( | ||||
|   set "chkID=%%#" | ||||
|   call :casWdet "%ospp%" "%osps%" "%ospp_get%" | ||||
|   call :casWout | ||||
|   echo %line3% | ||||
|   echo: | ||||
| ) | ||||
| goto :casWend | ||||
|  | ||||
| :casWpkey | ||||
| wmic path %1 where (ApplicationID='%2' and PartialProductKey is not null) get ID /value 2>nul | findstr /i ID 1>nul && (set %3=1&set %4=1) | ||||
| exit /b | ||||
|  | ||||
| :casWdet | ||||
| for %%# in (%~3) do set "%%#=" | ||||
| if %~1 equ %ospp% for %%# in (DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled) do set "%%#=" | ||||
| set "cKmsClient=" | ||||
| set "cTblClient=" | ||||
| set "cAvmClient=" | ||||
| set "ExpireMsg=" | ||||
| set "_xpr=" | ||||
| for /f "tokens=* delims=" %%# in ('"wmic path %~1 where ID='%chkID%' get %~3 /value" ^| findstr ^=') do set "%%#" | ||||
|  | ||||
| set /a _gpr=(GracePeriodRemaining+1440-1)/1440 | ||||
| echo %Description%| findstr /i VOLUME_KMSCLIENT 1>nul && (set cKmsClient=1&set _mTag=Volume) | ||||
| echo %Description%| findstr /i TIMEBASED_ 1>nul && (set cTblClient=1&set _mTag=Timebased) | ||||
| echo %Description%| findstr /i VIRTUAL_MACHINE_ACTIVATION 1>nul && (set cAvmClient=1&set _mTag=Automatic VM) | ||||
| cmd /c exit /b %LicenseStatusReason% | ||||
| set "LicenseReason=%=ExitCode%" | ||||
| set "LicenseMsg=Time remaining: %GracePeriodRemaining% minute(s) (%_gpr% day(s))" | ||||
| if %_gpr% GEQ 1 for /f "tokens=* delims=" %%# in ('powershell "$([DateTime]::Now.addMinutes(%GracePeriodRemaining%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#" | ||||
|  | ||||
| if %LicenseStatus% EQU 0 ( | ||||
| set "License=Unlicensed" | ||||
| set "LicenseMsg=" | ||||
| ) | ||||
| if %LicenseStatus% EQU 1 ( | ||||
| set "License=Licensed" | ||||
| set "LicenseMsg=" | ||||
| if %GracePeriodRemaining% EQU 0 ( | ||||
|   if %winID% EQU 1 (set "ExpireMsg=The machine is permanently activated.") else (set "ExpireMsg=The product is permanently activated.") | ||||
|   ) else ( | ||||
|   set "LicenseMsg=%_mTag% activation expiration: %GracePeriodRemaining% minute(s) (%_gpr% day(s))" | ||||
|   if defined _xpr set "ExpireMsg=%_mTag% activation will expire %_xpr%" | ||||
|   ) | ||||
| ) | ||||
| if %LicenseStatus% EQU 2 ( | ||||
| set "License=Initial grace period" | ||||
| if defined _xpr set "ExpireMsg=Initial grace period ends %_xpr%" | ||||
| ) | ||||
| if %LicenseStatus% EQU 3 ( | ||||
| set "License=Additional grace period (KMS license expired or hardware out of tolerance)" | ||||
| if defined _xpr set "ExpireMsg=Additional grace period ends %_xpr%" | ||||
| ) | ||||
| if %LicenseStatus% EQU 4 ( | ||||
| set "License=Non-genuine grace period." | ||||
| if defined _xpr set "ExpireMsg=Non-genuine grace period ends %_xpr%" | ||||
| ) | ||||
| if %LicenseStatus% EQU 6 ( | ||||
| set "License=Extended grace period" | ||||
| if defined _xpr set "ExpireMsg=Extended grace period ends %_xpr%" | ||||
| ) | ||||
| if %LicenseStatus% EQU 5 ( | ||||
| set "License=Notification" | ||||
|   if "%LicenseReason%"=="C004F200" (set "LicenseMsg=Notification Reason: 0xC004F200 (non-genuine)." | ||||
|   ) else if "%LicenseReason%"=="C004F009" (set "LicenseMsg=Notification Reason: 0xC004F009 (grace time expired)." | ||||
|   ) else (set "LicenseMsg=Notification Reason: 0x%LicenseReason%" | ||||
|   ) | ||||
| ) | ||||
| if %LicenseStatus% GTR 6 ( | ||||
| set "License=Unknown" | ||||
| set "LicenseMsg=" | ||||
| ) | ||||
| if not defined cKmsClient exit /b | ||||
|  | ||||
| if %KeyManagementServicePort%==0 set KeyManagementServicePort=1688 | ||||
| set "KmsReg=Registered KMS machine name: %KeyManagementServiceMachine%:%KeyManagementServicePort%" | ||||
| if "%KeyManagementServiceMachine%"=="" set "KmsReg=Registered KMS machine name: KMS name not available" | ||||
|  | ||||
| if %DiscoveredKeyManagementServiceMachinePort%==0 set DiscoveredKeyManagementServiceMachinePort=1688 | ||||
| set "KmsDns=KMS machine name from DNS: %DiscoveredKeyManagementServiceMachineName%:%DiscoveredKeyManagementServiceMachinePort%" | ||||
| if "%DiscoveredKeyManagementServiceMachineName%"=="" set "KmsDns=DNS auto-discovery: KMS name not available" | ||||
|  | ||||
| for /f "tokens=* delims=" %%# in ('"wmic path %~2 get ClientMachineID, KeyManagementServiceHostCaching /value" ^| findstr ^=') do set "%%#" | ||||
| if /i %KeyManagementServiceHostCaching%==True (set KeyManagementServiceHostCaching=Enabled) else (set KeyManagementServiceHostCaching=Disabled) | ||||
|  | ||||
| if %winbuild% lss 9200 exit /b | ||||
| if %~1 equ %ospp% exit /b | ||||
|  | ||||
| if "%DiscoveredKeyManagementServiceMachineIpAddress%"=="" set "DiscoveredKeyManagementServiceMachineIpAddress=not available" | ||||
|  | ||||
| if "%KeyManagementServiceLookupDomain%"=="" set "KeyManagementServiceLookupDomain=" | ||||
|  | ||||
| if %VLActivationTypeEnabled% EQU 3 ( | ||||
| set VLActivationType=Token | ||||
| ) else if %VLActivationTypeEnabled% EQU 2 ( | ||||
| set VLActivationType=KMS | ||||
| ) else if %VLActivationTypeEnabled% EQU 1 ( | ||||
| set VLActivationType=AD | ||||
| ) else ( | ||||
| set VLActivationType=All | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| :casWout | ||||
| echo: | ||||
| echo Name: %Name% | ||||
| echo Description: %Description% | ||||
| echo Activation ID: %ID% | ||||
| echo Extended PID: %ProductKeyID% | ||||
| if defined ProductKeyChannel echo Product Key Channel: %ProductKeyChannel% | ||||
| echo Partial Product Key: %PartialProductKey% | ||||
| echo License Status: %License% | ||||
| if defined LicenseMsg echo %LicenseMsg% | ||||
| if not %LicenseStatus%==0 if not %EvaluationEndDate:~0,8%==16010101 echo Evaluation End Date: %EvaluationEndDate:~0,4%-%EvaluationEndDate:~4,2%-%EvaluationEndDate:~6,2% %EvaluationEndDate:~8,2%:%EvaluationEndDate:~10,2% UTC | ||||
| if not defined cKmsClient ( | ||||
| if defined ExpireMsg echo:&echo:    %ExpireMsg% | ||||
| exit /b | ||||
| ) | ||||
| if defined VLActivationTypeEnabled echo Configured Activation Type: %VLActivationType% | ||||
| echo: | ||||
| if not %LicenseStatus%==1 ( | ||||
| echo Please activate the product in order to update KMS client information values. | ||||
| exit /b | ||||
| ) | ||||
| echo Most recent activation information: | ||||
| echo Key Management Service client information | ||||
| echo:    Client Machine ID (CMID): %ClientMachineID% | ||||
| echo:    %KmsDns% | ||||
| echo:    %KmsReg% | ||||
| if defined DiscoveredKeyManagementServiceMachineIpAddress echo:    KMS machine IP address: %DiscoveredKeyManagementServiceMachineIpAddress% | ||||
| echo:    KMS machine extended PID: %KeyManagementServiceProductKeyID% | ||||
| echo:    Activation interval: %VLActivationInterval% minutes | ||||
| echo:    Renewal interval: %VLRenewalInterval% minutes | ||||
| echo:    KMS host caching: %KeyManagementServiceHostCaching% | ||||
| if defined KeyManagementServiceLookupDomain echo:    KMS SRV record lookup domain: %KeyManagementServiceLookupDomain% | ||||
| if defined ExpireMsg echo:&echo:    %ExpireMsg% | ||||
| exit /b | ||||
|  | ||||
| :casWend | ||||
| echo: | ||||
| echo Press any key to exit. | ||||
| pause >nul | ||||
| exit /b | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -0,0 +1,45 @@ | ||||
| ==================================================================================================== | ||||
|    File Details: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe                  Virus Total = 0/71 | ||||
|    ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll                            Virus Total = 0/68 | ||||
|    578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe            Virus Total = 0/69 | ||||
|    5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll                      Virus Total = 0/67 | ||||
|    48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe                         Virus Total = 0/68 | ||||
|  | ||||
|    Virus Total Report Date: 2020-01-21 | ||||
|  | ||||
|  - File Sources: | ||||
|  | ||||
|    - ClipUp.exe (Original): | ||||
|      From Windows server 2016 x64 ISO | ||||
|  | ||||
|    - gatherosstate.exe (Original): | ||||
|      From Windows 10 x86 14393 ADK | ||||
|  | ||||
|    - ARM64_gatherosstate.exe (Original): | ||||
|      From Windows 10 ARM64 18362 ISO | ||||
|  | ||||
|    - ARM64_slc.dll and slc.dll: | ||||
|  | ||||
|      Original slshim | ||||
|      https://github.com/vyvojar/slshim | ||||
|  | ||||
|      Improved by @mspaintmsi | ||||
|      https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 | ||||
|      https://github.com/massgravel/MASSGRAVE | ||||
|      https://gitlab.com/massgrave/massgrave | ||||
|  | ||||
|      Source code is included. | ||||
|      slc.dll is based on Integrated_Patcher_2 method. | ||||
|      It is currently in use in HWID/KMS38 Activation script. | ||||
|  | ||||
| ____________________________________________________________________________________________________ | ||||
|  | ||||
|      You can safely delete the following files if it's not required for you. | ||||
|  | ||||
|      ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions. | ||||
|      ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10. | ||||
|  | ||||
| ==================================================================================================== | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -0,0 +1,765 @@ | ||||
| @setlocal DisableDelayedExpansion | ||||
| @echo off | ||||
|  | ||||
|  | ||||
| :: For unattended mode, run the script with /u parameter. | ||||
|  | ||||
|  | ||||
|  | ||||
| ::========================================================================================================= | ||||
| :    Credits: | ||||
| ::========================================================================================================= | ||||
| :: | ||||
| ::   @mspaintmsi   Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade. | ||||
| ::      and        Created various methods for HWID/KMS38 Activation | ||||
| ::   *Anonymous    https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 | ||||
| ::                 https://github.com/massgravel/MASSGRAVE | ||||
| ::                 https://gitlab.com/massgrave/massgrave | ||||
| :: | ||||
| ::   @vyvojar      Original slshim (slc.dll) | ||||
| ::                 https://github.com/vyvojar/slshim/releases | ||||
| :: | ||||
| ::--------------------------------------------------------------------------------------------------------- | ||||
| :: | ||||
| ::   HWID/KMS38 methods Suggestions and improvements:- | ||||
| ::   | ||||
| ::   @sponpa       New ideas for the HWID/KM38 Generation | ||||
| ::                 https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257 | ||||
| :: | ||||
| ::   @leitek8      Improvements for the slc.dll | ||||
| ::                 https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005 | ||||
| :: | ||||
| ::--------------------------------------------------------------------------------------------------------- | ||||
| :: | ||||
| ::   Kind Help:- | ||||
| :: | ||||
| ::   Thanks for having my back and answering all of my queries. (In no particular order) | ||||
| ::    | ||||
| ::   @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 | ||||
| :: | ||||
| ::   @BorrowedWifi for providing support in fixing English grammar errors in the Read Me. | ||||
| ::   @Chibi ANUBIS and @smashed for testing scripts for ARM64 system. | ||||
| :: | ||||
| ::   Special thanks to @abbodi1406 for providing the great help. | ||||
| :: | ||||
| ::--------------------------------------------------------------------------------------------------------- | ||||
| :: | ||||
| ::   This script is a part of 'Microsoft Activation Scripts' project. | ||||
| :: | ||||
| ::   Homepages- | ||||
| ::   NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
| ::   GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
| ::   GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
| :: | ||||
| ::   Maintained by @WindowsAddict | ||||
| :: | ||||
| ::   P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only  | ||||
| ::   manage batch script tool which is based on the above mentioned original co-authors activation methods. | ||||
| :: | ||||
| ::========================================================================================================= | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| title  [HWID] Digital License Activation | ||||
| set Unattended= | ||||
| set _args= | ||||
| set _elev= | ||||
| set "_arg1=%~1" | ||||
| if not defined _arg1 goto :DL_NoProgArgs | ||||
| set "_args=%~1" | ||||
| set "_arg2=%~2" | ||||
| if defined _arg2 set "_args=%~1 %~2" | ||||
| for %%A in (%_args%) do ( | ||||
| if /i "%%A"=="-el" set _elev=1 | ||||
| if /i "%%A"=="/u" set Unattended=1) | ||||
| :DL_NoProgArgs | ||||
| for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G | ||||
| set "_psc=powershell" | ||||
| set "nul=1>nul 2>nul" | ||||
| set "Red="white" "DarkRed"" | ||||
| set "Green="white" "DarkGreen"" | ||||
| set "Magenta="white" "darkmagenta"" | ||||
| set "Gray="white" "darkgray"" | ||||
| set "Black="white" "Black"" | ||||
| set "ELine=echo: &call :DL_color "==== ERROR ====" %Red% &echo:" | ||||
| set slp=SoftwareLicensingProduct | ||||
| set sls=SoftwareLicensingService | ||||
| set wApp=55c92734-d682-4d71-983e-d6ec3f16059f | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| for %%i in (powershell.exe) do if "%%~$path:i"=="" ( | ||||
| echo: &echo ==== ERROR ==== &echo: | ||||
| echo Powershell is not installed in the system. | ||||
| echo Aborting... | ||||
| goto DL_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| if %winbuild% LSS 10240 ( | ||||
| %ELine% | ||||
| echo Unsupported OS version Detected. | ||||
| echo Project is supported only for Windows 10. | ||||
| goto DL_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Elevate script as admin and pass arguments and preventing loop | ||||
| ::  Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. | ||||
| ::  Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. | ||||
|  | ||||
| %nul% reg query HKU\S-1-5-19 && ( | ||||
|   goto :DL_Passed | ||||
|   ) || ( | ||||
|   if defined _elev goto :DL_E_Admin | ||||
| ) | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_vbsf=%temp%\admin.vbs" | ||||
| set _PSarg="""%~f0""" -el | ||||
| if defined _args set _PSarg="""%~f0""" -el """%_args%""" | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ( | ||||
| echo Set strArg=WScript.Arguments.Named | ||||
| echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) | ||||
| echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then | ||||
| echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) | ||||
| echo End If | ||||
| echo End With | ||||
| echo .Terminate | ||||
| echo End With | ||||
| echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 | ||||
| )>"!_vbsf!" | ||||
|  | ||||
| (%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && ( | ||||
| del /f /q "!_vbsf!" | ||||
| exit /b | ||||
| ) || ( | ||||
| del /f /q "!_vbsf!" | ||||
| %nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( | ||||
| exit /b | ||||
| ) || ( | ||||
| goto :DL_E_Admin | ||||
| ) | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| :DL_E_Admin | ||||
| %ELine% | ||||
| echo This script require administrator privileges. | ||||
| echo To do so, right click on this script and select 'Run as administrator'. | ||||
| goto DL_Done | ||||
|  | ||||
| :DL_Passed | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Fix for the special characters limitation in path name | ||||
| ::  Written by @abbodi1406 | ||||
|  | ||||
| set "_work=%~dp0" | ||||
| if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%" | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_batp=%_batf:'=''%" | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| mode con: cols=102 lines=31 | ||||
|  | ||||
| ::  Check Windows OS name | ||||
|  | ||||
| set winos= | ||||
| for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b" | ||||
| if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b" | ||||
|  | ||||
| call :DL_CheckPermAct | ||||
| if defined PermAct ( | ||||
|  | ||||
| echo ___________________________________________________________________________________________ | ||||
| echo: | ||||
| call :DL_color1 "     " %Black% &call :DL_color "Checking: %winos% is Permanently Activated." %Green% | ||||
| call :DL_color1 "     " %Black% &call :DL_color "Activation is not required." %Gray% | ||||
| echo ___________________________________________________________________________________________ | ||||
| echo: | ||||
| if defined Unattended goto DL_Done | ||||
|  | ||||
| echo      Press [1] or [2] button in Keyboard : | ||||
| echo ___________________________________________ | ||||
| echo: | ||||
| choice /C:12 /N /M ">    [1] Activate [2] Exit : " | ||||
|  | ||||
| if errorlevel 2 exit /b | ||||
| if errorlevel 1 Goto DL_Continue | ||||
| ) | ||||
|  | ||||
| :DL_Continue | ||||
| cls | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cd /d "!_work!" | ||||
| pushd "!_work!" | ||||
|  | ||||
| if not exist "!_work!\BIN\" ( | ||||
| %ELine% | ||||
| echo 'BIN' Folder does not exist in current directory. | ||||
| echo It's supposed to have files required for the Activation. | ||||
| goto DL_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| echo %winos%| findstr /I Evaluation >nul && set Eval=1||set Eval= | ||||
| if defined Eval ( | ||||
| %ELine% | ||||
| echo [%winos% ^| %winbuild%] HWID Activation is Not Supported. | ||||
| echo %winos%| findstr /I Server >nul && ( | ||||
| echo Server Evaluation cannot be activated. Convert it to full Server OS. | ||||
| ) || ( | ||||
| echo Evaluation Editions cannot be activated. Install full Windows OS. | ||||
| ) | ||||
| goto DL_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Check SKU value | ||||
|  | ||||
| set SKU= | ||||
| for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a) | ||||
| if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a) | ||||
|  | ||||
| if "%osSKU%"=="" ( | ||||
| %ELine% | ||||
| echo SKU value was not detected properly. Aborting... | ||||
| goto DL_Done | ||||
| ) | ||||
|  | ||||
| ::  Check Windows Edition with SKU value for better accuracy | ||||
|  | ||||
| set osedition= | ||||
| call :_CheckEdition %nul% | ||||
|  | ||||
| if "%osedition%"=="" ( | ||||
| %ELine% | ||||
| echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] HWID Activation is Not Supported. | ||||
| goto DL_Done | ||||
| ) | ||||
|  | ||||
| ::  Check Windows Architecture  | ||||
|  | ||||
| set arch= | ||||
| reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul && set arch=x86|| set arch=x64 | ||||
| wmic os get osarchitecture | find /i "ARM" > nul && set arch=ARM64|| echo %PROCESSOR_ARCHITECTURE% | find /i "ARM" > nul && set arch=ARM64 | ||||
|  | ||||
| if "%arch%"=="ARM64" call :DL_check ARM64_gatherosstate.exe ARM64_slc.dll | ||||
| if not "%arch%"=="ARM64" call :DL_check gatherosstate.exe slc.dll | ||||
| if defined _miss goto DL_Done | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| set key= | ||||
| call :%osedition% %nul% | ||||
|  | ||||
| if "%key%"=="" ( | ||||
| %ELine% | ||||
| echo [%winos% ^| %winbuild%] HWID Activation is Not Supported. | ||||
| goto DL_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| echo Checking OS Info                        [%winos% ^| %winbuild% ^| %arch%] | ||||
|  | ||||
| set "Chkint=Checking Internet Connection           " | ||||
| set IntCon= | ||||
| ping -n 1 www.microsoft.com %nul% && ( | ||||
| set IntCon=1 | ||||
| echo %Chkint% [Connected] | ||||
| ) || ( | ||||
| call :DL_color "%Chkint% [Not connected] [Ping www.microsoft.com - Failed]" %Red% | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| echo: | ||||
| set _1=ClipSVC | ||||
| set _2=wlidsvc | ||||
| set _3=sppsvc | ||||
| set _4=wuauserv | ||||
|  | ||||
| for %%# in (%_1% %_2% %_3% %_4%) do call :DL_ServiceCheck %%# | ||||
|  | ||||
| set "CLecho=Checking %_1%                        [Service Status -%Cl_state%] [Startup Type -%Cl_start_type%]" | ||||
| set "wlecho=Checking %_2%                        [Service Status -%wl_state%] [Startup Type -%wl_start_type%]" | ||||
| set "specho=Checking %_3%                         [Service Status -%sp_state%] [Startup Type -%sp_start_type%]" | ||||
| set "wuecho=Checking %_4%                       [Service Status -%wu_state%] [Startup Type -%wu_start_type%]" | ||||
|  | ||||
| if not "%Cl_start_type%"=="Demand"       (call :DL_color "%CLecho%" %Red% & set Clst_e=1) else (echo %CLecho%) | ||||
| if not "%wl_start_type%"=="Demand"       (call :DL_color "%wlecho%" %Red% & set wlst_e=1) else (echo %wlecho%) | ||||
| if not "%sp_start_type%"=="Delayed-Auto" (call :DL_color "%specho%" %Red% & set spst_e=1) else (echo %specho%) | ||||
|  | ||||
| if "%wu_start_type%"=="Disabled" (set "_C=%Red%") else (set "_C=%Gray%") | ||||
| if not "%wu_start_type%"=="Auto"         (call :DL_color "%wuecho%" %_C% & set wust_e=1) else (echo %wuecho%) | ||||
|  | ||||
| echo: | ||||
| if defined Clst_e (sc config %_1% start= Demand %nul%       && set Clst_s=%_1%-Demand || set Clst_u=%_1%-Demand ) | ||||
| if defined wlst_e (sc config %_2% start= Demand %nul%       && set wlst_s=%_2%-Demand || set wlst_u=%_2%-Demand ) | ||||
| if defined spst_e (sc config %_3% start= Delayed-Auto %nul% && set spst_s=%_3%-Delayed-Auto || set spst_u=%_3%-Delayed-Auto ) | ||||
| if defined wust_e (sc config %_4% start= Auto %nul%         && set wust_s=%_4%-Auto || set wust_u=%_4%-Auto ) | ||||
|  | ||||
| for %%# in (Clst_s,wlst_s,spst_s,wust_s) do if defined %%# set st_s=1 | ||||
| if defined st_s (echo Changing services Startup Type to       [ %Clst_s%%wlst_s%%spst_s%%wust_s%] [Successful]) | ||||
|  | ||||
| for %%# in (Clst_u,wlst_u,spst_u,wust_u) do if defined %%# set st_u=1 | ||||
| if defined st_u (call :DL_color "Error in changing Startup Type to       [ %Clst_u%%wlst_u%%spst_u%%wust_u%]" %Red%) | ||||
|  | ||||
| if not "%Cl_state%"=="Running" (%_psc% start-service %_1% %nul% && set Cl_s=%_1% || set Cl_u=%_1% ) | ||||
| if not "%wl_state%"=="Running" (%_psc% start-service %_2% %nul% && set wl_s=%_2% || set wl_u=%_2% ) | ||||
| if not "%sp_state%"=="Running" (%_psc% start-service %_3% %nul% && set sp_s=%_3% || set sp_u=%_3% ) | ||||
| if not "%wu_state%"=="Running" (%_psc% start-service %_4% %nul% && set wu_s=%_4% || set wu_u=%_4% ) | ||||
|  | ||||
| for %%# in (Cl_s,wl_s,sp_s,wu_s) do if defined %%# set s_s=1 | ||||
| if defined s_s (echo Starting services                       [ %Cl_s%%wl_s%%sp_s%%wu_s%] [Successful]) | ||||
|  | ||||
| for %%# in (Cl_u,wl_u,sp_u,wu_u) do if defined %%# set s_u=1 | ||||
| if defined s_u (call :DL_color "Error in starting services              [ %Cl_u%%wl_u%%sp_u%%wu_u%]" %Red%) | ||||
|  | ||||
| if defined wust_u ( | ||||
| call :DL_color "Most likely the Windows Update Service was blocked with a tool, identify and unblock it." %Magenta% | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Thanks to @abbodi1406 for the WMI methods | ||||
|  | ||||
| echo: | ||||
| set _channel= | ||||
| set _Keyexist= | ||||
| set _partial= | ||||
|  | ||||
| for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#" | ||||
| for %%A in (MAK, OEM, Retail) do echo %_channel%| findstr /i %%A >nul && set _Keyexist=1 | ||||
|  | ||||
| if defined _Keyexist ( | ||||
| for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get PartialProductKey /value 2^>nul') do set "_partial=%%#" | ||||
| call echo Checking Installed Product Key          [%_channel%] [Partial Key -%%_partial%%] | ||||
| ) | ||||
|  | ||||
| if not defined _Keyexist ( | ||||
| set "InsKey=Installing Generic Product Key         " | ||||
| wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && ( | ||||
| for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#" | ||||
| call echo %%InsKey%% [%key%] [%%_channel%%] [Successful] | ||||
| ) || ( | ||||
| call :DL_color "%%InsKey%% [%key%] [Unsuccessful]" %Red% | ||||
| ) | ||||
| ) | ||||
|  | ||||
| wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :: Files are copied to temp to generate ticket to avoid possible issues in case the path contains special character or non English names. | ||||
|  | ||||
| echo: | ||||
| set "temp_=%SystemRoot%\Temp\_Ticket_Work" | ||||
| if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul% | ||||
| md "%temp_%\" %nul% | ||||
|  | ||||
| cd /d "!_work!\BIN\" | ||||
|  | ||||
| set ARM64_file= | ||||
| if "%arch%"=="ARM64" set ARM64_file=ARM64_ | ||||
|  | ||||
| copy /y /b "%ARM64_file%gatherosstate.exe" "%temp_%\gatherosstate.exe" %nul% | ||||
| copy /y /b "%ARM64_file%slc.dll" "%temp_%\slc.dll" %nul% | ||||
|  | ||||
| set cfailed= | ||||
| if not exist "%temp_%\gatherosstate.exe" set cfailed=1 | ||||
| if not exist "%temp_%\slc.dll" set cfailed=1 | ||||
|  | ||||
| set "copyfiles=Copying Required Files to Temp         " | ||||
| if defined cfailed ( | ||||
| call :DL_color "%copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Unsuccessful] Aborting..." %Red% | ||||
| goto :DL_Act_Cont | ||||
| ) else ( | ||||
| echo %copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Successful] | ||||
| ) | ||||
|  | ||||
| cd /d "%temp_%\" | ||||
| attrib -R -A -S -H *.* | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| set "GatherMod=Creating modified gatherosstate        " | ||||
|  | ||||
| if not "%arch%"=="ARM64" ( | ||||
| rundll32 "%temp_%\slc.dll",PatchGatherosstate %nul% | ||||
| if not exist "%temp_%\gatherosstatemodified.exe" ( | ||||
| call :DL_color "%GatherMod% [Unsuccessful] Aborting" %Red% | ||||
| call :DL_color "Most likely Antivirus program blocked the process, disable it and-or create proper exclsuions." %Magenta% | ||||
| goto :DL_Act_Cont | ||||
| ) else ( | ||||
| echo %GatherMod% [Successful] | ||||
| ) | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| set _gather= | ||||
| if "%arch%"=="ARM64" ( | ||||
| set _gather=gatherosstate.exe | ||||
| ) else ( | ||||
| set _gather=gatherosstatemodified.exe | ||||
| ) | ||||
|  | ||||
| :: Multiple attempts to generate the ticket because in some cases, one attempt is not enough. | ||||
|  | ||||
| set "_noxml=if not exist "%temp_%\GenuineTicket.xml"" | ||||
|  | ||||
| start /wait "" "%temp_%/%_gather%" %nul% | ||||
| %_noxml% timeout /t 3 %nul% | ||||
| %_noxml% call "%temp_%/%_gather%" %nul% | ||||
| %_noxml% timeout /t 3 %nul% | ||||
| %_noxml% "%temp_%/%_gather%" %nul% | ||||
| %_noxml% timeout /t 3 %nul% | ||||
|  | ||||
| set "GenTicket=Generating GenuineTicket.xml           " | ||||
| %_noxml% ( | ||||
| call :DL_color "%GenTicket% [Unsuccessful] Aborting..." %Red% | ||||
| goto :DL_Act_Cont | ||||
| ) else ( | ||||
| echo %GenTicket% [Successful] | ||||
| ) | ||||
|  | ||||
| :: clipup -v -o -altto <Ticket path> method to apply ticket was not used to avoid the certain issues in case the username have spaces or non English names. | ||||
|  | ||||
| set "InsTicket=Installing GenuineTicket.xml           " | ||||
| set "TDir=%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket" | ||||
| if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul% | ||||
| copy /y /b "%temp_%\GenuineTicket.xml" "%TDir%\GenuineTicket.xml" %nul% | ||||
|  | ||||
| if not exist "%TDir%\GenuineTicket.xml" ( | ||||
| call :DL_color "Failed to copy Ticket to [%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket\] Aborting..." %Red% | ||||
| goto :DL_Act_Cont | ||||
| ) | ||||
|  | ||||
| set "_xmlexist=if exist "%TDir%\GenuineTicket.xml"" | ||||
|  | ||||
| %_psc% Restart-Service ClipSVC %nul% | ||||
| %_xmlexist% timeout /t 2 %nul% | ||||
| %_xmlexist% timeout /t 2 %nul% | ||||
|  | ||||
| %_xmlexist% ( | ||||
| %_psc% stop-Service ClipSVC %nul% | ||||
| %_psc% start-Service ClipSVC %nul% | ||||
| %_xmlexist% timeout /t 2 %nul% | ||||
| %_xmlexist% timeout /t 2 %nul% | ||||
| ) | ||||
|  | ||||
| set fallback_= | ||||
| %_xmlexist% ( | ||||
| set fallback_=1 | ||||
| %nul% clipup -v -o | ||||
| %_xmlexist% timeout /t 2 %nul% | ||||
| ) | ||||
|  | ||||
| %_xmlexist% ( | ||||
| call :DL_color "%InsTicket% [Unsuccessful] Aborting..." %Red% | ||||
| if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul% | ||||
| goto :DL_Act_Cont | ||||
| ) else ( | ||||
| if not defined fallback_ echo %InsTicket% [Successful] | ||||
| if defined fallback_ call :DL_color "%InsTicket% [Successful] [Fallback method: clipup -v -o]" %Red% | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| echo: | ||||
| echo Activating... | ||||
| echo: | ||||
|  | ||||
| wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" call Activate %nul% | ||||
| call :DL_CheckPermAct | ||||
| if defined PermAct goto DL_Act_successful | ||||
|  | ||||
| call :DL_ReTry | ||||
| if not "%ErrCode%"=="" set "Error_Code_=[Error Code %ErrCode%]" | ||||
| call :DL_CheckPermAct | ||||
|  | ||||
| :DL_Act_successful | ||||
|  | ||||
| if defined PermAct ( | ||||
| call :DL_color "%winos% is permanently activated." %Green% | ||||
| goto :DL_Act_Cont | ||||
| ) | ||||
|  | ||||
| call :DL_color "Activation Failed %Error_Code_%" %Red% | ||||
| call :DL_color "Try the Troubleshoot Guide listed in the ReadMe." %Magenta% | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :DL_Act_Cont | ||||
|  | ||||
| echo: | ||||
| set "changing_wust_back=Changing wu Startup Type back to        [%wu_start_type%]" | ||||
| if defined wust_s ( | ||||
| sc config %_4% start= %wu_start_type% %nul% && echo %changing_wust_back% [Successful] | ||||
| ) || ( | ||||
| call :DL_color "%changing_wust_back% [Unsuccessful]" %Red% | ||||
| ) | ||||
|  | ||||
| cd /d "!_work!\" | ||||
| if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul% | ||||
| set "delFiles=Cleaning Temp Files                    " | ||||
| if exist "%temp_%\" ( | ||||
| call :DL_color "%delFiles% [Unsuccessful]" %Red% | ||||
| ) else ( | ||||
| echo %delFiles% [Successful] | ||||
| ) | ||||
|  | ||||
| goto DL_Done | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Echo all the missing files. | ||||
| ::  Written by @abbodi1406 (MDL) | ||||
|  | ||||
| :DL_check | ||||
|  | ||||
| for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#"))) | ||||
| if defined _miss ( | ||||
| %ELine% | ||||
| echo Following required file^(s^) is missing in 'BIN' folder. Aborting... | ||||
| echo: | ||||
| echo !_miss! | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :DL_ServiceCheck | ||||
|  | ||||
| ::  Detect Service status and start type | ||||
| ::  Written by @RPO | ||||
|  | ||||
| for /f "tokens=1,3 delims=: " %%a in ('sc query %1') do (if /i %%a==state set "state=%%b") | ||||
| for /f "tokens=1-4 delims=: " %%a in ('sc qc %1') do (if /i %%a==start_type set "start_type=%%c %%d") | ||||
|  | ||||
| if /i "%state%"=="STOPPED" set state=Stopped | ||||
| if /i "%state%"=="RUNNING" set state=Running | ||||
|  | ||||
| if /i "%start_type%"=="auto_start (delayed)" set start_type=Delayed-Auto | ||||
| if /i "%start_type%"=="auto_start "          set start_type=Auto | ||||
| if /i "%start_type%"=="demand_start "        set start_type=Demand | ||||
| if /i "%start_type%"=="disabled "            set start_type=Disabled | ||||
|  | ||||
| for %%i in (%*) do ( | ||||
| if /i "%%i"=="%_4%" set "wu_start_type=%start_type%" & set "wu_state=%state%" | ||||
| if /i "%%i"=="%_3%" set "sp_start_type=%start_type%" & set "sp_state=%state%" | ||||
| if /i "%%i"=="%_1%" set "Cl_start_type=%start_type%" & set "Cl_state=%state%" | ||||
| if /i "%%i"=="%_2%" set "wl_start_type=%start_type%" & set "wl_state=%state%" | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :DL_CheckPermAct | ||||
|  | ||||
| ::  Check Windows Permanent Activation status | ||||
| ::  Written by @abbodi1406 | ||||
|  | ||||
| wmic path %slp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name 2>nul | findstr /i "Windows" 1>nul && set PermAct=1||set PermAct= | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :DL_ReTry | ||||
|  | ||||
| if defined IntCon if not defined wust_u if not defined wu_u call :DL_ReTry_2 | ||||
|  | ||||
| ::  Detect Error Code in the Activation | ||||
| ::  Written by @abbodi1406 | ||||
|  | ||||
| wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" call Activate %nul% | ||||
| set errorcode=%errorlevel% | ||||
| cmd /c exit /b %errorcode% | ||||
| if %errorcode% NEQ 0 set "ErrCode=0x%=ExitCode%" | ||||
| exit /b | ||||
|  | ||||
| :DL_ReTry_2 | ||||
|  | ||||
| set app= | ||||
| %_psc% Restart-Service sppsvc %nul% | ||||
|  | ||||
| ::  Specific rearm - reset the licensing status of the Windows SKU and app, without the need to restart the system. | ||||
| ::  wmic method by @abbodi1406 | ||||
|  | ||||
| for /f "tokens=2 delims==" %%G in ('"wmic path %slp% where (ApplicationID='%wApp%' AND ProductKeyID like '%%-%%') get ID /value" 2^>nul') do (set app=%%G) | ||||
| wmic path %sls% where __CLASS='%sls%' call ReArmApp ApplicationId="%wApp%" %nul% | ||||
| wmic path %slp% where ID='%app%' call ReArmsku %nul% | ||||
|  | ||||
| wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% | ||||
| cscript /nologo %windir%\system32\slmgr.vbs -ato %nul% | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :DL_color | ||||
|  | ||||
| %_psc% write-host '%1' -fore '%2' -back '%3' | ||||
| exit /b | ||||
|  | ||||
| :DL_color1 | ||||
|  | ||||
| %_psc% write-host '%1' -fore '%2' -back '%3'  -NoNewline | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :DL_Done | ||||
|  | ||||
| echo: | ||||
| if defined Unattended ( | ||||
| echo Exiting in 3 seconds... | ||||
| if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3) | ||||
| :: set a value to use in certain conditions of setupcomplete.cmd file. | ||||
| if defined key if not defined PermAct (endlocal & endlocal & set HWIDAct=1) | ||||
| exit /b | ||||
| ) | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Check Windows Edition with SKU value for better accuracy | ||||
|  | ||||
| :_CheckEdition | ||||
|  | ||||
| for %%# in ( | ||||
| 4-Enterprise | ||||
| 27-EnterpriseN | ||||
| 48-Professional | ||||
| 49-ProfessionalN | ||||
| 98-CoreN | ||||
| 99-CoreCountrySpecific | ||||
| 100-CoreSingleLanguage | ||||
| 101-Core | ||||
| 121-Education | ||||
| 122-EducationN | ||||
| 125-EnterpriseS | ||||
| 126-EnterpriseSN | ||||
| 161-ProfessionalWorkstation | ||||
| 162-ProfessionalWorkstationN | ||||
| 164-ProfessionalEducation | ||||
| 165-ProfessionalEducationN | ||||
| 175-ServerRdsh | ||||
| 188-IoTEnterprise | ||||
| ) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do ( | ||||
| if %osSKU%==%%A set "osedition=%%B" | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Retail_OEM Key List | ||||
|  | ||||
| :Core | ||||
| set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7" | ||||
| exit /b | ||||
|  | ||||
| :CoreCountrySpecific | ||||
| set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD" | ||||
| exit /b | ||||
|  | ||||
| :CoreN | ||||
| set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW" | ||||
| exit /b | ||||
|  | ||||
| :CoreSingleLanguage | ||||
| set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT" | ||||
| exit /b | ||||
|  | ||||
| :Education | ||||
| set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY" | ||||
| exit /b | ||||
|  | ||||
| :EducationN | ||||
| set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H" | ||||
| exit /b | ||||
|  | ||||
| :Enterprise | ||||
| set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C" | ||||
| exit /b | ||||
|  | ||||
| :EnterpriseN | ||||
| set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT" | ||||
| exit /b | ||||
|  | ||||
| :EnterpriseS | ||||
| if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW" | ||||
| if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX" | ||||
| if "%winbuild%" EQU "17763" set "key=43TBQ-NH92J-XKTM7-KT3KK-P39PB" | ||||
| exit /b | ||||
|  | ||||
| :EnterpriseSN | ||||
| if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K" | ||||
| if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4" | ||||
| if "%winbuild%" EQU "17763" set "key=M33WV-NHY3C-R7FPM-BQGPT-239PG" | ||||
| exit /b | ||||
|  | ||||
| :Professional | ||||
| set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalEducation | ||||
| set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalEducationN | ||||
| set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalN | ||||
| set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalWorkstation | ||||
| set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalWorkstationN | ||||
| set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ" | ||||
| exit /b | ||||
|  | ||||
| :ServerRdsh | ||||
| set "key=NJCF7-PW8QT-3324D-688JX-2YV66" | ||||
| exit /b | ||||
|  | ||||
| :IoTEnterprise | ||||
| set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD" | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
| @@ -0,0 +1,885 @@ | ||||
| @setlocal DisableDelayedExpansion | ||||
| @echo off | ||||
|  | ||||
|  | ||||
| :: For unattended mode, run the script with /u parameter. | ||||
|  | ||||
|  | ||||
|  | ||||
| ::========================================================================================================= | ||||
| :    Credits: | ||||
| ::========================================================================================================= | ||||
| :: | ||||
| ::   @mspaintmsi   Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade. | ||||
| ::      and        Created various methods for HWID/KMS38 Activation | ||||
| ::   *Anonymous    https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 | ||||
| ::                 https://github.com/massgravel/MASSGRAVE | ||||
| ::                 https://gitlab.com/massgrave/massgrave | ||||
| :: | ||||
| ::   @vyvojar      Original slshim (slc.dll) | ||||
| ::                 https://github.com/vyvojar/slshim/releases | ||||
| :: | ||||
| ::--------------------------------------------------------------------------------------------------------- | ||||
| :: | ||||
| ::   HWID/KMS38 methods Suggestions and improvements:- | ||||
| ::   | ||||
| ::   @sponpa       New ideas for the HWID/KM38 Generation | ||||
| ::                 https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257 | ||||
| :: | ||||
| ::   @leitek8      Improvements for the slc.dll | ||||
| ::                 https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005 | ||||
| :: | ||||
| ::--------------------------------------------------------------------------------------------------------- | ||||
| :: | ||||
| ::   Kind Help:- | ||||
| :: | ||||
| ::   Thanks for having my back and answering all of my queries. (In no particular order) | ||||
| ::    | ||||
| ::   @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 | ||||
| :: | ||||
| ::   @BorrowedWifi for providing support in fixing English grammar errors in the Read Me. | ||||
| ::   @Chibi ANUBIS and @smashed for testing scripts for ARM64 system. | ||||
| :: | ||||
| ::   Special thanks to @abbodi1406 for providing the great help. | ||||
| :: | ||||
| ::--------------------------------------------------------------------------------------------------------- | ||||
| :: | ||||
| ::   This script is a part of 'Microsoft Activation Scripts' project. | ||||
| :: | ||||
| ::   Homepages- | ||||
| ::   NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
| ::   GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
| ::   GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
| :: | ||||
| ::   Maintained by @WindowsAddict | ||||
| :: | ||||
| ::   P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only  | ||||
| ::   manage batch script tool which is based on the above mentioned original co-authors activation methods. | ||||
| :: | ||||
| ::========================================================================================================= | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| title  KMS38 Activation | ||||
| set Unattended= | ||||
| set _args= | ||||
| set _elev= | ||||
| set "_arg1=%~1" | ||||
| if not defined _arg1 goto :K38_NoProgArgs | ||||
| set "_args=%~1" | ||||
| set "_arg2=%~2" | ||||
| if defined _arg2 set "_args=%~1 %~2" | ||||
| for %%A in (%_args%) do ( | ||||
| if /i "%%A"=="-el" set _elev=1 | ||||
| if /i "%%A"=="/u" set Unattended=1) | ||||
| :K38_NoProgArgs | ||||
| for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G | ||||
| set "_psc=powershell" | ||||
| set "nul=1>nul 2>nul" | ||||
| set "Red="white" "DarkRed"" | ||||
| set "Green="white" "DarkGreen"" | ||||
| set "Magenta="white" "darkmagenta"" | ||||
| set "Gray="white" "darkgray"" | ||||
| set "Black="white" "Black"" | ||||
| set "ELine=echo: &call :K38_color "==== ERROR ====" %Red% &echo:" | ||||
| set slp=SoftwareLicensingProduct | ||||
| set sls=SoftwareLicensingService | ||||
| set wApp=55c92734-d682-4d71-983e-d6ec3f16059f | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| for %%i in (powershell.exe) do if "%%~$path:i"=="" ( | ||||
| echo: &echo ==== ERROR ==== &echo: | ||||
| echo Powershell is not installed in the system. | ||||
| echo Aborting... | ||||
| goto K38_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| if %winbuild% LSS 14393 ( | ||||
| %ELine% | ||||
| echo Unsupported OS version Detected. | ||||
| echo Project is supported only for Windows 10 / Server - 1607 [14393] and later builds. | ||||
| goto K38_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Elevate script as admin and pass arguments and preventing loop | ||||
| ::  Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. | ||||
| ::  Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. | ||||
|  | ||||
| %nul% reg query HKU\S-1-5-19 && ( | ||||
|   goto :K38_Passed | ||||
|   ) || ( | ||||
|   if defined _elev goto :K38_E_Admin | ||||
| ) | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_vbsf=%temp%\admin.vbs" | ||||
| set _PSarg="""%~f0""" -el | ||||
| if defined _args set _PSarg="""%~f0""" -el """%_args%""" | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ( | ||||
| echo Set strArg=WScript.Arguments.Named | ||||
| echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) | ||||
| echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then | ||||
| echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) | ||||
| echo End If | ||||
| echo End With | ||||
| echo .Terminate | ||||
| echo End With | ||||
| echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 | ||||
| )>"!_vbsf!" | ||||
|  | ||||
| (%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && ( | ||||
| del /f /q "!_vbsf!" | ||||
| exit /b | ||||
| ) || ( | ||||
| del /f /q "!_vbsf!" | ||||
| %nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( | ||||
| exit /b | ||||
| ) || ( | ||||
| goto :K38_E_Admin | ||||
| ) | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| :K38_E_Admin | ||||
| %ELine% | ||||
| echo This script require administrator privileges. | ||||
| echo To do so, right click on this script and select 'Run as administrator'. | ||||
| goto K38_Done | ||||
|  | ||||
| :K38_Passed | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Fix for the special characters limitation in path name | ||||
| ::  Written by @abbodi1406 | ||||
|  | ||||
| set "_work=%~dp0" | ||||
| if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%" | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_batp=%_batf:'=''%" | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| mode con: cols=102 lines=30 | ||||
|  | ||||
| ::  Check Windows OS name | ||||
|  | ||||
| set winos= | ||||
| for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b" | ||||
| if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b" | ||||
|  | ||||
| call :K38_CheckPermAct | ||||
| if defined PermAct ( | ||||
|  | ||||
| echo ___________________________________________________________________________________________ | ||||
| echo: | ||||
| call :K38_color1 "     " %Black% &call :K38_color "Checking: %winos% is Permanently Activated." %Green% | ||||
| call :K38_color1 "     " %Black% &call :K38_color "Activation is not required." %Gray% | ||||
| echo ___________________________________________________________________________________________ | ||||
| echo: | ||||
| if defined Unattended goto K38_Done | ||||
|  | ||||
| echo      Press [1] or [2] button in Keyboard : | ||||
| echo ___________________________________________ | ||||
| echo: | ||||
| choice /C:12 /N /M ">    [1] Activate [2] Exit : " | ||||
|  | ||||
| if errorlevel 2 exit /b | ||||
| if errorlevel 1 Goto K38_Continue | ||||
| ) | ||||
|  | ||||
| :K38_Continue | ||||
| cls | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cd /d "!_work!" | ||||
| pushd "!_work!" | ||||
|  | ||||
| if not exist "!_work!\BIN\" ( | ||||
| %ELine% | ||||
| echo 'BIN' Folder does not exist in current directory. | ||||
| echo It's supposed to have files required for the Activation. | ||||
| goto K38_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| echo %winos%| findstr /I Evaluation >nul && set Eval=1||set Eval= | ||||
| if defined Eval ( | ||||
| %ELine% | ||||
| echo [%winos% ^| %winbuild%] KMS38 Activation is Not Supported. | ||||
| echo %winos%| findstr /I Server >nul && ( | ||||
| echo Server Evaluation cannot be activated. Convert it to full Server OS. | ||||
| ) || ( | ||||
| echo Evaluation Editions cannot be activated. Install full Windows OS. | ||||
| ) | ||||
| goto K38_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Check SKU value | ||||
|  | ||||
| set SKU= | ||||
| for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a) | ||||
| if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a) | ||||
|  | ||||
| if "%osSKU%"=="" ( | ||||
| %ELine% | ||||
| echo SKU value was not detected properly. Aborting... | ||||
| goto K38_Done | ||||
| ) | ||||
|  | ||||
| ::  Check Windows Edition with SKU value for better accuracy | ||||
|  | ||||
| set osedition= | ||||
| call :K38_CheckEdition %nul% | ||||
|  | ||||
| if "%osedition%"=="" ( | ||||
| %ELine% | ||||
| echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] KMS38 Activation is Not Supported. | ||||
| goto K38_Done | ||||
| ) | ||||
|  | ||||
| ::  Check Activation ID | ||||
|  | ||||
| set app= | ||||
| for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and LicenseFamily='%osedition%' and Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do set "app=%%a" | ||||
|  | ||||
| ::  Check Windows Architecture  | ||||
|  | ||||
| set arch= | ||||
| reg Query "HKLM\Hardware\Description\System\CentralProcessor\0" | find /i "x86" > nul && set arch=x86|| set arch=x64 | ||||
| wmic os get osarchitecture | find /i "ARM" > nul && set arch=ARM64|| echo %PROCESSOR_ARCHITECTURE% | find /i "ARM" > nul && set arch=ARM64 | ||||
|  | ||||
| if "%arch%"=="ARM64" call :K38_check ARM64_gatherosstate.exe ARM64_slc.dll | ||||
| if not "%arch%"=="ARM64" call :K38_check gatherosstate.exe slc.dll | ||||
| if defined _miss goto K38_Done | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| if "%app%"=="" ( | ||||
| %ELine% | ||||
| echo [%winos% ^| %winbuild%] KMS38 Activation is Not Supported. | ||||
| goto K38_Done | ||||
| ) | ||||
|  | ||||
| set key= | ||||
| call :%app% %nul% | ||||
|  | ||||
| if "%key%"=="" ( | ||||
| %ELine% | ||||
| echo [%winos% ^| %winbuild% ^| %app%] KMS38 Activation is Not Supported. | ||||
| goto K38_Done | ||||
| ) | ||||
|  | ||||
| :: clipup.exe does not exist in server cor and acor editions. | ||||
|  | ||||
| set A_Cor= | ||||
| echo %osedition%| findstr /I /B Server >nul && if not exist "%systemroot%\System32\clipup.exe" set A_Cor=1 | ||||
|  | ||||
| if defined A_Cor ( | ||||
| call :K38_check clipup.exe | ||||
| if defined _miss goto K38_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| echo Checking OS Info                        [%winos% ^| %winbuild% ^| %arch%] | ||||
|  | ||||
| echo: | ||||
| set _1=ClipSVC | ||||
| set _3=sppsvc | ||||
|  | ||||
| for %%# in (%_1% %_3%) do call :K38_ServiceCheck %%# | ||||
|  | ||||
| set "CLecho=Checking %_1%                        [Service Status -%Cl_state%] [Startup Type -%Cl_start_type%]" | ||||
| set "specho=Checking %_3%                         [Service Status -%sp_state%] [Startup Type -%sp_start_type%]" | ||||
|  | ||||
| if not "%Cl_start_type%"=="Demand"       (call :K38_color "%CLecho%" %Red% & set Clst_e=1) else (echo %CLecho%) | ||||
| if not "%sp_start_type%"=="Delayed-Auto" (call :K38_color "%specho%" %Red% & set spst_e=1) else (echo %specho%) | ||||
|  | ||||
| echo: | ||||
| if defined Clst_e (sc config %_1% start= Demand %nul%       && set Clst_s=%_1%-Demand || set Clst_u=%_1%-Demand ) | ||||
| if defined spst_e (sc config %_3% start= Delayed-Auto %nul% && set spst_s=%_3%-Delayed-Auto || set spst_u=%_3%-Delayed-Auto ) | ||||
|  | ||||
| for %%# in (Clst_s,spst_s) do if defined %%# set st_s=1 | ||||
| if defined st_s (echo Changing services Startup Type to       [ %Clst_s%%spst_s%] [Successful]) | ||||
|  | ||||
| for %%# in (Clst_u,spst_u) do if defined %%# set st_u=1 | ||||
| if defined st_u (call :K38_color "Error in changing Startup Type to       [ %Clst_u%%spst_u%]" %Red%) | ||||
|  | ||||
| if not "%Cl_state%"=="Running" (%_psc% start-service %_1% %nul% && set Cl_s=%_1% || set Cl_u=%_1% ) | ||||
| if not "%sp_state%"=="Running" (%_psc% start-service %_3% %nul% && set sp_s=%_3% || set sp_u=%_3% ) | ||||
|  | ||||
| for %%# in (Cl_s,sp_s) do if defined %%# set s_s=1 | ||||
| if defined s_s (echo Starting services                       [ %Cl_s%%sp_s%] [Successful]) | ||||
|  | ||||
| for %%# in (Cl_u,sp_u) do if defined %%# set s_u=1 | ||||
| if defined s_u (call :K38_color "Error in starting services              [ %Cl_u%%sp_u%]" %Red%) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Thanks to @abbodi1406 for the WMI methods | ||||
|  | ||||
| echo: | ||||
| set _channel= | ||||
| set _Keyexist= | ||||
| set _partial= | ||||
|  | ||||
| wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel 2>nul | findstr /i GVLK 1>nul && (set _Keyexist=1) | ||||
|  | ||||
| if defined _Keyexist ( | ||||
| for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get PartialProductKey /value 2^>nul') do set "_partial=%%#" | ||||
| call echo Checking Installed Product Key          [Volume:GVLK] [Partial Key -%%_partial%%] | ||||
| ) | ||||
|  | ||||
| if not defined _Keyexist ( | ||||
| set "InsKey=Installing KMS Client Setup Key        " | ||||
| wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && ( | ||||
| call echo %%InsKey%% [%key%] [Successful] | ||||
| ) || ( | ||||
| call :K38_color "%%InsKey%% [%key%] [Unsuccessful]" %Red% | ||||
| ) | ||||
| ) | ||||
|  | ||||
| wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Set specific KMS host to Local Host | ||||
| ::  Thanks to @abbodi1406 | ||||
|  | ||||
| ::  By doing this, global KMS IP can not replace KMS38 activation but can be used with Office and other Windows Editions. | ||||
|  | ||||
| echo: | ||||
| set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" | ||||
| reg delete "HKLM\%SPPk%\%wApp%" /f %nul% | ||||
| reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul% | ||||
|  | ||||
| set setkms_error= | ||||
| set "setkms_=Setting Specific KMS Host to           " | ||||
|  | ||||
| wmic path %slp% where ID='%app%' call ClearKeyManagementServiceMachine %nul% || (set setkms_error=1) | ||||
| wmic path %slp% where ID='%app%' call ClearKeyManagementServicePort %nul% || (set setkms_error=1) | ||||
| wmic path %slp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" %nul% || (set setkms_error=1) | ||||
| wmic path %slp% where ID='%app%' call SetKeyManagementServicePort 1688 %nul% || (set setkms_error=1) | ||||
|  | ||||
| if not defined setkms_error ( | ||||
| echo %setkms_% [LocalHost 127.0.0.2] [Successful] | ||||
| ) else ( | ||||
| call :K38_color "%setkms_% [LocalHost 127.0.0.2] [Unsuccessful]" %Red% | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :: Files are copied to temp to generate ticket to avoid possible issues in case the path contains special character or non English names. | ||||
|  | ||||
| echo: | ||||
| set "temp_=%SystemRoot%\Temp\_Ticket_Work" | ||||
| if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul% | ||||
| md "%temp_%\" %nul% | ||||
|  | ||||
| cd /d "!_work!\BIN\" | ||||
|  | ||||
| set ARM64_file= | ||||
| if "%arch%"=="ARM64" set ARM64_file=ARM64_ | ||||
|  | ||||
| set "A_Cor_cl=%systemroot%\System32\clipup.exe" | ||||
| copy /y /b "%ARM64_file%gatherosstate.exe" "%temp_%\gatherosstate.exe" %nul% | ||||
| copy /y /b "%ARM64_file%slc.dll" "%temp_%\slc.dll" %nul% | ||||
| if defined A_Cor (copy /y /b "ClipUp.exe" "%A_Cor_cl%" %nul%) | ||||
|  | ||||
| set cfailed= | ||||
| if not exist "%temp_%\gatherosstate.exe" set cfailed=1 | ||||
| if not exist "%temp_%\slc.dll" set cfailed=1 | ||||
|  | ||||
| set "copyfiles=Copying Required Files to Temp         " | ||||
| set "copyclipup=Copying clipup.exe File to             " | ||||
|  | ||||
| if defined cfailed ( | ||||
| call :K38_color "%copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Unsuccessful] Aborting..." %Red% | ||||
| goto K38_Act_Cont | ||||
| ) else ( | ||||
| echo %copyfiles% [%SystemRoot%\Temp\_Ticket_Work\] [Successful] | ||||
| ) | ||||
|  | ||||
| if defined A_Cor ( | ||||
| if not exist "%A_Cor_cl%" call :K38_color "%copyclipup% [%systemroot%\System32\] [Unsuccessful] Aborting..." %Red% & goto K38_Act_Cont | ||||
| if exist "%A_Cor_cl%" echo %copyclipup% [%systemroot%\System32\] [Successful] | ||||
| ) | ||||
|  | ||||
| cd /d "%temp_%\" | ||||
| attrib -R -A -S -H *.* | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :: Multiple attempts to generate the ticket because in some cases, one attempt is not enough. | ||||
|  | ||||
| set "_noxml=if not exist "%temp_%\GenuineTicket.xml"" | ||||
|  | ||||
| start /wait "" "%temp_%/gatherosstate.exe" %nul% | ||||
| %_noxml% timeout /t 3 %nul% | ||||
| %_noxml% call "%temp_%/gatherosstate.exe" %nul% | ||||
| %_noxml% timeout /t 3 %nul% | ||||
| %_noxml% "%temp_%/gatherosstate.exe" %nul% | ||||
| %_noxml% timeout /t 3 %nul% | ||||
|  | ||||
| set "GenTicket=Generating GenuineTicket.xml           " | ||||
| %_noxml% ( | ||||
| call :K38_color "%GenTicket% [Unsuccessful] Aborting..." %Red% | ||||
| goto K38_Act_Cont | ||||
| ) else ( | ||||
| echo %GenTicket% [Successful] | ||||
| ) | ||||
|  | ||||
| :: clipup -v -o -altto <Ticket path> method to apply ticket was not used to avoid the certain issues in case the username have spaces or non English names. | ||||
|  | ||||
| set "InsTicket=Installing GenuineTicket.xml           " | ||||
| set "TDir=%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket" | ||||
| if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul% | ||||
| copy /y /b "%temp_%\GenuineTicket.xml" "%TDir%\GenuineTicket.xml" %nul% | ||||
|  | ||||
| if not exist "%TDir%\GenuineTicket.xml" ( | ||||
| call :K38_color "Failed to copy Ticket to [%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket\] Aborting..." %Red% | ||||
| goto K38_Act_Cont | ||||
| ) | ||||
|  | ||||
| set "_xmlexist=if exist "%TDir%\GenuineTicket.xml"" | ||||
|  | ||||
| %_psc% Restart-Service ClipSVC %nul% | ||||
| %_xmlexist% timeout /t 2 %nul% | ||||
| %_xmlexist% timeout /t 2 %nul% | ||||
|  | ||||
| %_xmlexist% ( | ||||
| %_psc% stop-Service ClipSVC %nul% | ||||
| %_psc% start-Service ClipSVC %nul% | ||||
| %_xmlexist% timeout /t 2 %nul% | ||||
| %_xmlexist% timeout /t 2 %nul% | ||||
| ) | ||||
|  | ||||
| set fallback_= | ||||
| %_xmlexist% ( | ||||
| set fallback_=1 | ||||
| %nul% clipup -v -o | ||||
| %_xmlexist% timeout /t 2 %nul% | ||||
| ) | ||||
|  | ||||
| %_xmlexist% ( | ||||
| call :K38_color "%InsTicket% [Unsuccessful] Aborting..." %Red% | ||||
| if exist "%TDir%\*.xml" del /f /q "%TDir%\*.xml" %nul% | ||||
| goto K38_Act_Cont | ||||
| ) else ( | ||||
| if not defined fallback_ echo %InsTicket% [Successful] | ||||
| if defined fallback_ call :K38_color "%InsTicket% [Successful] [Fallback method: clipup -v -o]" %Red% | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| echo: | ||||
| echo Activating... | ||||
| echo: | ||||
|  | ||||
| call :K38_CheckEXPtime | ||||
| if %gpr% GTR 259200 ( | ||||
| call :K38_Actinfo | ||||
| goto K38_Act_Cont | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Clear 180 Days KMS Activation lock without full Rearm and Restart | ||||
|  | ||||
| set RearmF= | ||||
| set "Rearm=Applying SKU-APP ID Rearm              " | ||||
| wmic path %sls% where __CLASS='%sls%' call ReArmApp ApplicationId="%wApp%" %nul% || (set RearmF=1) | ||||
| wmic path %slp% where ID='%app%' call ReArmsku %nul% || (set RearmF=1) | ||||
|  | ||||
| if defined RearmF ( | ||||
| call :K38_color "%Rearm% [Unsuccessful]" %Red% | ||||
| ) else ( | ||||
| echo %Rearm% [Successful] | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| echo: | ||||
| call :K38_CheckEXPtime | ||||
| if %gpr% GTR 259200 ( | ||||
| call :K38_Actinfo | ||||
| goto K38_Act_Cont | ||||
| ) | ||||
|  | ||||
| %_psc% Restart-Service sppsvc %nul% | ||||
| wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% | ||||
|  | ||||
| call :K38_CheckEXPtime | ||||
| if %gpr% GTR 259200 ( | ||||
| call :K38_Actinfo | ||||
| goto K38_Act_Cont | ||||
| ) | ||||
|  | ||||
| call :K38_color "Activation Failed." %Red% | ||||
| call :K38_color "Try the Troubleshoot Guide listed in the ReadMe." %Magenta% | ||||
|  | ||||
| :K38_Act_Cont | ||||
|  | ||||
| ::  clipup.exe does not exist in server cor and acor editions by default, it was copied there with this script. | ||||
|  | ||||
| echo: | ||||
| cd /d "!_work!\" | ||||
| if exist "%temp_%\" @RD /S /Q "%temp_%\" %nul% | ||||
| if defined A_Cor (if exist "%A_Cor_cl%" del /f /q "%A_Cor_cl%" %nul%) | ||||
|  | ||||
| set "delFiles=Cleaning Temp Files                    " | ||||
| set "delclipup=Deleting copied clipup.exe file        " | ||||
|  | ||||
| if exist "%temp_%\" ( | ||||
| call :K38_color "%delFiles% [Unsuccessful]" %Red% | ||||
| ) else ( | ||||
| echo %delFiles% [Successful] | ||||
| ) | ||||
|  | ||||
| if defined A_Cor ( | ||||
| if exist "%A_Cor_cl%" call :K38_color "%delclipup% [Unsuccessful]" %Red% | ||||
| if not exist "%A_Cor_cl%" echo %delclipup% [Successful] | ||||
| ) | ||||
|  | ||||
| goto K38_Done | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Echo all the missing files. | ||||
| ::  Written by @abbodi1406 (MDL) | ||||
|  | ||||
| :K38_check | ||||
|  | ||||
| for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#"))) | ||||
| if defined _miss ( | ||||
| %ELine% | ||||
| echo Following required file^(s^) is missing in 'BIN' folder. Aborting... | ||||
| echo: | ||||
| echo !_miss! | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :K38_ServiceCheck | ||||
|  | ||||
| ::  Detect Service status and start type | ||||
| ::  Written by @RPO | ||||
|  | ||||
| for /f "tokens=1,3 delims=: " %%a in ('sc query %1') do (if /i %%a==state set "state=%%b") | ||||
| for /f "tokens=1-4 delims=: " %%a in ('sc qc %1') do (if /i %%a==start_type set "start_type=%%c %%d") | ||||
|  | ||||
| if /i "%state%"=="STOPPED" set state=Stopped | ||||
| if /i "%state%"=="RUNNING" set state=Running | ||||
|  | ||||
| if /i "%start_type%"=="auto_start (delayed)" set start_type=Delayed-Auto | ||||
| if /i "%start_type%"=="auto_start "          set start_type=Auto | ||||
| if /i "%start_type%"=="demand_start "        set start_type=Demand | ||||
| if /i "%start_type%"=="disabled "            set start_type=Disabled | ||||
|  | ||||
| for %%i in (%*) do ( | ||||
| if /i "%%i"=="%_3%" set "sp_start_type=%start_type%" & set "sp_state=%state%" | ||||
| if /i "%%i"=="%_1%" set "Cl_start_type=%start_type%" & set "Cl_state=%state%" | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :K38_CheckPermAct | ||||
|  | ||||
| ::  Check Windows Permanent Activation status | ||||
| ::  Written by @abbodi1406 | ||||
|  | ||||
| wmic path %slp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name 2>nul | findstr /i "Windows" 1>nul && set PermAct=1||set PermAct= | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Check Expiration date with powershell | ||||
| ::  Written by @abbodi1406 | ||||
|  | ||||
| :K38_Actinfo | ||||
|  | ||||
| for /f "tokens=* delims=" %%# in ('%_psc% "$([DateTime]::Now.addMinutes(%gpr%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#" | ||||
| call :K38_color "%winos% is activated till %_xpr%" %Green% | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :K38_CheckEXPtime | ||||
|  | ||||
| ::  Check Activation remaining time | ||||
| ::  Written by @abbodi1406 | ||||
|  | ||||
| for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#" | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :K38_color | ||||
|  | ||||
| %_psc% write-host '%1' -fore '%2' -back '%3' | ||||
| exit /b | ||||
|  | ||||
| :K38_color1 | ||||
|  | ||||
| %_psc% write-host '%1' -fore '%2' -back '%3'  -NoNewline | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :K38_Done | ||||
|  | ||||
| echo: | ||||
| if defined Unattended ( | ||||
| echo Exiting in 3 seconds... | ||||
| if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3) | ||||
| exit /b | ||||
| ) | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Check Windows Edition with SKU value for better accuracy | ||||
|  | ||||
| :K38_CheckEdition | ||||
|  | ||||
| for %%# in ( | ||||
| 4-Enterprise | ||||
| 7-ServerStandard | ||||
| 8-ServerDatacenter | ||||
| 27-EnterpriseN | ||||
| 48-Professional | ||||
| 49-ProfessionalN | ||||
| 50-ServerSolution | ||||
| 98-CoreN | ||||
| 99-CoreCountrySpecific | ||||
| 100-CoreSingleLanguage | ||||
| 101-Core | ||||
| 110-ServerCloudStorage | ||||
| 120-ServerARM64 | ||||
| 121-Education | ||||
| 122-EducationN | ||||
| 125-EnterpriseS | ||||
| 126-EnterpriseSN | ||||
| 145-ServerDatacenterACor | ||||
| 146-ServerStandardACor | ||||
| 161-ProfessionalWorkstation | ||||
| 162-ProfessionalWorkstationN | ||||
| 164-ProfessionalEducation | ||||
| 165-ProfessionalEducationN | ||||
| 168-ServerAzureCor | ||||
| 171-EnterpriseG | ||||
| 172-EnterpriseGN | ||||
| 175-ServerRdsh | ||||
| 183-CloudE | ||||
| ) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do ( | ||||
| if %osSKU%==%%A set "osedition=%%B" | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :: Generic Volume License Key (GVLK) List | ||||
|  | ||||
| :: Windows 10 [RS5] | ||||
| :32d2fab3-e4a8-42c2-923b-4bf4fd13e6ee | ||||
| set "key=M7XTQ-FN8P6-TTKYV-9D4CC-J462D" &:: Enterprise LTSC 2019 | ||||
| exit /b | ||||
|  | ||||
| :7103a333-b8c8-49cc-93ce-d37c09687f92 | ||||
| set "key=92NFX-8DJQP-P6BBQ-THF9C-7CG2H" &:: Enterprise LTSC 2019 N | ||||
| exit /b | ||||
|  | ||||
| :ec868e65-fadf-4759-b23e-93fe37f2cc29 | ||||
| set "key=CPWHC-NT2C7-VYW78-DHDB2-PG3GK" &:: Enterprise for Virtual Desktops | ||||
| exit /b | ||||
|  | ||||
| :0df4f814-3f57-4b8b-9a9d-fddadcd69fac | ||||
| set "key=NBTWJ-3DR69-3C4V8-C26MC-GQ9M6" &:: Lean | ||||
| exit /b | ||||
|  | ||||
| :: Windows 10 [RS3] | ||||
| :82bbc092-bc50-4e16-8e18-b74fc486aec3 | ||||
| set "key=NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J" &:: Pro Workstation | ||||
| exit /b | ||||
|  | ||||
| :4b1571d3-bafb-4b40-8087-a961be2caf65 | ||||
| set "key=9FNHH-K3HBT-3W4TD-6383H-6XYWF" &:: Pro Workstation N | ||||
| exit /b | ||||
|  | ||||
| :e4db50ea-bda1-4566-b047-0ca50abc6f07 | ||||
| set "key=7NBT4-WGBQX-MP4H7-QXFF8-YP3KX" &:: Enterprise Remote Server | ||||
| exit /b | ||||
|  | ||||
| :: Windows 10 [RS2] | ||||
| :e0b2d383-d112-413f-8a80-97f373a5820c | ||||
| set "key=YYVX9-NTFWV-6MDM3-9PT4T-4M68B" &:: Enterprise G | ||||
| exit /b | ||||
|  | ||||
| :e38454fb-41a4-4f59-a5dc-25080e354730 | ||||
| set "key=44RPN-FTY23-9VTTB-MP9BX-T84FV" &:: Enterprise G N | ||||
| exit /b | ||||
|  | ||||
| :: Windows 10 [RS1] | ||||
| :2d5a5a60-3040-48bf-beb0-fcd770c20ce0 | ||||
| set "key=DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ" &:: Enterprise 2016 LTSB | ||||
| exit /b | ||||
|  | ||||
| :9f776d83-7156-45b2-8a5c-359b9c9f22a3 | ||||
| set "key=QFFDN-GRT3P-VKWWX-X7T3R-8B639" &:: Enterprise 2016 LTSB N | ||||
| exit /b | ||||
|  | ||||
| :3f1afc82-f8ac-4f6c-8005-1d233e606eee | ||||
| set "key=6TP4R-GNPTD-KYYHQ-7B7DP-J447Y" &:: Pro Education | ||||
| exit /b | ||||
|  | ||||
| :5300b18c-2e33-4dc2-8291-47ffcec746dd | ||||
| set "key=YVWGF-BXNMC-HTQYQ-CPQ99-66QFC" &:: Pro Education N | ||||
| exit /b | ||||
|  | ||||
| :: Windows 10 [TH] | ||||
| :58e97c99-f377-4ef1-81d5-4ad5522b5fd8 | ||||
| set "key=TX9XD-98N7V-6WMQ6-BX7FG-H8Q99" &:: Home | ||||
| exit /b | ||||
|  | ||||
| :7b9e1751-a8da-4f75-9560-5fadfe3d8e38 | ||||
| set "key=3KHY7-WNT83-DGQKR-F7HPR-844BM" &:: Home N | ||||
| exit /b | ||||
|  | ||||
| :cd918a57-a41b-4c82-8dce-1a538e221a83 | ||||
| set "key=7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH" &:: Home Single Language | ||||
| exit /b | ||||
|  | ||||
| :a9107544-f4a0-4053-a96a-1479abdef912 | ||||
| set "key=PVMJN-6DFY6-9CCP6-7BKTT-D3WVR" &:: Home China | ||||
| exit /b | ||||
|  | ||||
| :2de67392-b7a7-462a-b1ca-108dd189f588 | ||||
| set "key=W269N-WFGWX-YVC9B-4J6C9-T83GX" &:: Pro | ||||
| exit /b | ||||
|  | ||||
| :a80b5abf-76ad-428b-b05d-a47d2dffeebf | ||||
| set "key=MH37W-N47XK-V7XM9-C7227-GCQG9" &:: Pro N | ||||
| exit /b | ||||
|  | ||||
| :e0c42288-980c-4788-a014-c080d2e1926e | ||||
| set "key=NW6C2-QMPVW-D7KKK-3GKT6-VCFB2" &:: Education | ||||
| exit /b | ||||
|  | ||||
| :3c102355-d027-42c6-ad23-2e7ef8a02585 | ||||
| set "key=2WH4N-8QGBV-H22JP-CT43Q-MDWWJ" &:: Education N | ||||
| exit /b | ||||
|  | ||||
| :73111121-5638-40f6-bc11-f1d7b0d64300 | ||||
| set "key=NPPR9-FWDCX-D2C8J-H872K-2YT43" &:: Enterprise | ||||
| exit /b | ||||
|  | ||||
| :e272e3e2-732f-4c65-a8f0-484747d0d947 | ||||
| set "key=DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4" &:: Enterprise N | ||||
| exit /b | ||||
|  | ||||
| :7b51a46c-0c04-4e8f-9af4-8496cca90d5e | ||||
| set "key=WNMTR-4C88C-JK8YV-HQ7T2-76DF9" &:: Enterprise 2015 LTSB | ||||
| exit /b | ||||
|  | ||||
| :87b838b7-41b6-4590-8318-5797951d8529 | ||||
| set "key=2F77B-TNFGY-69QQF-B8YKP-D69TJ" &:: Enterprise 2015 LTSB N | ||||
| exit /b | ||||
|  | ||||
| :: Windows Server 2019 [RS5] | ||||
| :de32eafd-aaee-4662-9444-c1befb41bde2 | ||||
| set "key=N69G4-B89J2-4G8F4-WWYCC-J464C" &:: Standard | ||||
| exit /b | ||||
|  | ||||
| :34e1ae55-27f8-4950-8877-7a03be5fb181 | ||||
| set "key=WMDGN-G9PQG-XVVXX-R3X43-63DFG" &:: Datacenter | ||||
| exit /b | ||||
|  | ||||
| :034d3cbb-5d4b-4245-b3f8-f84571314078 | ||||
| set "key=WVDHN-86M7X-466P6-VHXV7-YY726" &:: Essentials | ||||
| exit /b | ||||
|  | ||||
| :a99cc1f0-7719-4306-9645-294102fbff95 | ||||
| set "key=FDNH6-VW9RW-BXPJ7-4XTYG-239TB" &:: Azure Core | ||||
| exit /b | ||||
|  | ||||
| :73e3957c-fc0c-400d-9184-5f7b6f2eb409 | ||||
| set "key=N2KJX-J94YW-TQVFB-DG9YT-724CC" &:: Standard ACor | ||||
| exit /b | ||||
|  | ||||
| :90c362e5-0da1-4bfd-b53b-b87d309ade43 | ||||
| set "key=6NMRW-2C8FM-D24W7-TQWMY-CWH2D" &:: Datacenter ACor | ||||
| exit /b | ||||
|  | ||||
| :8de8eb62-bbe0-40ac-ac17-f75595071ea3 | ||||
| set "key=GRFBW-QNDC4-6QBHG-CCK3B-2PR88" &:: ServerARM64 | ||||
| exit /b | ||||
|  | ||||
| :: Windows Server 2016 [RS4] | ||||
| :43d9af6e-5e86-4be8-a797-d072a046896c | ||||
| set "key=K9FYF-G6NCK-73M32-XMVPY-F9DRR" &:: ServerARM64 | ||||
| exit /b | ||||
|  | ||||
| :: Windows Server 2016 [RS3] | ||||
| :61c5ef22-f14f-4553-a824-c4b31e84b100 | ||||
| set "key=PTXN8-JFHJM-4WC78-MPCBR-9W4KR" &:: Standard ACor | ||||
| exit /b | ||||
|  | ||||
| :e49c08e7-da82-42f8-bde2-b570fbcae76c | ||||
| set "key=2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG" &:: Datacenter ACor | ||||
| exit /b | ||||
|  | ||||
| :: Windows Server 2016 [RS1] | ||||
| :8c1c5410-9f39-4805-8c9d-63a07706358f | ||||
| set "key=WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY" &:: Standard | ||||
| exit /b | ||||
|  | ||||
| :21c56779-b449-4d20-adfc-eece0e1ad74b | ||||
| set "key=CB7KF-BWN84-R7R2Y-793K2-8XDDG" &:: Datacenter | ||||
| exit /b | ||||
|  | ||||
| :2b5a1b0f-a5ab-4c54-ac2f-a6d94824a283 | ||||
| set "key=JCKRF-N37P4-C2D82-9YXRT-4M63B" &:: Essentials | ||||
| exit /b | ||||
|  | ||||
| :7b4433f4-b1e7-4788-895a-c45378d38253 | ||||
| set "key=QN4C6-GBJD2-FB422-GHWJK-GJG2R" &:: Cloud Storage | ||||
| exit /b | ||||
|  | ||||
| :3dbf341b-5f6c-4fa7-b936-699dce9e263f | ||||
| set "key=VP34G-4NPPG-79JTQ-864T4-R3MQX" &:: Azure Core | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
| @@ -0,0 +1,345 @@ | ||||
| ==================================================================================================== | ||||
|    [HWID] Digital License Activation: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - This activation is supported for Windows 10 ONLY. | ||||
|  - This activation does not store any files in your system. | ||||
|  - This activation is a permanent activation for your system Hardware. | ||||
|  | ||||
|  - On a system, this activation can be created for all the supported editions, and all can be  | ||||
|    linked to Microsoft account without any issues. | ||||
|  | ||||
|  - Once a system is activated, this activation cannot be removed. (Because the license is stored in  | ||||
|    the Microsoft servers and not in the user's system.) | ||||
|  | ||||
|  - Any significant changes in the Hardware (such as a motherboard) may deactivate the system.  | ||||
|    It is possible to reactivate a system that was deactivated because of significant hardware | ||||
|    changes, IF your activation, was linked to an online Microsoft account. | ||||
|  | ||||
|  - For activation to succeed, the Windows Update Service and internet connectivity must be enabled. | ||||
|    If you are trying to activate without these conditions being met, then the system will auto- | ||||
|    activate later when the conditions are met. | ||||
|  | ||||
|  - Auto activation scenario after the Windows reinstall: | ||||
|    - The Internet is required. (Only at the time of activation) | ||||
|    - The system will auto-activate if Retail (Consumer) media was used for the installation. | ||||
|    - The system will NOT auto-activate if VL (Business) media was used for the installation. | ||||
|      In this case, the user will have to insert that windows edition Retail/OEM key (find keys below  | ||||
|      in this page) to activate, if the user doesn't wish to activate again using this script. | ||||
|  | ||||
|  - Possible reasons for activation failure: | ||||
|    - The Internet is not connected. | ||||
|    - Windows update service is disabled. | ||||
|    - Use of a VPN, and/or a privacy-based hosts file, firewall rules. | ||||
|    - Corrupt system files. | ||||
|    - Microsoft servers block the activation request from some countries such as Iran. | ||||
|    - Rarely, Microsoft's activation servers are the problem. | ||||
|    - Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe | ||||
|      The reason is unknown (to me). Please contact me if it happens to you. | ||||
|  | ||||
|    * Troubleshoot guide is listed below. | ||||
|  | ||||
| ==================================================================================================== | ||||
|  | ||||
|    Documentation by @mspaintmsi | ||||
|  | ||||
|    Included topics- | ||||
|  | ||||
|    How does it work? | ||||
|    Is it possible that Microsoft can block these Digital Licenses (HWID)? | ||||
|  | ||||
|    https://pastebin.com/raw/7Xyaf15Z | ||||
|    Mirror Link- | ||||
|    https://textuploader.com/1dg8d/raw | ||||
|  | ||||
|    And | ||||
|  | ||||
|    https://github.com/massgravel/MASSGRAVE | ||||
|    https://gitlab.com/massgrave/massgrave | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Supported Products: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    Windows 10 Versions that can be activated: | ||||
|  | ||||
|    Core | ||||
|    CoreCountrySpecific | ||||
|    CoreN | ||||
|    CoreSingleLanguage | ||||
|    Education | ||||
|    EducationN | ||||
|    Enterprise | ||||
|    EnterpriseN | ||||
|    EnterpriseS    [LTSB 2015/2016 & LTSC 2019] | ||||
|    EnterpriseSN   [LTSB 2015/2016] | ||||
|    Professional | ||||
|    ProfessionalEducation | ||||
|    ProfessionalEducationN | ||||
|    ProfessionalN | ||||
|    ProfessionalWorkstation | ||||
|    ProfessionalWorkstationN | ||||
|    ServerRdsh | ||||
|    IoTEnterprise | ||||
|  | ||||
|  | ||||
|    Note - X86-X64 and ARM64 architecture systems are supported. | ||||
|         - Any Evaluation version of Windows (i.e. 'EVAL' LTSB/C) cannot be activated. | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Switches for the Script: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - To run the script in unattended mode, use /u parameter. | ||||
| "HWID_Activation.cmd" /u | ||||
|  | ||||
| ==================================================================================================== | ||||
|    File Details: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe                  Virus Total = 0/71 | ||||
|    ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll                            Virus Total = 0/68 | ||||
|    578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe            Virus Total = 0/69 | ||||
|    5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll                      Virus Total = 0/67 | ||||
|    48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe                         Virus Total = 0/68 | ||||
|  | ||||
|    Virus Total Report Date: 2020-01-21 | ||||
|  | ||||
|  - File Sources: | ||||
|  | ||||
|    - ClipUp.exe (Original): | ||||
|      From Windows server 2016 x64 ISO | ||||
|  | ||||
|    - gatherosstate.exe (Original): | ||||
|      From Windows 10 x86 14393 ADK | ||||
|  | ||||
|    - ARM64_gatherosstate.exe (Original): | ||||
|      From Windows 10 ARM64 18362 ISO | ||||
|  | ||||
|    - ARM64_slc.dll and slc.dll: | ||||
|  | ||||
|      Original slshim | ||||
|      https://github.com/vyvojar/slshim | ||||
|  | ||||
|      Improved by @mspaintmsi | ||||
|      https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 | ||||
|      https://github.com/massgravel/MASSGRAVE | ||||
|      https://gitlab.com/massgrave/massgrave | ||||
|  | ||||
|      Source code is included. | ||||
|      slc.dll is based on Integrated_Patcher_2 method. | ||||
|      It is currently in use in HWID/KMS38 Activation script. | ||||
|  | ||||
| ____________________________________________________________________________________________________ | ||||
|  | ||||
|      You can safely delete the following files if it's not required for you. | ||||
|  | ||||
|      ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions. | ||||
|      ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10. | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Manual Activation Process: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - Prerequisite: | ||||
|  | ||||
|    For Windows 10 x86-x64 system, you need following files, | ||||
|    fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe | ||||
|    ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll | ||||
|  | ||||
|    For Windows 10 ARM64 system, you need following files, | ||||
|    578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe | ||||
|    5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll | ||||
|    * Rename the ARM64 files to gatherosstate.exe and slc.dll respectively. | ||||
|  | ||||
|  | ||||
|    Make a folder named 'Files' in C drive, [C:\Files] and copy the required files in that folder. | ||||
|  | ||||
|    ------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|          Retail/OEM Keys            Windows 10 Editions | ||||
|  | ||||
|    YTMG3-N6DKC-DKB77-7M9GH-8HVX7    Core | ||||
|    4CPRK-NM3K3-X6XXQ-RXX86-WXCHW    CoreN | ||||
|    N2434-X9D7W-8PF6X-8DV9T-8TYMD    CoreCountrySpecific | ||||
|    BT79Q-G7N6G-PGBYW-4YWX6-6F4BT    CoreSingleLanguage | ||||
|    YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY    Education | ||||
|    84NGF-MHBT6-FXBX8-QWJK7-DRR8H    EducationN | ||||
|    XGVPP-NMH47-7TTHJ-W3FW7-8HV2C    Enterprise | ||||
|    3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT    EnterpriseN | ||||
|    FWN7H-PF93Q-4GGP8-M8RF3-MDWWW    EnterpriseS      [LTSB 2015] | ||||
|    8V8WN-3GXBH-2TCMG-XHRX3-9766K    EnterpriseSN     [LTSB 2015] | ||||
|    NK96Y-D9CD8-W44CQ-R8YTK-DYJWX    EnterpriseS      [LTSB 2016] | ||||
|    2DBW3-N2PJG-MVHW3-G7TDK-9HKR4    EnterpriseSN     [LTSB 2016] | ||||
|    43TBQ-NH92J-XKTM7-KT3KK-P39PB    EnterpriseS      [LTSC 2019] | ||||
|    VK7JG-NPHTM-C97JM-9MPGT-3V66T    Professional | ||||
|    2B87N-8KFHP-DKV6R-Y2C8J-PKCKT    ProfessionalN | ||||
|    8PTT6-RNW4C-6V7J2-C2D3X-MHBPB    ProfessionalEducation | ||||
|    GJTYN-HDMQY-FRR76-HVGC7-QPF8P    ProfessionalEducationN | ||||
|    DXG7C-N36C4-C4HTG-X4T3X-2YV77    ProfessionalWorkstation | ||||
|    WYPNQ-8C467-V2W6J-TX4WX-WT2RQ    ProfessionalWorkstationN | ||||
|    NJCF7-PW8QT-3324D-688JX-2YV66    ServerRdsh | ||||
|    XQQYW-NFFMW-XJPBH-K8732-CKFFD    IoTEnterprise | ||||
|     | ||||
|    ------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|  - Make sure the Windows Update Service and internet are both enabled. | ||||
|  - Open a command prompt (run cmd.exe) as administrator, and enter following listed commands in the  | ||||
|    the sequence in which they are given. | ||||
|  - Enter Retail/OEM Key, (Replace '%key%' with the key from the above list) with the following command: | ||||
|  | ||||
| cscript /nologo %windir%\system32\slmgr.vbs /ipk %key% | ||||
|  | ||||
|  - Make sure slc.dll and gatherosstate.exe files are located in the folder, "C:\Files" and enter  | ||||
|    the following commands to generate GenuineTicket.xml file. | ||||
|  | ||||
|    For x86-x64 systems, | ||||
|  | ||||
| pushd "C:\Files" | ||||
| rundll32 "C:\Files\slc.dll",PatchGatherosstate | ||||
| call "C:\Files\gatherosstatemodified.exe" | ||||
|  | ||||
|    For ARM64 systems, | ||||
|  | ||||
| call "C:\Files\gatherosstate.exe" | ||||
|  | ||||
|  - Now a GenuineTicket.xml file should be created in the folder "C:\Files\", copy and paste this file in the  | ||||
|    folder named, "C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\" | ||||
|  | ||||
|  - Now apply this ticket using the following commands in this sequence: | ||||
|  | ||||
| net stop ClipSVC | ||||
| net start ClipSVC | ||||
|  | ||||
|  - Activate Windows with the following command: | ||||
|  | ||||
| cscript /nologo %windir%\system32\slmgr.vbs /ato | ||||
|  | ||||
|  - Check Activation Status with the following command: | ||||
|  | ||||
| cscript /nologo %windir%\system32\slmgr.vbs /xpr | ||||
|  | ||||
|  - Done. | ||||
|  | ||||
|    * Note - [clipup -v -o -altto <ticket_path>] method to apply the ticket was not suggested because | ||||
|             of the issues in case the username have spaces or non English characters. | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Troubleshoot activation issues: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - Make sure the internet is connected. | ||||
|   | ||||
|  - Open CMD and type services.msc and hit Enter, When Services opens up, look for 'Windows Update' | ||||
|    and Make sure its startup type is set to Automatic. Some update blocking tools and scripts  | ||||
|    usually permanently block the update service, you need to make sure it's not the case. | ||||
|  | ||||
|  - VPN, privacy-based hosts and/or firewall rules may cause problems with the activation. Disable  | ||||
|    them if you are facing problems in activation. | ||||
|  | ||||
|  - Reboot the system. | ||||
|  | ||||
|  - Now run the script to activate Windows 10, and if unsuccessful,  | ||||
|    Try the troubleshoot button in the settings activation page. | ||||
|    If still unsuccessful then read additional troubleshoot options listed below. | ||||
|  | ||||
| -------------------------------------------- | ||||
|  | ||||
|    - Open CMD as administrator, and enter the following command: | ||||
|  | ||||
| Dism /online /Cleanup-Image /RestoreHealth | ||||
|  | ||||
|    - After it's done, reboot the system and open CMD as administrator again, and enter the  | ||||
|      following command: | ||||
|  | ||||
| sfc.exe /scannow | ||||
|  | ||||
|    - After it's done, reboot the system and run the activation script, and if unsuccessful,  | ||||
|      open CMD as administrator again, and enter the following command: | ||||
|  | ||||
| slmgr.vbs /rearm | ||||
|  | ||||
|    - Reboot the system and run the activation script, and if unsuccessful,  | ||||
|      You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303 | ||||
|      (this will require to repair Office afterwards.) | ||||
|  | ||||
|    - Reboot the system and run the activation script, and if unsuccessful,  | ||||
|      try cleaning the clipup using the following commands, it will reset all the HWID/KMS38 installed | ||||
|      licences in the current system installation. open CMD as administrator again, and enter the  | ||||
|      following commands one by one: | ||||
|  | ||||
| net stop ClipSVC | ||||
| rundll32 clipc.dll,ClipCleanUpState | ||||
|  | ||||
|    - Reboot the system (important) and run the activation script, and if unsuccessful,  | ||||
|      Make sure hardware component proper drivers are installed, check manufacturer site/Windows- | ||||
|      update for drivers. | ||||
|  | ||||
|    - After it's done, reboot the system and run the activation script, and if unsuccessful, | ||||
|      it may be time to start over from the very beginning and do a clean install of windows :D  | ||||
|  | ||||
| ------------------------------------------- | ||||
|  Activation is blocked in some countries - | ||||
| ------------------------------------------- | ||||
|  | ||||
|  - Microsoft servers block the activation request from some countries such as Iran, | ||||
|    To activate the system in those countries, follow the below steps, | ||||
|    - In the settings app, Change Region and Timezone to the USA location and use a VPN, choose the | ||||
|      the location of the USA. Now run the script, it should activate now. | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    - Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe | ||||
|      The reason is unknown (to me). Please contact me if it happens to you. | ||||
|  | ||||
| ========================================================================================================= | ||||
|    Credits: | ||||
| ========================================================================================================= | ||||
|  | ||||
|    @mspaintmsi   Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade. | ||||
|       and        Created various methods for HWID/KMS38 Activation | ||||
|    *Anonymous    https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 | ||||
|                  https://github.com/massgravel/MASSGRAVE | ||||
|                  https://gitlab.com/massgrave/massgrave | ||||
|  | ||||
|    @vyvojar      Original slshim (slc.dll) | ||||
|                  https://github.com/vyvojar/slshim/releases | ||||
|  | ||||
| --------------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    HWID/KMS38 methods Suggestions and improvements:- | ||||
|    | ||||
|    @sponpa       New ideas for the HWID/KM38 Generation | ||||
|                  https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257 | ||||
|  | ||||
|    @leitek8      Improvements for the slc.dll | ||||
|                  https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005 | ||||
|  | ||||
| --------------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    Kind Help:- | ||||
|  | ||||
|    Thanks for having my back and answering all of my queries. (In no particular order) | ||||
|     | ||||
|    @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 | ||||
|  | ||||
|    @BorrowedWifi for providing support in fixing English grammar errors in the Read Me. | ||||
|    @Chibi ANUBIS and @smashed for testing scripts for ARM64 system. | ||||
|  | ||||
|    Special thanks to @abbodi1406 for providing the great help. | ||||
|  | ||||
| --------------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    This script is a part of 'Microsoft Activation Scripts' project. | ||||
|  | ||||
|    Homepages- | ||||
|    NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
|    GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
|    GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
|  | ||||
|    Maintained by @WindowsAddict | ||||
|  | ||||
|    P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only  | ||||
|    manage batch script tool which is based on the above mentioned original co-authors activation methods. | ||||
|  | ||||
| ========================================================================================================= | ||||
| @@ -0,0 +1,358 @@ | ||||
| ==================================================================================================== | ||||
|    KMS38 Activation: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - This activation method activates Windows 10 and Windows Server (14393 and later builds),  | ||||
|    until the year 2038. | ||||
|  - This activation method does not store any files on the system. | ||||
|  | ||||
|  - Make sure the following things have been accounted for, before applying KMS38 Activation: | ||||
|    - Before the activation, if any KMS activator is installed, then make sure to uninstall it  | ||||
|      completely. | ||||
|    - After KMS38 activation for the Windows Operating System has been achieved, if you want to  | ||||
|      additionally, use the 180 Days KMS Activator for MS Office, then you must make sure that  | ||||
|      it (the 180 Days KMS Activator for MS Office) is compatible with Windows KMS38 activation.  | ||||
|      FYI, the following activators are compatible and can activate Office  | ||||
|      without disrupting the Windows KMS38 activation. | ||||
|  | ||||
|      KMS_VL_ALL by @abbodi1406     https://forums.mydigitallife.net/posts/838808 | ||||
|      Online KMS Activation Script  https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
|  | ||||
|  - Any KMS Activator which is not compatible with KMS38, may overwrite the KMS38 activation for  | ||||
|    Windows with its own 180 days activation, thereby destroying the KMS38 activation for Windows.  | ||||
|    To prevent this accidental overwriting, you can apply KMS38 protection for Windows, check  | ||||
|    the Extras folder for more details. | ||||
|  | ||||
|  - Why is the script setting the specific KMS host to 127.0.0.2 (localhost)? | ||||
|    - By doing this, global KMS IP can not replace KMS38 activation but can be used with Office and | ||||
|      other Windows Editions. | ||||
|    - In case you don't like it, you can remove it with following codes, open CMD as admin and enter, | ||||
|  | ||||
| set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" | ||||
| reg delete "HKLM\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f | ||||
| reg delete "HKU\S-1-5-20\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f | ||||
|  | ||||
| ==================================================================================================== | ||||
|  | ||||
|    Documentation by @mspaintmsi | ||||
|  | ||||
|    Included topics- | ||||
|  | ||||
|    How does it work? | ||||
|     | ||||
|    https://pastebin.com/raw/7Xyaf15Z | ||||
|    Mirror Link- | ||||
|    https://textuploader.com/1dg8d/raw | ||||
|  | ||||
|    And | ||||
|  | ||||
|    https://github.com/massgravel/MASSGRAVE | ||||
|    https://gitlab.com/massgrave/massgrave | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Supported Products: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    Windows 10: | ||||
|  | ||||
|    Core | ||||
|    CoreCountrySpecific | ||||
|    CoreN | ||||
|    CoreSingleLanguage | ||||
|    Education | ||||
|    EducationN | ||||
|    Enterprise | ||||
|    EnterpriseG | ||||
|    EnterpriseGN | ||||
|    EnterpriseN | ||||
|    EnterpriseS       [LTSB 2016 & LTSC 2019] | ||||
|    EnterpriseSN      [LTSB 2016 & LTSC 2019] | ||||
|    Professional | ||||
|    ProfessionalEducation | ||||
|    ProfessionalEducationN | ||||
|    ProfessionalN | ||||
|    ProfessionalWorkstation | ||||
|    ProfessionalWorkstationN | ||||
|    ServerRdsh | ||||
|  | ||||
|    ------------------------ | ||||
|  | ||||
|    Windows Server: | ||||
|  | ||||
|    ServerCloudStorage     [Server 2016] | ||||
|    ServerDatacenter       [Server 2016 & 2019] | ||||
|    ServerDatacenterCor    [Server 2016 & 2019] | ||||
|    ServerSolution         [Server 2016 & 2019] | ||||
|    ServerSolutionCor      [Server 2016 & 2019] | ||||
|    ServerStandard         [Server 2016 & 2019] | ||||
|    ServerStandardCor      [Server 2016 & 2019] | ||||
|    ServerAzureCor         [Server 2016 & 2019] | ||||
|    ServerDatacenterACor   [All versions] | ||||
|    ServerStandardACor     [All versions] | ||||
|  | ||||
|  | ||||
|    Note - X86-X64 and ARM64 architecture systems are supported. | ||||
|         - Any Evaluation version of Windows and Server (i.e. 'EVAL' LTSB/C) cannot be activated. | ||||
|         - KMS38 only supports Windows/server version 14393 (1607) and newer versions. | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Switches in the Script: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - For unattended mode, run the script with /u parameter. | ||||
|  | ||||
| "KMS38_Activation.cmd" /u | ||||
|  | ||||
| ==================================================================================================== | ||||
|    File Details: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe                  Virus Total = 0/71 | ||||
|    ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll                            Virus Total = 0/68 | ||||
|    578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe            Virus Total = 0/69 | ||||
|    5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll                      Virus Total = 0/67 | ||||
|    48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe                         Virus Total = 0/68 | ||||
|  | ||||
|    Virus Total Report Date: 2020-01-21 | ||||
|  | ||||
|  - File Sources: | ||||
|  | ||||
|    - ClipUp.exe (Original): | ||||
|      From Windows server 2016 x64 ISO | ||||
|  | ||||
|    - gatherosstate.exe (Original): | ||||
|      From Windows 10 x86 14393 ADK | ||||
|  | ||||
|    - ARM64_gatherosstate.exe (Original): | ||||
|      From Windows 10 ARM64 18362 ISO | ||||
|  | ||||
|    - ARM64_slc.dll and slc.dll: | ||||
|  | ||||
|      Original slshim | ||||
|      https://github.com/vyvojar/slshim | ||||
|  | ||||
|      Improved by @mspaintmsi | ||||
|      https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 | ||||
|      https://github.com/massgravel/MASSGRAVE | ||||
|      https://gitlab.com/massgrave/massgrave | ||||
|  | ||||
|      Source code is included. | ||||
|      slc.dll is based on Integrated_Patcher_2 method. | ||||
|      It is currently in use in HWID/KMS38 Activation script. | ||||
|  | ||||
| ____________________________________________________________________________________________________ | ||||
|  | ||||
|      You can safely delete the following files if it's not required for you. | ||||
|  | ||||
|      ClipUp.exe - Required to KMS38 activate Server Cor and Acor editions. | ||||
|      ARM64_gatherosstate.exe and ARM64_slc.dll - Required to activate ARM64 Arch Windows 10. | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Manual Activation Process: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - Prerequisite: | ||||
|  | ||||
|    For Windows 10 / Server x86-x64 system, you need following files, | ||||
|    48d928b1bec25a56fe896c430c2c034b7866aa7a *ClipUp.exe        | ||||
|    fabb5a0fc1e6a372219711152291339af36ed0b5 *gatherosstate.exe | ||||
|    ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *slc.dll            | ||||
|    * ClipUp.exe is only required to activate Server Cor and Acor editions. | ||||
|  | ||||
|    For Windows 10 ARM64 system, you need following files, | ||||
|    578364cb2319da7999acd8c015b4ce8da8f1b282 *ARM64_gatherosstate.exe | ||||
|    5dbea3a580cf60391453a04a5c910a3ceca2b810 *ARM64_slc.dll | ||||
|    * Rename the ARM64 files to gatherosstate.exe and slc.dll respectively. | ||||
|  | ||||
|    Make a folder named 'Files' in C drive, [C:\Files] and copy the required files in that folder. | ||||
|  | ||||
|    ------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|            GVLK                      Windows 10 Editions           | ||||
|  | ||||
|    TX9XD-98N7V-6WMQ6-BX7FG-H8Q99     Core | ||||
|    PVMJN-6DFY6-9CCP6-7BKTT-D3WVR     CoreCountrySpecific | ||||
|    3KHY7-WNT83-DGQKR-F7HPR-844BM     CoreN | ||||
|    7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH     CoreSingleLanguage | ||||
|    NW6C2-QMPVW-D7KKK-3GKT6-VCFB2     Education | ||||
|    2WH4N-8QGBV-H22JP-CT43Q-MDWWJ     EducationN | ||||
|    NPPR9-FWDCX-D2C8J-H872K-2YT43     Enterprise | ||||
|    YYVX9-NTFWV-6MDM3-9PT4T-4M68B     EnterpriseG | ||||
|    44RPN-FTY23-9VTTB-MP9BX-T84FV     EnterpriseGN | ||||
|    DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4     EnterpriseN | ||||
|    DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ     EnterpriseS                                [LTSB 2016] | ||||
|    M7XTQ-FN8P6-TTKYV-9D4CC-J462D     EnterpriseS                                [LTSC 2019] | ||||
|    QFFDN-GRT3P-VKWWX-X7T3R-8B639     EnterpriseSN                               [LTSB 2016] | ||||
|    92NFX-8DJQP-P6BBQ-THF9C-7CG2H     EnterpriseSN                               [LTSC 2019] | ||||
|    W269N-WFGWX-YVC9B-4J6C9-T83GX     Professional | ||||
|    6TP4R-GNPTD-KYYHQ-7B7DP-J447Y     ProfessionalEducation | ||||
|    YVWGF-BXNMC-HTQYQ-CPQ99-66QFC     ProfessionalEducationN | ||||
|    MH37W-N47XK-V7XM9-C7227-GCQG9     ProfessionalN | ||||
|    NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J     ProfessionalWorkstation | ||||
|    9FNHH-K3HBT-3W4TD-6383H-6XYWF     ProfessionalWorkstationN | ||||
|    7NBT4-WGBQX-MP4H7-QXFF8-YP3KX     ServerRdsh                            [Less than 1809] | ||||
|    CPWHC-NT2C7-VYW78-DHDB2-PG3GK     ServerRdsh                     [Greater or Equal 1809] | ||||
|     | ||||
|            GVLK                      Windows Server Editions     | ||||
|     | ||||
|    QN4C6-GBJD2-FB422-GHWJK-GJG2R     ServerCloudStorage                       [Server 2016] | ||||
|    CB7KF-BWN84-R7R2Y-793K2-8XDDG     ServerDatacenter, ServerDatacenterCor    [Server 2016] | ||||
|    WMDGN-G9PQG-XVVXX-R3X43-63DFG     ServerDatacenter, ServerDatacenterCor    [Server 2019] | ||||
|    JCKRF-N37P4-C2D82-9YXRT-4M63B     ServerSolution, ServerSolutionCor        [Server 2016] | ||||
|    WVDHN-86M7X-466P6-VHXV7-YY726     ServerSolution, ServerSolutionCor        [Server 2019] | ||||
|    WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY     ServerStandard, ServerStandardCor        [Server 2016] | ||||
|    N69G4-B89J2-4G8F4-WWYCC-J464C     ServerStandard, ServerStandardCor        [Server 2019] | ||||
|    VP34G-4NPPG-79JTQ-864T4-R3MQX     ServerAzureCor                           [Server 2016] | ||||
|    FDNH6-VW9RW-BXPJ7-4XTYG-239TB     ServerAzureCor                           [Server 2019] | ||||
|    6Y6KB-N82V8-D8CQV-23MJW-BWTG6     ServerDatacenterACor           [Server 1709 and later] | ||||
|    DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4     ServerStandardACor             [Server 1709 and later] | ||||
|  | ||||
|    ------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|  - Make sure to properly and completely remove any previously-installed KMS activator if one already exists. | ||||
|  - Open CMD as Admin, and enter the following listed commands in the sequence in which they are given. | ||||
|  - Enter Generic Volume License Key (GVLK) (Replace '%key%' with the key from the above list)  | ||||
|    with the following command: | ||||
|     | ||||
| cscript /nologo %windir%\system32\slmgr.vbs /ipk %key% | ||||
|  | ||||
|  - Set specific KMS host to 127.0.0.2 [Localhost] with the following command: (Run one by one) | ||||
|    - By doing this, the global KMS IP can not replace the KMS38 activation, and can then safely be used with MS Office  | ||||
|      and other Windows Editions. | ||||
|    - It's optional. | ||||
|  | ||||
| set spp=SoftwareLicensingProduct | ||||
| for /f "tokens=2 delims==" %G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' and Name like 'Windows%%' and PartialProductKey is not NULL) get ID /VALUE"') do (set app=%G) | ||||
| wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine | ||||
| wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort | ||||
| wmic path %spp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" | ||||
| wmic path %spp% where ID='%app%' call SetKeyManagementServicePort 1688 | ||||
|  | ||||
|  - Make sure slc.dll and gatherosstate.exe files are located in the folder, "C:\Files" and enter  | ||||
|    following command to generate GenuineTicket.xml file. | ||||
|  | ||||
| call "C:\Files\gatherosstate.exe" | ||||
|  | ||||
|  - Now a GenuineTicket.xml file should be created in the folder "C:\Files\", copy and paste this file in the  | ||||
|    folder named, "C:\ProgramData\Microsoft\Windows\ClipSVC\GenuineTicket\" | ||||
|  | ||||
|  - Now apply this ticket using the following commands in this sequence: | ||||
|    (In case of server cor and acor editions, copy the clipup.exe file to the folder "C:\Windows\System32\") | ||||
|  | ||||
| net stop ClipSVC | ||||
| net start ClipSVC | ||||
|  | ||||
|  - Check the expiry date of the activation with the following command:  | ||||
|  | ||||
| cscript /nologo %windir%\system32\slmgr.vbs /xpr | ||||
|  | ||||
|  - If the expiry date is not in the year 2038, then enter the following command:  | ||||
|  | ||||
| cscript /nologo %windir%\system32\slmgr.vbs /rearm-app 55c92734-d682-4d71-983e-d6ec3f16059f | ||||
| set spp=SoftwareLicensingProduct | ||||
| for /f "tokens=2 delims==" %G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%' and Name like 'Windows%%' and PartialProductKey is not NULL) get ID /VALUE"') do (set app=%G) | ||||
| cscript /nologo %windir%\system32\slmgr.vbs /rearm-sku %app% | ||||
|  | ||||
|  - check expiry date again, now it should show activation until the year 2038. | ||||
|  | ||||
|  - Done. | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Troubleshoot activation issues: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - Make sure to completely remove any previously-installed KMS activators if any exist, before  | ||||
|    installing KMS38 activation. | ||||
|  | ||||
|  - Reboot the system. | ||||
|  | ||||
|  - Now run the script to activate Windows 10, and if unsuccessful,  | ||||
|    Try the troubleshoot button in settings activation page. | ||||
|    If still unsuccessful then read additional troubleshoot options listed below. | ||||
|  | ||||
| -------------------------------------------- | ||||
|  | ||||
|    - Open CMD as Admin, and enter the following command: | ||||
|  | ||||
| Dism /online /Cleanup-Image /RestoreHealth | ||||
|  | ||||
|    - After its done, reboot the system and Open CMD as Admin, and enter the following command: | ||||
|  | ||||
| sfc.exe /scannow | ||||
|  | ||||
|    - After it's done, reboot the system and run the activation script, and if unsuccessful,  | ||||
|      open CMD as administrator again, and enter the following command: | ||||
|  | ||||
| slmgr.vbs /rearm | ||||
|  | ||||
|    - Reboot the system (important) and run the activation script, and if unsuccessful,  | ||||
|      You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303 | ||||
|      (this will require to repair Office afterwards.) | ||||
|  | ||||
|    - Reboot the system and run the activation script, and if unsuccessful,  | ||||
|      try cleaning the clipup using the following commands, it will reset all the HWID/KMS38 installed | ||||
|      licences in the current system installation. open CMD as administrator again, and enter the  | ||||
|      following commands one by one: | ||||
|  | ||||
| net stop ClipSVC | ||||
| rundll32 clipc.dll,ClipCleanUpState | ||||
|  | ||||
|    - Reboot the system (important) and run the activation script, and if unsuccessful, it may be  | ||||
|      time to start over from the very beginning and do a clean install of windows :D  | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    - Some machines are not able to generate GenuineTicket.xml file using gatherosstate.exe | ||||
|      The reason is unknown (to me). Please contact me if it happens to you. | ||||
|  | ||||
| ========================================================================================================= | ||||
|    Credits: | ||||
| ========================================================================================================= | ||||
|  | ||||
|    @mspaintmsi   Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade. | ||||
|       and        Created various methods for HWID/KMS38 Activation | ||||
|    *Anonymous    https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 | ||||
|                  https://github.com/massgravel/MASSGRAVE | ||||
|                  https://gitlab.com/massgrave/massgrave | ||||
|  | ||||
|    @vyvojar      Original slshim (slc.dll) | ||||
|                  https://github.com/vyvojar/slshim/releases | ||||
|  | ||||
| --------------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    HWID/KMS38 methods Suggestions and improvements:- | ||||
|    | ||||
|    @sponpa       New ideas for the HWID/KM38 Generation | ||||
|                  https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257 | ||||
|  | ||||
|    @leitek8      Improvements for the slc.dll | ||||
|                  https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005 | ||||
|  | ||||
| --------------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    Kind Help:- | ||||
|  | ||||
|    Thanks for having my back and answering all of my queries. (In no particular order) | ||||
|     | ||||
|    @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 | ||||
|  | ||||
|    @BorrowedWifi for providing support in fixing English grammar errors in the Read Me. | ||||
|    @Chibi ANUBIS and @smashed for testing scripts for ARM64 system. | ||||
|  | ||||
|    Special thanks to @abbodi1406 for providing the great help. | ||||
|  | ||||
| --------------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    This script is a part of 'Microsoft Activation Scripts' project. | ||||
|  | ||||
|    Homepages- | ||||
|    NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
|    GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
|    GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
|  | ||||
|    Maintained by @WindowsAddict | ||||
|  | ||||
|    P.S. I (@WindowsAddict) did not help in the development of HWID/KMS38 Activation in any way, I only  | ||||
|    manage batch script tool which is based on the above mentioned original co-authors activation methods. | ||||
|  | ||||
| ========================================================================================================= | ||||
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							| @@ -0,0 +1,16 @@ | ||||
| ==================================================================================================== | ||||
|    File Details: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe                   Virus Total = 0/66 | ||||
|    39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe                   Virus Total = 1/66 | ||||
|  | ||||
|    Virus Total Report Date: 12-11-2019 | ||||
|     | ||||
|    These files are official Microsoft files and in this script, these are used in  | ||||
|    cleaning office license in C2R Retail office to VL conversion process. | ||||
|     | ||||
|    The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab | ||||
|    You can get the original file here https://s.put.re/WFuXpyWA.zip | ||||
|  | ||||
| ==================================================================================================== | ||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| @@ -0,0 +1,657 @@ | ||||
| @setlocal DisableDelayedExpansion | ||||
| @echo off | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| :: ======================================================================================================= | ||||
| :: | ||||
| ::   This script is a part of 'Microsoft Activation Scripts' project. | ||||
| :: | ||||
| ::   Homepages- | ||||
| ::   NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
| ::   GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
| ::   GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
| :: | ||||
| ::   Maintained by @WindowsAddict | ||||
| :: | ||||
| :: ======================================================================================================= | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| set Unattended= | ||||
| set _args= | ||||
| set _elev= | ||||
| set RenTask= | ||||
| set RenActTask= | ||||
| set DeskMenu= | ||||
| set _SkipWinAct= | ||||
| set _end= | ||||
| set "_arg1=%~1" | ||||
| if not defined _arg1 goto :NoProgArgs | ||||
| set "_args=%~1" | ||||
| set "_arg2=%~2" | ||||
| set "_arg3=%~3" | ||||
| if defined _arg2 set "_args=%~1 %~2" | ||||
| if defined _arg3 set "_args=%~1 %~2 %~3" | ||||
| for %%A in (%_args%) do ( | ||||
| if /i "%%A"=="-el" set _elev=1 | ||||
| if /i "%%A"=="/swa" set _SkipWinAct=1 | ||||
| if /i "%%A"=="/rt" set RenTask=1&set Unattended=1 | ||||
| if /i "%%A"=="/rat" set RenActTask=1&set Unattended=1 | ||||
| if /i "%%A"=="/dcm" set DeskMenu=1&set Unattended=1) | ||||
| :NoProgArgs | ||||
| for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G | ||||
| set "_psc=powershell" | ||||
| set "nul=1>nul 2>nul" | ||||
| set "EchoRed=%_psc% write-host -back Black -fore Red" | ||||
| set "EchoGreen=%_psc% write-host -back Black -fore Green" | ||||
| set "EchoYellow=%_psc% write-host -back Black -fore DarkYellow" | ||||
| set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:" | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| for %%i in (powershell.exe) do if "%%~$path:i"=="" ( | ||||
| echo: &echo ==== ERROR ==== &echo: | ||||
| echo Powershell is not installed in the system. | ||||
| echo Aborting... | ||||
| set _end=1 | ||||
| goto Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| if %winbuild% LSS 7600 ( | ||||
| %ELine% | ||||
| echo Unsupported OS version Detected. | ||||
| echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent. | ||||
| set _end=1 | ||||
| goto Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Elevate script as admin and pass arguments and preventing loop | ||||
| ::  Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. | ||||
| ::  Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. | ||||
|  | ||||
| %nul% reg query HKU\S-1-5-19 && ( | ||||
|   goto :Passed | ||||
|   ) || ( | ||||
|   if defined _elev goto :E_Admin | ||||
| ) | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_vbsf=%temp%\admin.vbs" | ||||
| set _PSarg="""%~f0""" -el | ||||
| if defined _args set _PSarg="""%~f0""" -el """%_args%""" | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ( | ||||
| echo Set strArg=WScript.Arguments.Named | ||||
| echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) | ||||
| echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then | ||||
| echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) | ||||
| echo End If | ||||
| echo End With | ||||
| echo .Terminate | ||||
| echo End With | ||||
| echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 | ||||
| )>"!_vbsf!" | ||||
|  | ||||
| (%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && ( | ||||
| del /f /q "!_vbsf!" | ||||
| exit /b | ||||
| ) || ( | ||||
| del /f /q "!_vbsf!" | ||||
| %nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( | ||||
| exit /b | ||||
| ) || ( | ||||
| goto :E_Admin | ||||
| ) | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| :E_Admin | ||||
| %ELine% | ||||
| echo This script require administrator privileges. | ||||
| echo To do so, right click on this script and select 'Run as administrator'. | ||||
| set _end=1 | ||||
| goto Done | ||||
|  | ||||
| :Passed | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Fix for the special characters limitation in path name | ||||
| ::  Written by @abbodi1406 | ||||
|  | ||||
| set "_work=%~dp0" | ||||
| if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%" | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_batp=%_batf:'=''%" | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| if not exist "!_work!\Activate.cmd" ( | ||||
| %ELine% | ||||
| echo File [Activate.cmd] does not exist in current folder.. | ||||
| echo It's required for the Task Creation. | ||||
| set _end=1 | ||||
| goto Done | ||||
| ) | ||||
|  | ||||
| call :check cleanosppx64.exe cleanosppx86.exe | ||||
| if defined _miss set _end=1&goto Done | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| set "_dest=%ProgramData%\Online_KMS_Activation" | ||||
| set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks" | ||||
|  | ||||
| :ActivationRenewal | ||||
|  | ||||
| cls | ||||
| title Online KMS Activation Renewal | ||||
| mode con cols=98 lines=30 | ||||
| set ActTask= | ||||
| set error_= | ||||
| set DelDeskCont= | ||||
| set error_1= | ||||
|  | ||||
| if defined RenTask goto:Task | ||||
| if defined RenActTask set ActTask=1&goto:Task | ||||
| if defined DeskMenu goto:ContextMenu | ||||
| echo: | ||||
| echo: | ||||
| echo: | ||||
| echo                         You can apply the option [either 1 or 2] and [3]. | ||||
| echo                       ______________________________________________________ | ||||
| echo                      ^|                                                      ^| | ||||
| echo                      ^|            Auto Renewal via Task Scheduler           ^| | ||||
| echo                      ^|                                                      ^| | ||||
| echo                      ^|   [1] Create Renewal Task                            ^| | ||||
| echo                      ^|                                                      ^| | ||||
| echo                      ^|   [2] Create Renewal and Activation Task             ^| | ||||
| echo                      ^|______________________________________________________^| | ||||
| echo                      ^|                                                      ^| | ||||
| echo                      ^|        Manual Renewal via Desktop Context Menu       ^| | ||||
| echo                      ^|                                                      ^| | ||||
| echo                      ^|   [3] Add Desktop Context Menu                       ^| | ||||
| echo                      ^|______________________________________________________^| | ||||
| echo                      ^|                                                      ^| | ||||
| echo                      ^|   [4] Exit                                           ^| | ||||
| echo                      ^|                                                      ^| | ||||
| echo                      ^|______________________________________________________^| | ||||
| echo: | ||||
| choice /C:1234 /N /M ".                     Enter Your Choice [1,2,3,4] : " | ||||
|  | ||||
| if errorlevel 4 exit /b | ||||
| if errorlevel 3 goto:ContextMenu | ||||
| if errorlevel 2 set ActTask=1&goto:Task | ||||
| if errorlevel 1 goto:Task | ||||
|  | ||||
| :====================================================================================================================================================== | ||||
|  | ||||
| :Task | ||||
|  | ||||
| cls | ||||
| if defined ActTask ( | ||||
| title  Create Renewal And Activation Tasks | ||||
| ) else ( | ||||
| title  Create Renewal Task | ||||
| ) | ||||
|  | ||||
| reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && ( | ||||
| schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul% | ||||
| ) | ||||
| reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && ( | ||||
| schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul% | ||||
| ) | ||||
| If exist "%_dest%\" ( | ||||
| @RD /s /q "%_dest%\" %nul% | ||||
| ) | ||||
| If exist "%windir%\Online_KMS_Activation_Script\" ( | ||||
| @RD /s /q "%windir%\Online_KMS_Activation_Script\" %nul% | ||||
| ) | ||||
| If exist "%ProgramData%\Online_KMS_Activation.cmd" ( | ||||
| Reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul% | ||||
| del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul% | ||||
| set DelDeskCont=1 | ||||
| ) | ||||
|  | ||||
| md "%_dest%\BIN\" %nul% | ||||
|  | ||||
| set "_temp=%SystemRoot%\Temp\_KMS_Task_Work" | ||||
| if exist "%_temp%\" @RD /S /Q "%_temp%\" %nul% | ||||
| md "%_temp%\" %nul% | ||||
|  | ||||
| call :Export renewal "%_temp%\Renewal.xml" Unicode | ||||
| if defined ActTask (call :Export run_once "%_temp%\Run_Once.xml" Unicode) | ||||
|  | ||||
| call :Export info "%_dest%\Info.txt" ASCII | ||||
|  | ||||
| copy /y /b "!_work!\BIN\cleanosppx64.exe" "%_dest%\BIN\cleanosppx64.exe" %nul% | ||||
| copy /y /b "!_work!\BIN\cleanosppx86.exe" "%_dest%\BIN\cleanosppx86.exe" %nul% | ||||
|  | ||||
| cd /d "!_work!" | ||||
|  | ||||
| if defined _SkipWinAct ( | ||||
| %nul% %_psc% "(gc Activate.cmd) -replace 'set ActWindows=1', 'set ActWindows=0' | Out-File -encoding ASCII "%_dest%\Activate.cmd"" || (set error_=1) | ||||
| ) else ( | ||||
| copy /y /b "!_work!\Activate.cmd" "%_dest%\Activate.cmd" %nul% | ||||
| ) | ||||
| schtasks /create /tn "Online_KMS_Activation_Script-Renewal" /ru "SYSTEM" /xml "%_temp%\Renewal.xml" %nul% | ||||
| if defined ActTask (schtasks /create /tn "Online_KMS_Activation_Script-Run_Once" /ru "SYSTEM" /xml "%_temp%\Run_Once.xml" %nul%) | ||||
|  | ||||
| if exist "%_temp%\" @RD /S /Q "%_temp%\" %nul% | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul || (set error_=1) | ||||
| if defined ActTask reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul || (set error_=1) | ||||
|  | ||||
| If not exist "%_dest%\Activate.cmd" (set error_=1) | ||||
| If not exist "%_dest%\Info.txt" (set error_=1) | ||||
| If not exist "%_dest%\BIN\cleanosppx64.exe" (set error_=1) | ||||
| If not exist "%_dest%\BIN\cleanosppx86.exe" (set error_=1) | ||||
|  | ||||
| if defined error_ ( | ||||
| reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && ( | ||||
| schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul% | ||||
| ) | ||||
| reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && ( | ||||
| schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul% | ||||
| ) | ||||
| reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul% | ||||
| If exist "%_dest%\" ( | ||||
| @RD /s /q "%_dest%\" %nul% | ||||
| ) | ||||
| echo _________________________________________________________________ | ||||
| echo: | ||||
| %ELine% | ||||
| echo Run the Online KMS Complete Uninstall script and then try again. | ||||
| echo _________________________________________________________________ | ||||
| ) else ( | ||||
| echo: | ||||
| echo __________________________________________________________________________________________ | ||||
| echo: | ||||
| if defined DelDeskCont ( | ||||
| %EchoYellow% Previous desktop context menu entry for Online KMS Activation is deleted. | ||||
| echo: | ||||
| ) | ||||
| if defined _SkipWinAct ( | ||||
| %EchoYellow% %_dest%\Activate.cmd is set to skip Windows Activation. | ||||
| echo: | ||||
| ) | ||||
|  | ||||
| echo Files created: | ||||
| echo %_dest%\BIN\cleanosppx64.exe | ||||
| echo %_dest%\BIN\cleanosppx86.exe | ||||
| echo %_dest%\Activate.cmd | ||||
| echo %_dest%\Info.txt | ||||
| echo: | ||||
| echo Scheduled Tasks created: | ||||
| echo \Online_KMS_Activation_Script-Renewal | ||||
| if defined ActTask (echo \Online_KMS_Activation_Script-Run_Once) | ||||
| echo: | ||||
| echo It's recommended to set exclusion for the following file in your Antivirus Program. | ||||
| echo: | ||||
| echo %_dest%\Activate.cmd | ||||
| echo __________________________________________________________________________________________ | ||||
| echo: | ||||
| if defined ActTask ( | ||||
| %EchoGreen% Online KMS Activation - Renewal and Activation Tasks are successfully created. | ||||
| ) else ( | ||||
| %EchoGreen% Online KMS Activation - Renewal Task is successfully created. | ||||
| ) | ||||
| echo __________________________________________________________________________________________ | ||||
| echo: | ||||
| ) | ||||
|  | ||||
| goto Done | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :ContextMenu | ||||
|  | ||||
| cls | ||||
| title Add Desktop Context Menu | ||||
|  | ||||
| If exist "%ProgramData%\Online_KMS_Activation.cmd" ( | ||||
| del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul% | ||||
| set DelDeskCont=1 | ||||
| ) | ||||
|  | ||||
| reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul% | ||||
|  | ||||
| if exist "%_dest%\BIN\" ( | ||||
| @RD /s /q "%_dest%\BIN\" %nul% | ||||
| ) | ||||
|  | ||||
| md "%_dest%\BIN\" %nul% | ||||
| copy /y /b "!_work!\BIN\cleanosppx64.exe" "%_dest%\BIN\cleanosppx64.exe" %nul% | ||||
| copy /y /b "!_work!\BIN\cleanosppx86.exe" "%_dest%\BIN\cleanosppx86.exe" %nul% | ||||
|  | ||||
| if exist "%_dest%\Activate.cmd" ( | ||||
| del /f /q "%_dest%\Activate.cmd" %nul% | ||||
| ) | ||||
|  | ||||
| cd /d "!_work!" | ||||
|  | ||||
| if defined _SkipWinAct ( | ||||
| %nul% %_psc% "(gc Activate.cmd) -replace 'set ActWindows=1', 'set ActWindows=0' | Out-File -encoding ASCII "%_dest%\Activate.cmd"" || (set error_=1) | ||||
| ) else ( | ||||
| copy /y /b "!_work!\Activate.cmd" "%_dest%\Activate.cmd" %nul% | ||||
| ) | ||||
|  | ||||
| if exist "%_dest%\Info.txt" ( | ||||
| del /f /q "%_dest%\Info.txt" %nul% | ||||
| ) | ||||
|  | ||||
| call :Export info "%_dest%\Info.txt" ASCII | ||||
|  | ||||
| reg add "HKCR\DesktopBackground\shell\Activate Windows - Office" /v "Icon" /t REG_SZ /d "%SystemRoot%%\System32\shell32.dll,71" /f >nul 2>&1 || (set error_1=1) | ||||
| reg add "HKCR\DesktopBackground\shell\Activate Windows - Office\command" /ve /d "%_dest%\Activate.cmd" /f %nul% || (set error_1=1) | ||||
|  | ||||
| If not exist "%_dest%\Activate.cmd" (set error_=1) | ||||
| If not exist "%_dest%\Info.txt" (set error_=1) | ||||
| If not exist "%_dest%\BIN\cleanosppx64.exe" (set error_=1) | ||||
| If not exist "%_dest%\BIN\cleanosppx86.exe" (set error_=1) | ||||
|  | ||||
| reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" %nul% || (set error_1=1) | ||||
|  | ||||
| if defined error_1 ( | ||||
| reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && ( | ||||
| schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul% | ||||
| ) | ||||
| reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && ( | ||||
| schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul% | ||||
| ) | ||||
| reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul% | ||||
| If exist "%_dest%\" ( | ||||
| @RD /s /q "%_dest%\" %nul% | ||||
| ) | ||||
| echo _________________________________________________________________ | ||||
| echo: | ||||
| %ELine% | ||||
| echo Run the Online KMS Complete Uninstall script and then try again. | ||||
| echo _________________________________________________________________ | ||||
| ) else ( | ||||
| echo: | ||||
| echo __________________________________________________________________________________________ | ||||
| echo: | ||||
| if defined DelDeskCont ( | ||||
| %EchoYellow% Previous desktop context menu entry for Online KMS Activation is deleted. | ||||
| echo: | ||||
| ) | ||||
| if defined _SkipWinAct ( | ||||
| %EchoYellow% %_dest%\Activate.cmd is set to skip Windows Activation. | ||||
| echo: | ||||
| ) | ||||
|  | ||||
| echo Files created: | ||||
| echo %_dest%\BIN\cleanosppx64.exe | ||||
| echo %_dest%\BIN\cleanosppx86.exe | ||||
| echo %_dest%\Activate.cmd | ||||
| echo %_dest%\Info.txt | ||||
| echo: | ||||
| echo Registry entry added: | ||||
| echo HKCR\DesktopBackground\shell\Activate Windows - Office | ||||
| echo HKCR\DesktopBackground\shell\Activate Windows - Office\command | ||||
| echo __________________________________________________________________________________________ | ||||
| echo: | ||||
| %EchoGreen% Desktop context menu entry for Online KMS Activation is successfully created. | ||||
| echo __________________________________________________________________________________________ | ||||
| echo: | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :Done | ||||
| echo: | ||||
| if defined Unattended ( | ||||
| echo Exiting in 3 seconds... | ||||
| if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3) | ||||
| exit /b | ||||
| ) | ||||
| if defined _end ( | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
| ) else ( | ||||
| echo Press any key to go back... | ||||
| pause >nul | ||||
| goto ActivationRenewal | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :info: | ||||
| ==================================================================================================== | ||||
|    Online KMS Activation: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    The use of this script is to activate / renew your Windows /Server /Office license  | ||||
|    using online KMS. | ||||
|     | ||||
|  - Scheduled task name (If Renewal Task is created) (Weekly). | ||||
|    \Online_KMS_Activation_Script-Renewal | ||||
|  | ||||
|  - Scheduled task name (If Activation Task is created). | ||||
|    \Online_KMS_Activation_Script-Run_Once | ||||
|  | ||||
|    The scheduled task runs only if the system is connected to the Internet. | ||||
|    Activation Task will run on the system login and after successful activation, this task will  | ||||
|    delete itself. | ||||
|     | ||||
|  - If system preactivation is done via HWID + Online KMS, and HWID was applied but was not  | ||||
|    successful due to lack of internet at the time of installation of Windows, in that case,  | ||||
|    Online KMS script will be set to skip Windows activation. | ||||
|  | ||||
|  - Registry entry name and location (If desktop context menu is created). | ||||
|    HKCR\DesktopBackground\shell\Activate Windows - Office | ||||
|  | ||||
|    For complete script and more info, browse the script homepage. | ||||
|  | ||||
| ==================================================================================================== | ||||
|    File Details: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe                   Virus Total = 0/66 | ||||
|    39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe                   Virus Total = 1/66 | ||||
|  | ||||
|    Virus Total Report Date: 12-11-2019 | ||||
|     | ||||
|    These files are official Microsoft files and in this script, these are used in  | ||||
|    cleaning office license in C2R Retail office to VL conversion process. | ||||
|     | ||||
|    The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab | ||||
|    You can get the original file here https://s.put.re/WFuXpyWA.zip | ||||
|  | ||||
| ==================================================================================================== | ||||
|  | ||||
|    Online KMS Activation script is just a fork of @abbodi1406's KMS_VL_ALL Project. | ||||
|    KMS_VL_ALL homepage: https://forums.mydigitallife.net/posts/838808 | ||||
|  | ||||
|    This fork was made to avoid having any KMS binary files and system can be activated using  | ||||
|    some manual commands or transparent batch script files. | ||||
|  | ||||
|    Online KMS Activation script is a part of 'Microsoft Activation Scripts' | ||||
|    Maintained by @WindowsAddict | ||||
|  | ||||
|    Homepages- | ||||
|    NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
|    GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
|    GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
|  | ||||
| ==================================================================================================== | ||||
| :info: | ||||
|  | ||||
| :renewal: | ||||
| <?xml version="1.0" encoding="UTF-16"?> | ||||
| <Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> | ||||
|   <RegistrationInfo> | ||||
|     <Source>Microsoft Corporation</Source> | ||||
|     <Date>1999-01-01T12:00:00.34375</Date> | ||||
|     <Author>RPO/WindowsAddict</Author> | ||||
|     <Version>1.0</Version> | ||||
|     <Description>Online_KMS_Activation_Script-Renewal - Weekly Activation Renewal Task</Description> | ||||
|     <URI>\Online_KMS_Activation_Script-Renewal</URI> | ||||
|     <SecurityDescriptor>D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FRFX;;;LS)(A;;FRFW;;;S-1-5-80-123231216-2592883651-3715271367-3753151631-4175906628)(A;;FR;;;S-1-5-4)</SecurityDescriptor> | ||||
|   </RegistrationInfo> | ||||
|   <Triggers> | ||||
|     <CalendarTrigger> | ||||
|       <StartBoundary>1999-01-01T12:00:00</StartBoundary> | ||||
|       <Enabled>true</Enabled> | ||||
|       <ScheduleByWeek> | ||||
|         <DaysOfWeek> | ||||
|           <Sunday /> | ||||
|         </DaysOfWeek> | ||||
|         <WeeksInterval>1</WeeksInterval> | ||||
|       </ScheduleByWeek> | ||||
|     </CalendarTrigger> | ||||
|   </Triggers> | ||||
|   <Principals> | ||||
|     <Principal id="LocalSystem"> | ||||
|       <UserId>S-1-5-18</UserId> | ||||
|       <RunLevel>HighestAvailable</RunLevel> | ||||
|     </Principal> | ||||
|   </Principals> | ||||
|   <Settings> | ||||
|     <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> | ||||
|     <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> | ||||
|     <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries> | ||||
|     <AllowHardTerminate>true</AllowHardTerminate> | ||||
|     <StartWhenAvailable>true</StartWhenAvailable> | ||||
|     <RunOnlyIfNetworkAvailable>true</RunOnlyIfNetworkAvailable> | ||||
|     <IdleSettings> | ||||
|       <StopOnIdleEnd>false</StopOnIdleEnd> | ||||
|       <RestartOnIdle>false</RestartOnIdle> | ||||
|     </IdleSettings> | ||||
|     <AllowStartOnDemand>true</AllowStartOnDemand> | ||||
|     <Enabled>true</Enabled> | ||||
|     <Hidden>true</Hidden> | ||||
|     <RunOnlyIfIdle>false</RunOnlyIfIdle> | ||||
|     <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession> | ||||
|     <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine> | ||||
|     <WakeToRun>false</WakeToRun> | ||||
|     <ExecutionTimeLimit>PT10M</ExecutionTimeLimit> | ||||
|     <Priority>7</Priority> | ||||
|     <RestartOnFailure> | ||||
|       <Interval>PT2M</Interval> | ||||
|       <Count>3</Count> | ||||
|     </RestartOnFailure> | ||||
|   </Settings> | ||||
|   <Actions Context="LocalSystem"> | ||||
|     <Exec> | ||||
|       <Command>%ProgramData%\Online_KMS_Activation\Activate.cmd</Command> | ||||
|     <Arguments>Task</Arguments> | ||||
|     </Exec> | ||||
|   </Actions> | ||||
| </Task> | ||||
| :renewal: | ||||
|  | ||||
| :run_once: | ||||
| <?xml version="1.0" encoding="UTF-16"?> | ||||
| <Task version="1.3" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task"> | ||||
|   <RegistrationInfo> | ||||
|     <Source>Microsoft Corporation</Source> | ||||
|     <Date>1999-01-01T12:00:00.34375</Date> | ||||
|     <Author>RPO/WindowsAddict</Author> | ||||
|     <Version>1.0</Version> | ||||
|     <Description>Online_KMS_Activation_Script-Run_Once - Run and Delete itself on first Internet Contact</Description> | ||||
|     <URI>\Online_KMS_Activation_Script-Run_Once</URI> | ||||
|     <SecurityDescriptor>D:P(A;;FA;;;SY)(A;;FA;;;BA)(A;;FRFX;;;LS)(A;;FRFW;;;S-1-5-80-123231216-2592883651-3715271367-3753151631-4175906628)(A;;FR;;;S-1-5-4)</SecurityDescriptor> | ||||
|   </RegistrationInfo> | ||||
|   <Triggers> | ||||
|     <LogonTrigger> | ||||
|       <Enabled>true</Enabled> | ||||
|     </LogonTrigger> | ||||
|   </Triggers> | ||||
|   <Principals> | ||||
|     <Principal id="LocalSystem"> | ||||
|       <UserId>S-1-5-18</UserId> | ||||
|       <RunLevel>HighestAvailable</RunLevel> | ||||
|     </Principal> | ||||
|   </Principals> | ||||
|   <Settings> | ||||
|     <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy> | ||||
|     <DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries> | ||||
|     <StopIfGoingOnBatteries>false</StopIfGoingOnBatteries> | ||||
|     <AllowHardTerminate>true</AllowHardTerminate> | ||||
|     <StartWhenAvailable>true</StartWhenAvailable> | ||||
|     <RunOnlyIfNetworkAvailable>true</RunOnlyIfNetworkAvailable> | ||||
|     <IdleSettings> | ||||
|       <StopOnIdleEnd>false</StopOnIdleEnd> | ||||
|       <RestartOnIdle>false</RestartOnIdle> | ||||
|     </IdleSettings> | ||||
|     <AllowStartOnDemand>true</AllowStartOnDemand> | ||||
|     <Enabled>true</Enabled> | ||||
|     <Hidden>true</Hidden> | ||||
|     <RunOnlyIfIdle>false</RunOnlyIfIdle> | ||||
|     <DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession> | ||||
|     <UseUnifiedSchedulingEngine>true</UseUnifiedSchedulingEngine> | ||||
|     <WakeToRun>false</WakeToRun> | ||||
|     <ExecutionTimeLimit>PT10M</ExecutionTimeLimit> | ||||
|     <Priority>7</Priority> | ||||
|     <RestartOnFailure> | ||||
|       <Interval>PT2M</Interval> | ||||
|       <Count>3</Count> | ||||
|     </RestartOnFailure> | ||||
|   </Settings> | ||||
|   <Actions Context="LocalSystem"> | ||||
|     <Exec> | ||||
|       <Command>%ProgramData%\Online_KMS_Activation\Activate.cmd</Command> | ||||
|     <Arguments>Task</Arguments> | ||||
|     </Exec> | ||||
|   </Actions> | ||||
| </Task> | ||||
| :run_once: | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Echo all the missing files. | ||||
| ::  Written by @abbodi1406 (MDL) | ||||
|  | ||||
| :check | ||||
|  | ||||
| for %%# in (%1 %2) do (if not exist "!_work!\BIN\%%#" (if defined _miss (set "_miss=!_miss! %%#") else (set "_miss=%%#"))) | ||||
| if defined _miss ( | ||||
| %ELine% | ||||
| echo Following required file^(s^) is missing in 'BIN' folder. Aborting... | ||||
| echo: | ||||
| echo !_miss! | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Extract the text from batch script without character and file encoding issue | ||||
| ::  Thanks to @abbodi1406 | ||||
|  | ||||
| :Export | ||||
| %nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::%~3);" &exit/b | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
| @@ -0,0 +1,264 @@ | ||||
| @setlocal DisableDelayedExpansion | ||||
| @echo off | ||||
|  | ||||
| :: For unattended mode, run the script with /u parameter. | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| :: ======================================================================================================= | ||||
| :: | ||||
| ::   This script is a part of 'Microsoft Activation Scripts' project. | ||||
| :: | ||||
| ::   Homepages- | ||||
| ::   NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
| ::   GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
| ::   GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
| :: | ||||
| ::   Maintained by @WindowsAddict | ||||
| :: | ||||
| :: ======================================================================================================= | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| title Online KMS Complete Uninstall | ||||
| set Unattended= | ||||
| set _args= | ||||
| set _elev= | ||||
| set "_arg1=%~1" | ||||
| if not defined _arg1 goto :NoProgArgs | ||||
| set "_args=%~1" | ||||
| set "_arg2=%~2" | ||||
| if defined _arg2 set "_args=%~1 %~2" | ||||
| for %%A in (%_args%) do ( | ||||
| if /i "%%A"=="-el" set _elev=1 | ||||
| if /i "%%A"=="/u" set Unattended=1) | ||||
| :NoProgArgs | ||||
| for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G | ||||
| set "_psc=powershell" | ||||
| set "nul=1>nul 2>nul" | ||||
| set "EchoRed=%_psc% write-host -back Black -fore Red" | ||||
| set "EchoGreen=%_psc% write-host -back Black -fore Green" | ||||
| set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:" | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| for %%i in (powershell.exe) do if "%%~$path:i"=="" ( | ||||
| echo: &echo ==== ERROR ==== &echo: | ||||
| echo Powershell is not installed in the system. | ||||
| echo Aborting... | ||||
| goto UN_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| if %winbuild% LSS 7600 ( | ||||
| %ELine% | ||||
| echo Unsupported OS version Detected. | ||||
| echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent. | ||||
| goto UN_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Elevate script as admin and pass arguments and preventing loop | ||||
| ::  Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. | ||||
| ::  Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. | ||||
|  | ||||
| %nul% reg query HKU\S-1-5-19 && ( | ||||
|   goto :Passed | ||||
|   ) || ( | ||||
|   if defined _elev goto :E_Admin | ||||
| ) | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_vbsf=%temp%\admin.vbs" | ||||
| set _PSarg="""%~f0""" -el | ||||
| if defined _args set _PSarg="""%~f0""" -el """%_args%""" | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ( | ||||
| echo Set strArg=WScript.Arguments.Named | ||||
| echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) | ||||
| echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then | ||||
| echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) | ||||
| echo End If | ||||
| echo End With | ||||
| echo .Terminate | ||||
| echo End With | ||||
| echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 | ||||
| )>"!_vbsf!" | ||||
|  | ||||
| (%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && ( | ||||
| del /f /q "!_vbsf!" | ||||
| exit /b | ||||
| ) || ( | ||||
| del /f /q "!_vbsf!" | ||||
| %nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( | ||||
| exit /b | ||||
| ) || ( | ||||
| goto :E_Admin | ||||
| ) | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| :E_Admin | ||||
| %ELine% | ||||
| echo This script require administrator privileges. | ||||
| echo To do so, right click on this script and select 'Run as administrator'. | ||||
| goto UN_Done | ||||
|  | ||||
| :Passed | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| mode con: cols=98 lines=30 | ||||
| setlocal EnableDelayedExpansion | ||||
| set "key=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\taskcache\tasks" | ||||
|  | ||||
| reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && ( | ||||
| echo Deleting [Task] Online_KMS_Activation_Script-Renewal | ||||
| schtasks /delete /tn Online_KMS_Activation_Script-Renewal /f %nul% | ||||
| ) | ||||
|  | ||||
| reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && ( | ||||
| echo Deleting [Task] Online_KMS_Activation_Script-Run_Once | ||||
| schtasks /delete /tn Online_KMS_Activation_Script-Run_Once /f %nul% | ||||
| ) | ||||
|  | ||||
| If exist "%windir%\Online_KMS_Activation_Script\" ( | ||||
| echo Deleting [Folder] %windir%\Online_KMS_Activation_Script\ | ||||
| @RD /s /q "%windir%\Online_KMS_Activation_Script\" %nul% | ||||
| ) | ||||
|  | ||||
| If exist "%ProgramData%\Online_KMS_Activation\" ( | ||||
| echo Deleting [Folder] %ProgramData%\Online_KMS_Activation\ | ||||
| @RD /s /q "%ProgramData%\Online_KMS_Activation\" %nul% | ||||
| ) | ||||
|  | ||||
| if exist "%ProgramData%\Online_KMS_Activation.cmd" ( | ||||
| echo Deleting [File] %ProgramData%\Online_KMS_Activation.cmd | ||||
| del /f /q "%ProgramData%\Online_KMS_Activation.cmd" %nul% | ||||
| ) | ||||
|  | ||||
| reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" %nul% && ( | ||||
| echo Deleting [Context Menu Registry] HKCR\DesktopBackground\shell\Activate Windows - Office | ||||
| Reg delete "HKCR\DesktopBackground\shell\Activate Windows - Office" /f %nul% | ||||
| ) | ||||
|  | ||||
| echo: | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Clear-KMS-Cache.cmd   | ||||
| ::  https://forums.mydigitallife.net/posts/1511883 | ||||
| ::  Written by @abbodi1406 (MDL) | ||||
|  | ||||
| set "SysPath=%Windir%\System32" | ||||
| if exist "%Windir%\Sysnative\reg.exe" (set "SysPath=%Windir%\Sysnative") | ||||
| set "Path=%SysPath%;%Windir%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\" | ||||
| set "OSPP=SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform" | ||||
| set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" | ||||
| wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Windows 1>nul && (set SppHook=1) || (set SppHook=0) | ||||
| wmic path SoftwareLicensingProduct where (Description like '%%KMSCLIENT%%') get Name 2>nul | findstr /i Office 1>nul && (set SppHook=1) | ||||
| wmic path OfficeSoftwareProtectionService get Version >nul 2>&1 && (set OsppHook=1) || (set OsppHook=0) | ||||
| if %SppHook% NEQ 0 call :UN_cKMS SoftwareLicensingProduct SoftwareLicensingService SPP | ||||
| if %OsppHook% NEQ 0 call :UN_cKMS OfficeSoftwareProtectionProduct OfficeSoftwareProtectionService OSPP | ||||
| call :UN_cREG >nul 2>&1 | ||||
| echo: | ||||
| goto UN_Verify | ||||
|  | ||||
| :UN_cKMS | ||||
| echo Clearing %3 KMS Cache... | ||||
| set spp=%1 | ||||
| set sps=%2 | ||||
| for /f "tokens=2 delims==" %%G in ('"wmic path %spp% where (Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do (set app=%%G&call :UN_cAPP) | ||||
| for /f "tokens=2 delims==" %%A in ('"wmic path %sps% get Version /VALUE"') do set ver=%%A | ||||
| wmic path %sps% where version='%ver%' call ClearKeyManagementServiceMachine >nul 2>&1 | ||||
| wmic path %sps% where version='%ver%' call ClearKeyManagementServicePort >nul 2>&1 | ||||
| wmic path %sps% where version='%ver%' call DisableKeyManagementServiceDnsPublishing 1 >nul 2>&1 | ||||
| wmic path %sps% where version='%ver%' call DisableKeyManagementServiceHostCaching 1 >nul 2>&1 | ||||
| goto :eof | ||||
|  | ||||
| :UN_cAPP | ||||
| wmic path %spp% where ID='%app%' call ClearKeyManagementServiceMachine >nul 2>&1 | ||||
| wmic path %spp% where ID='%app%' call ClearKeyManagementServicePort >nul 2>&1 | ||||
| goto :eof | ||||
|  | ||||
| :UN_cREG | ||||
| reg delete "HKLM\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f | ||||
| reg delete "HKLM\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f | ||||
| reg delete "HKLM\%SPPk%" /f /v KeyManagementServiceName | ||||
| reg delete "HKLM\%SPPk%" /f /v KeyManagementServicePort | ||||
| reg delete "HKU\S-1-5-20\%SPPk%\55c92734-d682-4d71-983e-d6ec3f16059f" /f | ||||
| reg delete "HKU\S-1-5-20\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f | ||||
| reg delete "HKLM\%OSPP%\59a52881-a989-479d-af46-f275c6370663" /f | ||||
| reg delete "HKLM\%OSPP%\0ff1ce15-a989-479d-af46-f275c6370663" /f | ||||
| reg delete "HKLM\%OSPP%" /f /v KeyManagementServiceName | ||||
| reg delete "HKLM\%OSPP%" /f /v KeyManagementServicePort | ||||
| if %OsppHook% NEQ 1 ( | ||||
| reg delete "HKLM\%OSPP%" /f | ||||
| reg delete "HKU\S-1-5-20\%OSPP%" /f | ||||
| ) | ||||
| goto :eof | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :UN_Verify | ||||
|  | ||||
| set error_= | ||||
| reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Renewal" >nul && (set error_=1) | ||||
| reg query "%key%" /f Path /s | find /i "\Online_KMS_Activation_Script-Run_Once" >nul && (set error_=1) | ||||
| If exist "%windir%\Online_KMS_Activation_Script\" (set error_=1) | ||||
| if exist "%ProgramData%\Online_KMS_Activation\" (set error_=1) | ||||
|  | ||||
| reg query "HKCR\DesktopBackground\shell\Activate Windows - Office" >nul 2>&1 && (set error_=1) | ||||
| if exist "%ProgramData%\Online_KMS_Activation.cmd" (set error_=1) | ||||
|  | ||||
| if defined error_ ( | ||||
| echo ______________________________________ | ||||
| %ELine% | ||||
| echo Try Again. | ||||
| echo ______________________________________ | ||||
| ) else ( | ||||
| echo _________________________________________________________________ | ||||
| echo: | ||||
| %EchoGreen% Online KMS Complete Uninstall is done successfully. | ||||
| echo _________________________________________________________________ | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :UN_Done | ||||
|  | ||||
| echo: | ||||
| if defined Unattended ( | ||||
| echo Exiting in 3 seconds... | ||||
| if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3) | ||||
| exit /b | ||||
| ) | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
| @@ -0,0 +1,657 @@ | ||||
| ==================================================================================================== | ||||
|  | ||||
|    Online KMS Activation script is just a fork of @abbodi1406's KMS_VL_ALL Project. | ||||
|    KMS_VL_ALL homepage: https://forums.mydigitallife.net/posts/838808 | ||||
|  | ||||
|    This fork was made to avoid having any KMS binary files and system can be activated using  | ||||
|    some manual commands or transparent batch script files. | ||||
|  | ||||
|    This script is a part of 'Microsoft Activation Scripts' project. | ||||
|  | ||||
|    Homepages- | ||||
|    NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
|    GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
|    GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
|  | ||||
|    Maintained by @WindowsAddict | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Online KMS Activation: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - This KMS script skips the activation of any permanently / KMS38-activated product. | ||||
|  - This KMS script can activate both Retail and VL Windows / Server installation. | ||||
|  - This KMS script can activate C2R Retail and VL Office, but not 2010/2013 MSI Retail Office.  | ||||
|  | ||||
|  ---------------------- | ||||
|  - Activation Renewal | ||||
|  ---------------------- | ||||
|  | ||||
|  - KMS activates Windows / Server / Office for 180 Days. (For Core/ProWMC edition it is 30/45 Days) | ||||
|  | ||||
|  - By design, using the KMS activation method, the system contacts the registered server every 7  | ||||
|    days, and if contacted successfully it will automatically renew and reset the activation for the  | ||||
|    the full period of 180 days again, starting from the day of successful contact. | ||||
|    If the system cannot contact the server, it will be deactivated after 180 days and it will  | ||||
|    remain deactivated until contact can be restored. | ||||
|     | ||||
|  - The KMS servers I've added have been working steadily for two to three years, but there can be  | ||||
|    no guarantee that they will remain online indefinitely. If a registered server goes  | ||||
|    down, you will need to create a renewal task, or do a manual renewal, for the lifetime of the  | ||||
|    activation. | ||||
|  | ||||
|    There are 3 ways you can renew the KMS server and as a result, renew the activation. | ||||
|  | ||||
|  1- Activate.cmd | ||||
|  | ||||
|    Run this file whenever the system needs activation. Depending upon the particular (never fully-knowable) | ||||
|    circumstances, a successful activation may last for a period of a MINIMUM of 180 days,  | ||||
|    or a maximum of the full life of the machine it's running on, and you may never need to run it again. | ||||
|  | ||||
|  2- Manual Renewal via Desktop Context Menu | ||||
|  | ||||
|    This method is exactly same as above but here we put the following files in, | ||||
|    C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe | ||||
|    C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe | ||||
|    C:\ProgramData\Online_KMS_Activation\Activate.cmd | ||||
|    C:\ProgramData\Online_KMS_Activation\Info.txt | ||||
|  | ||||
|    and create registry entries in, | ||||
|    HKCR\DesktopBackground\shell\Activate Windows - Office | ||||
|    HKCR\DesktopBackground\shell\Activate Windows - Office\command | ||||
|  | ||||
|    It creates an easy to reach Desktop context menu for the manual activation renewal. | ||||
|  | ||||
|  3- Automatic Renewal via Task Scheduler | ||||
|     | ||||
|    This method put the following files in, | ||||
|    C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe | ||||
|    C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe | ||||
|    C:\ProgramData\Online_KMS_Activation\Activate.cmd | ||||
|    C:\ProgramData\Online_KMS_Activation\Info.txt | ||||
|  | ||||
|    And creates a scheduled task to run the script every 7 days. | ||||
|  | ||||
|    The scheduled task runs only if the system is connected to the Internet. | ||||
|    With this method, the Activation task can also be created which will run on the system login | ||||
|    and after successful activation, this task will delete itself. | ||||
|    | ||||
|    IMPORTANT NOTE - Some sensitive AV's may flag the Automatic Renewal via the Task, and not  | ||||
|    because of KMS, because for them it's suspicious to run long scripts in the background as Tasks. | ||||
|  | ||||
|    It's recommended to set exclusions in Antivirus for | ||||
|    C:\ProgramData\Online_KMS_Activation\Activate.cmd | ||||
|    or | ||||
|    use the 1st or 2nd option for activation renewal. | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|  ---------------------- | ||||
|  - Remarks | ||||
|  ---------------------- | ||||
|  | ||||
|  - This Online KMS Activation provides immediate global activation for Windows 8.1 and Windows 10, which  | ||||
|    means that in the following three scenarios, the system will self-activate when connected to the  | ||||
|    internet, and also means that users will not need to manually run the activation script again. | ||||
|  | ||||
|    Scenario 1: Subsequent installation or alteration of any 2013, 2016, or 2019 Volume License  | ||||
|                (VL) Office product. | ||||
|    Scenario 2: Windows edition change (with GVLK). | ||||
|    Scenario 3: Date change, system hardware change, etc. | ||||
|  | ||||
|  - What is left in the system in the activation process? | ||||
|    - Activate.cmd | ||||
|      After activation, it leaves only the KMS Server name in the registry, which helps you to get the | ||||
|      above-mentioned global activation feature whereby the system auto-renews the activations, | ||||
|      so it's a good thing if you leave the server name in the registry. | ||||
|      However, you can clear this registered KMS Server name upon activation, and do that, open  | ||||
|      the script with notepad and set Clear-KMS-Cache to 1 from 0. | ||||
|      What is left in the system when Renewal methods are installed, has been mentioned. | ||||
|  | ||||
|  - This script includes the most-stable KMS servers (6+) list. The server selection process is  | ||||
|    fully automatic. You don't need to worry about the server's availability. | ||||
|  | ||||
|  - If your system date is incorrect (beyond 180 days) and you are offline, the system will be  | ||||
|    deactivated, but will automatically reactivate when you correct the system date.  | ||||
|  | ||||
|  - Why should you choose the Online KMS activation method over offline KMS? | ||||
|    The main benefit of Online KMS activation is that it doesn't need any KMS binary file and system | ||||
|    can be activated using some manual commands or transparent batch script files. | ||||
|    So this is for those who don't like/have difficulties/trust issue in offline KMS because of its  | ||||
|    binary files and antivirus detections. | ||||
|  | ||||
|    If you prefer offline KMS then checkout an open-source activator,  | ||||
|    @abbodi1406's KMS_VL_ALL   https://forums.mydigitallife.net/posts/838808 | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|  -------------------------------------- | ||||
|  - Office C2R Retail to VL conversion | ||||
|  -------------------------------------- | ||||
|  | ||||
|    This activation script will convert Office C2R Retail to Volume without needing separate tools. | ||||
|     | ||||
|    - Supports: Office 365, Office 2019, Office 2016, Office 2013 | ||||
|    - Activated Retail products will be skipped from conversion | ||||
|      this includes valid Office 365 subscriptions, or perpetual Office (MAK, OEM, MSDN, Retail..) | ||||
|    - Current Office licenses will be cleaned up (unless retail-activated Office detected) | ||||
|      then, proper Volume licenses will be installed based on the detected Product IDs | ||||
|    - Office Mondo suite cover all products, if detected, only its licenses will be installed | ||||
|    - Office 365 products will be converted with Mondo licenses by default   | ||||
|      also, corresponding Office 365 Retail Grace Key will be installed | ||||
|    - Office 2016 products will be converted with corresponding Office 2019 licenses | ||||
|    - Office Professional suite will be converted with Office 2019 ProPlus licenses | ||||
|    - Office HomeBusiness/HomeStudent suites will be converted with Office 2019 Standard licenses | ||||
|    - If Office 2019 RTM licenses are not detected, Office 2016 licenses will be used instead | ||||
|    - Office 2013 products follow the same logic but handled separately | ||||
|    - If main products SKUs are detected, single apps licenses will not be installed to avoid duplication | ||||
|     | ||||
|    - SKUs:   | ||||
|    O365ProPlus, O365Business, O365SmallBusPrem, O365HomePrem, O365EduCloud   | ||||
|    ProPlus, Professional, Standard, HomeBusiness, HomeStudent, Visio, Project | ||||
|     | ||||
|    * Apps:   | ||||
|    Access, Excel, InfoPath, Onenote, Outlook, PowerPoint, Publisher, SkypeForBusiness, Word,  | ||||
|    Groove (OneDrive for Business) | ||||
|     | ||||
|    - O365ProPlus, O365Business, O365SmallBusPrem, ProPlus cover all apps   | ||||
|    Professional cover all apps except SkypeForBusiness   | ||||
|    Standard cover all apps except Access, SkypeForBusiness | ||||
|     | ||||
|    ## Notice | ||||
|     | ||||
|    - On Windows 7, Office 2016/2019 licensing service require Universal C Runtime to work correctly | ||||
|    - UCRT is available in the latest Monthly Rollup, or the separate update KB3118401 | ||||
|    - Additionally, Office programs themselves require recent Windows 7 updates to start properly | ||||
|  | ||||
| ==================================================================================================== | ||||
|    File Details: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe                   Virus Total = 0/66 | ||||
|    39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe                   Virus Total = 1/66 | ||||
|  | ||||
|    Virus Total Report Date: 12-11-2019 | ||||
|     | ||||
|    These files are official Microsoft files and in this script, these are used in  | ||||
|    cleaning office license in C2R Retail office to VL conversion process. | ||||
|     | ||||
|    The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab | ||||
|    You can get the original file here https://s.put.re/WFuXpyWA.zip | ||||
|  | ||||
| ==================================================================================================== | ||||
|  | ||||
|    How does it work? | ||||
|    Is it safe? | ||||
|  | ||||
|    https://pastebin.com/raw/7Xyaf15Z | ||||
|    Mirror: | ||||
|    https://textuploader.com/1dg8d/raw | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Products Compatibility: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    Supported Products: [Only Volume-capable] | ||||
|  | ||||
|    Windows 8 / 8.1 / 10 (all official editions, except Windows 10 S)   | ||||
|    Windows 7 (Enterprise /N/E, Professional /N/E, Embedded Standard/POSReady/ThinPC)   | ||||
|    Windows Server 2008 R2 / 2012 / 2012 R2 / 2016 / 2019   | ||||
|    Office Volume 2010 / 2013 / 2016 / 2019 | ||||
|     | ||||
|    [Activation script will convert Office C2R Retail O365/2013/2016/2019 to Volume] | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    Unsupported Products: | ||||
|  | ||||
|    Office Retail [Office MSI Retail 2010/2013] | ||||
|    Windows Editions which do not support KMS activation by design:   | ||||
|    Windows Evaluation Editions   | ||||
|    Windows 7 (Starter, HomeBasic, HomePremium, Ultimate)   | ||||
|    Windows 10 (Cloud "S", IoTEnterprise, IoTEnterpriseS, ProfessionalSingleLanguage... etc)   | ||||
|    Windows Server (Server Foundation, Storage Server, Home Server 2011... etc)  | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    These editions are only KMS-activatable for 45 days at max: | ||||
|    Windows 10 Home edition variants   | ||||
|    Windows 8.1 Core edition variants, Pro with Media Center, Pro Student | ||||
|  | ||||
|    These editions are only KMS-activatable for 30 days at max: | ||||
|    Windows 8 Core edition variants, Pro with Media Center | ||||
|  | ||||
|    Notes:   | ||||
|    Supported Windows products do need volume conversion, only the GVLK (KMS key) is needed, which  | ||||
|    the script will install accordingly. | ||||
|    KMS Activation works in all (MBR, GPT, UEFI, BIOS) systems. | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Switches in the Script: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    * Applies to MAS Separate Files version | ||||
|  | ||||
|  - For unattended mode, run the scripts with /u parameter. | ||||
|  | ||||
| Activate.cmd /u | ||||
| Uninstall.cmd /u | ||||
|  | ||||
| To create Renewal Task in unattended mode, | ||||
| Renewal_Setup.cmd /rt | ||||
|  | ||||
| To create Renewal and Activation Task in unattended mode, | ||||
| Renewal_Setup.cmd /rat | ||||
|  | ||||
| To create desktop context menu in unattended mode, | ||||
| Renewal_Setup.cmd /dcm | ||||
|  | ||||
| To skip Windows activation in renewal script, | ||||
| Renewal_Setup.cmd /rat /swa | ||||
| or | ||||
| Renewal_Setup.cmd /dcm /swa | ||||
|  | ||||
|  ---------------------------------------------------------------------- | ||||
|  | ||||
|  - Activate.cmd | ||||
|  | ||||
|    - To run the script in Debug mode to find out the cause of errors in activation or just details, | ||||
|      search "set _Debug=" and change the value from 0 to 1.  | ||||
|  | ||||
|    - To replace KMS38 activation with KMS activation, search "set SkipKMS38=" and change the value  | ||||
|      from 1 to 0.  | ||||
|  | ||||
|    - To skip Windows activation, search "set ActWindows=" and change the value from 1 to 0. | ||||
|    - To skip Office activation, search "set ActOffice=" and change the value from 1 to 0. | ||||
|      - This is not effective if Windows and/or Office installation is already Volume (GVLK installed) | ||||
|      - In [Online KMS + HWID] $OEM$ preactivation, Windows KMS activation is turned off  | ||||
|        by default. | ||||
|  | ||||
|    - To turn OFF auto conversion for Office C2R Retail to Volume, search "set AutoR2V=" and  | ||||
|      change the value from 1 to 0. | ||||
|  | ||||
|    - To set the script to use only one specific KMS server address, search "set KMS_Server=" | ||||
|      paste the server address after the = sign. | ||||
|  | ||||
|    - To clear the KMS cache, search "set Clear-KMS-Cache=" and change the value from 0 to 1. | ||||
|      - Registered KMS server address (cache) enables the system to automatically renew the license  | ||||
|        (for next 180 days) every 7 days, as long as the server is online. | ||||
|      - This process is the same as how the legal KMS works, so no security program will flag  | ||||
|        this behavior. | ||||
|      - Changing this option here won't have any effect if manual (Desktop Context menu) and/or auto,  | ||||
|        renewal activation script is installed. [default (0)]. | ||||
|      - I recommend leaving this option as default (0). | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Manual Activation Process: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - Prerequisite: | ||||
|  | ||||
|    online Public KMS Server List:  | ||||
|  | ||||
|    kms.srv.crsoo.com | ||||
|    kms.loli.beer | ||||
|    kms8.MSGuides.com | ||||
|     | ||||
|    kms9.MSGuides.com | ||||
|    kms.zhuxiaole.org | ||||
|    kms.lolico.moe | ||||
|    kms.moeclub.org | ||||
|  | ||||
|    Generic Volume License Key (GVLK): | ||||
|    Thanks to @abbodi1406 for the Key collection. | ||||
|  | ||||
|         GVLK                        Edition                 | ||||
|     | ||||
|    Windows 10 | ||||
|     | ||||
|    TX9XD-98N7V-6WMQ6-BX7FG-H8Q99    Home | ||||
|    3KHY7-WNT83-DGQKR-F7HPR-844BM    Home N | ||||
|    7HNRX-D7KGG-3K4RQ-4WPJ4-YTDFH    Home Single Language | ||||
|    PVMJN-6DFY6-9CCP6-7BKTT-D3WVR    Home China | ||||
|    W269N-WFGWX-YVC9B-4J6C9-T83GX    Pro | ||||
|    MH37W-N47XK-V7XM9-C7227-GCQG9    Pro N | ||||
|    6TP4R-GNPTD-KYYHQ-7B7DP-J447Y    Pro Education | ||||
|    YVWGF-BXNMC-HTQYQ-CPQ99-66QFC    Pro Education N | ||||
|    NRG8B-VKK3Q-CXVCJ-9G2XF-6Q84J    Pro Workstation | ||||
|    9FNHH-K3HBT-3W4TD-6383H-6XYWF    Pro Workstation N | ||||
|    NW6C2-QMPVW-D7KKK-3GKT6-VCFB2    Education | ||||
|    2WH4N-8QGBV-H22JP-CT43Q-MDWWJ    Education N | ||||
|    NPPR9-FWDCX-D2C8J-H872K-2YT43    Enterprise | ||||
|    DPH2V-TTNVB-4X9Q3-TJR4H-KHJW4    Enterprise N | ||||
|    YYVX9-NTFWV-6MDM3-9PT4T-4M68B    Enterprise G | ||||
|    44RPN-FTY23-9VTTB-MP9BX-T84FV    Enterprise G N | ||||
|    WNMTR-4C88C-JK8YV-HQ7T2-76DF9    Enterprise 2015 LTSB | ||||
|    2F77B-TNFGY-69QQF-B8YKP-D69TJ    Enterprise 2015 LTSB N | ||||
|    DCPHK-NFMTC-H88MJ-PFHPY-QJ4BJ    Enterprise 2016 LTSB | ||||
|    QFFDN-GRT3P-VKWWX-X7T3R-8B639    Enterprise 2016 LTSB N | ||||
|    M7XTQ-FN8P6-TTKYV-9D4CC-J462D    Enterprise LTSC 2019 | ||||
|    92NFX-8DJQP-P6BBQ-THF9C-7CG2H    Enterprise LTSC 2019 N | ||||
|    CPWHC-NT2C7-VYW78-DHDB2-PG3GK    Enterprise for Virtual Desktops | ||||
|    7NBT4-WGBQX-MP4H7-QXFF8-YP3KX    Remote Server | ||||
|    NBTWJ-3DR69-3C4V8-C26MC-GQ9M6    Lean | ||||
|     | ||||
|    Windows 8.1 | ||||
|     | ||||
|    M9Q9P-WNJJT-6PXPY-DWX8H-6XWKK    Core | ||||
|    7B9N3-D94CG-YTVHR-QBPX3-RJP64    Core N | ||||
|    BB6NG-PQ82V-VRDPW-8XVD2-V8P66    Core Single Language | ||||
|    NCTT7-2RGK8-WMHRF-RY7YQ-JTXG3    Core China | ||||
|    XYTND-K6QKT-K2MRH-66RTM-43JKP    Core ARM | ||||
|    GCRJD-8NW9H-F2CDX-CCM8D-9D6T9    Pro | ||||
|    HMCNV-VVBFX-7HMBH-CTY9B-B4FXY    Pro N | ||||
|    789NJ-TQK6T-6XTH8-J39CJ-J8D3P    Pro with Media Center | ||||
|    MHF9N-XY6XB-WVXMC-BTDCT-MKKG7    Enterprise | ||||
|    TT4HM-HN7YT-62K67-RGRQJ-JFFXW    Enterprise N | ||||
|    NMMPB-38DD4-R2823-62W8D-VXKJB    Embedded Industry Pro | ||||
|    FNFKF-PWTVT-9RC8H-32HB2-JB34X    Embedded Industry Enterprise | ||||
|    VHXM3-NR6FT-RY6RT-CK882-KW2CJ    Embedded Industry Automotive | ||||
|    3PY8R-QHNP9-W7XQD-G6DPH-3J2C9    with Bing | ||||
|    Q6HTR-N24GM-PMJFP-69CD8-2GXKR    with Bing N | ||||
|    KF37N-VDV38-GRRTV-XH8X6-6F3BB    with Bing Single Language | ||||
|    R962J-37N87-9VVK2-WJ74P-XTMHR    with Bing China | ||||
|    MX3RK-9HNGX-K3QKC-6PJ3F-W8D7B    Pro for Students | ||||
|    TNFGH-2R6PB-8XM3K-QYHX2-J4296    Pro for Students N | ||||
|     | ||||
|    Windows 8 | ||||
|     | ||||
|    BN3D2-R7TKB-3YPBD-8DRP2-27GG4    Core | ||||
|    8N2M2-HWPGY-7PGT9-HGDD8-GVGGY    Core N | ||||
|    2WN2H-YGCQR-KFX6K-CD6TF-84YXQ    Core Single Language | ||||
|    4K36P-JN4VD-GDC6V-KDT89-DYFKP    Core China | ||||
|    DXHJF-N9KQX-MFPVR-GHGQK-Y7RKV    Core ARM | ||||
|    NG4HW-VH26C-733KW-K6F98-J8CK4    Pro | ||||
|    XCVCF-2NXM9-723PB-MHCB7-2RYQQ    Pro N | ||||
|    GNBB8-YVD74-QJHX6-27H4K-8QHDG    Pro with Media Center | ||||
|    32JNW-9KQ84-P47T8-D8GGY-CWCK7    Enterprise | ||||
|    JMNMF-RHW7P-DMY6X-RF3DR-X2BQT    Enterprise N | ||||
|    RYXVT-BNQG7-VD29F-DBMRY-HT73M    Embedded Industry Pro | ||||
|    NKB3R-R2F8T-3XCDP-7Q2KW-XWYQ2    Embedded Industry Enterprise | ||||
|     | ||||
|    Windows 7 | ||||
|     | ||||
|    FJ82H-XT6CR-J8D7P-XQJJ2-GPDD4    Professional | ||||
|    MRPKT-YTG23-K7D7T-X2JMM-QY7MG    Professional N | ||||
|    W82YF-2Q76Y-63HXB-FGJG9-GF7QX    Professional E | ||||
|    33PXH-7Y6KF-2VJC9-XBBR8-HVTHH    Enterprise | ||||
|    YDRBP-3D83W-TY26F-D46B2-XCKRJ    Enterprise N | ||||
|    C29WB-22CC8-VJ326-GHFJW-H9DH4    Enterprise E | ||||
|    YBYF6-BHCR3-JPKRB-CDW7B-F9BK4    Embedded POSReady 7 | ||||
|    XGY72-BRBBT-FF8MH-2GG8H-W7KCW    Embedded Standard | ||||
|    73KQT-CD9G6-K7TQG-66MRP-CQ22C    Embedded ThinPC | ||||
|     | ||||
|    Windows Server 2019 | ||||
|     | ||||
|    N69G4-B89J2-4G8F4-WWYCC-J464C    Standard | ||||
|    WMDGN-G9PQG-XVVXX-R3X43-63DFG    Datacenter | ||||
|    WVDHN-86M7X-466P6-VHXV7-YY726    Essentials | ||||
|    FDNH6-VW9RW-BXPJ7-4XTYG-239TB    Azure Core | ||||
|    N2KJX-J94YW-TQVFB-DG9YT-724CC    Standard ACor | ||||
|    6NMRW-2C8FM-D24W7-TQWMY-CWH2D    Datacenter ACor | ||||
|    GRFBW-QNDC4-6QBHG-CCK3B-2PR88    ServerARM64 | ||||
|     | ||||
|    Windows Server 2016 | ||||
|     | ||||
|    WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY    Standard | ||||
|    CB7KF-BWN84-R7R2Y-793K2-8XDDG    Datacenter | ||||
|    JCKRF-N37P4-C2D82-9YXRT-4M63B    Essentials | ||||
|    QN4C6-GBJD2-FB422-GHWJK-GJG2R    Cloud Storage | ||||
|    VP34G-4NPPG-79JTQ-864T4-R3MQX    Azure Core | ||||
|    PTXN8-JFHJM-4WC78-MPCBR-9W4KR    Standard ACor | ||||
|    2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG    Datacenter ACor | ||||
|    K9FYF-G6NCK-73M32-XMVPY-F9DRR    ServerARM64 | ||||
|     | ||||
|    Windows Server 2012 R2 | ||||
|     | ||||
|    D2N9P-3P6X9-2R39C-7RTCD-MDVJX    Standard | ||||
|    W3GGN-FT8W3-Y4M27-J84CP-Q3VJ9    Datacenter | ||||
|    KNC87-3J2TX-XB4WP-VCPJV-M4FWM    Essentials | ||||
|    3NPTF-33KPT-GGBPR-YX76B-39KDD    Cloud Storage | ||||
|     | ||||
|    Windows Server 2012 | ||||
|     | ||||
|    XC9B7-NBPP2-83J2H-RHMBY-92BT4    Standard | ||||
|    48HP8-DN98B-MYWDG-T2DCC-8W83P    Datacenter | ||||
|    HM7DN-YVMH3-46JC3-XYTG7-CYQJJ    MultiPoint Standard | ||||
|    XNH6W-2V9GX-RGJ4K-Y8X6F-QGJ2G    MultiPoint Premium | ||||
|     | ||||
|    Windows Server 2008 R2 | ||||
|     | ||||
|    6TPJF-RBVHG-WBW2R-86QPH-6RTM4    Web | ||||
|    TT8MH-CG224-D3D7Q-498W2-9QCTX    HPC | ||||
|    YC6KT-GKW9T-YTKYR-T4X34-R7VHC    Standard | ||||
|    74YFP-3QFB3-KQT8W-PMXWJ-7M648    Datacenter | ||||
|    489J6-VHDMP-X63PK-3K798-CPX3Y    Enterprise | ||||
|    GT63C-RJFQ3-4GMB6-BRFB9-CB83V    Itanium | ||||
|    736RG-XDKJK-V34PF-BHK87-J6X3K    MultiPoint Server | ||||
|       | ||||
|    ---------------------------------------------------------------------------------------------------- | ||||
|     | ||||
|    ---------------------------------------------- | ||||
|     Windows /Server (All VL Supported Versions)  | ||||
|    ---------------------------------------------- | ||||
|     | ||||
|  - Connect to the internet.  | ||||
|  - Open CMD as Admin, and enter the following listed commands in the sequence in which they are given. | ||||
|  - Enter Generic Volume License Key (GVLK) (Replace %key% with the key from above list) with  | ||||
|    the following command: | ||||
|  | ||||
| slmgr.vbs /ipk %key% | ||||
|  | ||||
|  - Register the KMS Server, (Replace %server% with one of the above-listed servers)  | ||||
|    (If activation is unsuccessful then try a different server) with the following command: | ||||
|  | ||||
| slmgr.vbs /skms %server% | ||||
|  | ||||
|  - Activate Windows with the following command: | ||||
|     | ||||
| slmgr.vbs /ato | ||||
|     | ||||
|  - Check Activation Status with the following command: | ||||
|  | ||||
| slmgr.vbs /dli | ||||
|     | ||||
|  - Check Activation Expiry Date with the following command: | ||||
|     | ||||
| slmgr.vbs /xpr | ||||
|     | ||||
|  - Clear the name of the KMS server (Optional) (It'll prevent activation auto-renewal) with the following command:  | ||||
|     | ||||
| slmgr.vbs /ckms | ||||
|     | ||||
|  - Done.  | ||||
|  | ||||
|    ---------------------------------------------------------------------------- | ||||
|     Office VL Activation (Office 2010, 2013, 2016, 2019) - | ||||
|    ---------------------------------------------------------------------------- | ||||
|     | ||||
|  - Connect to the internet.  | ||||
|  - Open CMD as Admin, and enter the following listed commands in the sequence in which they are given. | ||||
|  - If Office is installed as VL (Volume License) then there is no need to enter its key.  | ||||
|  - If Office is installed as Retail, then you need to convert it to VL, by using C2R-R2V by @abbodi1406 | ||||
|    https://forums.mydigitallife.net/posts/1150042  | ||||
|  | ||||
|  - Change to the directory where Office is installed. | ||||
|    If your system is 32-bit Office on 32-bit Windows or 64-bit Office on 64-bit Windows use the following: | ||||
|     | ||||
|    For Office 2016 or 2019 enter the command: | ||||
|     | ||||
| cd "C:\Program Files\Microsoft Office\Office16" | ||||
|     | ||||
|    For Office 2013 enter the command: | ||||
|     | ||||
| cd "C:\Program Files\Microsoft Office\Office15" | ||||
|     | ||||
|    For Office 2010 enter the command: | ||||
|     | ||||
| cd "C:\Program Files\Microsoft Office\Office14" | ||||
|     | ||||
|    -------------------------------------------------------------------------------- | ||||
|     | ||||
|    If your system is 32-bit Office on 64-bit Windows, use the following: | ||||
|     | ||||
|    For Office 2016 or 2019 enter the command: | ||||
|     | ||||
| cd "C:\Program Files (x86)\Microsoft Office\Office16" | ||||
|     | ||||
|    For Office 2013 enter the command: | ||||
|     | ||||
| cd "C:\Program Files (x86)\Microsoft Office\Office15" | ||||
|     | ||||
|    For Office 2010 enter the command: | ||||
|     | ||||
| cd "C:\Program Files (x86)\Microsoft Office\Office14" | ||||
|     | ||||
|    -------------------------------------------------------------------------------- | ||||
|     | ||||
|  - Once all of that is done correctly, you must register the KMS Server, (In the following, | ||||
|    replace %server% with one of the above-listed servers.) (If activation is unsuccessful  | ||||
|    then try a different server.) with the following command: | ||||
|  | ||||
| cscript ospp.vbs /sethst:%server%  | ||||
|  | ||||
|  - Activate Office with the following command:  | ||||
|     | ||||
| cscript ospp.vbs /act  | ||||
|     | ||||
|  - Check Activation Status with the following command: | ||||
|     | ||||
| cscript ospp.vbs /dstatus | ||||
|   | ||||
|  - Clear the name of the KMS server, (Optional) (It'll prevent activation auto-renewal) | ||||
|    with the appropriate following commands: | ||||
|     | ||||
|    To clear the KMS Server name for Office in Win 7, or Office 2010 on Win 8 or Win 10, | ||||
|    enter each of the following commands in the sequence which is given: | ||||
|     | ||||
| set "OSPP=HKLM\SOFTWARE\Microsoft\OfficeSoftwareProtectionPlatform" | ||||
| reg delete "%OSPP%" /f /v KeyManagementServiceName 2>nul | ||||
| reg delete "%OSPP%" /f /v KeyManagementServicePort 2>nul | ||||
| reg delete "%OSPP%\59a52881-a989-479d-af46-f275c6370663" /f 2>nul | ||||
| reg delete "%OSPP%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul | ||||
|  | ||||
|    To clear the KMS server name for Office (except Office 2010) on Win 8 or Win 10, run the following command: | ||||
|  | ||||
| set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" | ||||
| reg delete "HKLM\%SPPk%" /f /v KeyManagementServiceName 2>nul | ||||
| reg delete "HKLM\%SPPk%" /f /v KeyManagementServicePort 2>nul | ||||
| reg delete "HKLM\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul | ||||
| reg delete "HKEY_USERS\S-1-5-20\%SPPk%\0ff1ce15-a989-479d-af46-f275c6370663" /f 2>nul | ||||
|  | ||||
|  - Done.  | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Troubleshoot activation issues: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - Make sure the Internet is connected. | ||||
|  | ||||
|  - Reboot the system and run the activation script, and if unsuccessful, | ||||
|    Open CMD as Admin, and enter the following command: (For Windows 10\8\8.1) | ||||
|  | ||||
| Dism /online /Cleanup-Image /RestoreHealth | ||||
|  | ||||
|    - After its done, reboot the system and open CMD as Admin and enter the following command: | ||||
|  | ||||
| sfc.exe /scannow | ||||
|  | ||||
|    - After it's done, reboot the system and run the activation script, and if unsuccessful,  | ||||
|      open CMD as administrator again, and enter the following command: | ||||
|  | ||||
| slmgr.vbs /rearm | ||||
|  | ||||
|    - Reboot the system and run the activation script, and if unsuccessful,  | ||||
|      You may try to rebuild licensing Tokens.dat as suggested in https://support.microsoft.com/en-us/help/2736303 | ||||
|      (this will require to repair Office afterwards.) | ||||
|  | ||||
|    - Reboot the system and run the activation script, and if unsuccessful,  | ||||
|      Try KMS_VL_ALL by @abbodi1406 https://forums.mydigitallife.net/posts/838808/ | ||||
|      If still unsuccessful, it may be time to start over from the very beginning  | ||||
|      and do a clean install of windows :D  | ||||
|  | ||||
|    ------------------------------- | ||||
|  | ||||
|    - If you have issues with Office activation, or got undesired or duplicate licenses (e.g. Office 2016 and 2019): | ||||
|      Download Office Scrubber pack from https://forums.mydigitallife.net/posts/1466365/ | ||||
|      To get rid of any conflicted licenses, run Uninstall_Licenses.cmd, then you must start any  | ||||
|      Office program to repair the licensing. You may also try Uninstall_Keys.cmd for similar manner. | ||||
|  | ||||
|      If you wish to remove Office and leftovers completely and start clean: | ||||
|      Uninstall Office normally from Control Panel / Programs and Feature then run Full_Scrub.cmd | ||||
|      afterwards, install new Office. | ||||
|  | ||||
|    - Can't activate Windows 7 with KMS: [Error 0xC004F035] | ||||
|      Some OEM licensed computers cannot be activated with KMS on WINDOWS 7. | ||||
|      Quote from the MS page https://tinyurl.com/yy8wfu5m | ||||
|      'Computers obtained through OEM channels that have an ACPI_SLIC table in the (BIOS) are  | ||||
|      required to have a valid Windows marker in the same ACPI_SLIC table. | ||||
|      ---Computers that have an ACPI_SLIC table without a valid Windows marker generate an error  | ||||
|      when a volume edition of Windows 7 is installed.' | ||||
|  | ||||
| ==================================================================================================== | ||||
|    Credits: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    @abbodi1406   Activate.cmd (KMS_VL_ALL) | ||||
|                  https://forums.mydigitallife.net/posts/838808 | ||||
|                  (* With the great help from @RPO, Forked it to work with Multi KMS Servers, | ||||
|                  Renewal task, Desktop context menu, $OEM$, etc for Online KMS) | ||||
|  | ||||
|                  Clear-KMS-Cache.cmd | ||||
|                  https://forums.mydigitallife.net/posts/1511883 | ||||
|                  (*Applied it as it is) | ||||
|  | ||||
|                  Check-Activation-Status-wmic.cmd | ||||
|                  https://forums.mydigitallife.net/posts/838808 | ||||
|                  (*Applied it as it is) | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    Online Public KMS Servers: | ||||
|  | ||||
|    kms.srv.crsoo.com | ||||
|    kms.loli.beer | ||||
|    kms8.MSGuides.com | ||||
|  | ||||
|    kms9.MSGuides.com | ||||
|    kms.zhuxiaole.org | ||||
|    kms.lolico.moe | ||||
|    kms.moeclub.org | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    Special Thanks to @RPO | ||||
|  | ||||
|    For providing great support in making and improvements of this script, | ||||
|    To name a few, | ||||
|  | ||||
|    Internet test with Powershell (No ping) | ||||
|    KMS server 1688 port test with Powershell | ||||
|    Multi KMS server integration | ||||
|    Scheduled task to renew the activation | ||||
|                      | ||||
|    And for solving countless problems in this batch script. | ||||
|     | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    Kind Help:- | ||||
|  | ||||
|    Thanks for having my back and answering all of my queries. (In no particular order) | ||||
|  | ||||
|    @AveYo aka @BAU, @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 | ||||
|  | ||||
|    @BorrowedWifi For providing support in fixing English grammar errors in the Read Me. | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    This script is a part of 'Microsoft Activation Scripts' project. | ||||
|  | ||||
|    Homepages- | ||||
|    NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
|    GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
|    GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
|  | ||||
|    Maintained by @WindowsAddict | ||||
|  | ||||
| ==================================================================================================== | ||||
							
								
								
									
										12
									
								
								MAS_1.4/Separate-Files-Version/Activators/ReadMe.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								MAS_1.4/Separate-Files-Version/Activators/ReadMe.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| ---------------------------------------------------------------------------------------------- | ||||
| Activation Type       Supported Product             Activation Period | ||||
| ---------------------------------------------------------------------------------------------- | ||||
|  | ||||
| Digital License    -  Windows 10                 -  Permanent | ||||
| KMS38              -  Windows 10 / Server        -  Until the year 2038 | ||||
| Online KMS         -  Windows / Server / Office  -  For 180 Days, renewal task needs to be  | ||||
|                                                     created for lifetime auto activation. | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------- | ||||
|  | ||||
| * For more details, use the ReadMe.txt included in the respective activation folders. | ||||
							
								
								
									
										120
									
								
								MAS_1.4/Separate-Files-Version/Credits.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								MAS_1.4/Separate-Files-Version/Credits.txt
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,120 @@ | ||||
| ==================================================================================================== | ||||
|    Credits: | ||||
| ==================================================================================================== | ||||
|  | ||||
|    Microsoft Activation Scripts (MAS): | ||||
|  | ||||
|    A collection of scripts for activating Microsoft products using HWID / KMS38 / Online KMS  | ||||
|    activation methods with a focus on open-source code, less antivirus detection and user-friendliness. | ||||
|  | ||||
|    These scripts are mostly a fork of other honourable developer's tools and scripts. | ||||
|  | ||||
|    Homepages- | ||||
|    NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
|    GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
|    GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
|  | ||||
|    Maintained by @WindowsAddict | ||||
|  | ||||
|    To achieve this I have used the following projects as the base of this activator.   | ||||
|    I would like to say thanks to the following authors for making such awesome projects. | ||||
|  | ||||
| ==================================== | ||||
|    HWID and KMS38 Activation: | ||||
| ==================================== | ||||
|  | ||||
|    @mspaintmsi   Original co-authors of HWID/KMS38 Activation without KMS or predecessor install/upgrade. | ||||
|       and        Created various methods for HWID/KMS38 Activation | ||||
|    *Anonymous    https://www.nsaneforums.com/topic/316668--/?do=findComment&comment=1497887 | ||||
|                  https://github.com/massgravel/MASSGRAVE | ||||
|                  https://gitlab.com/massgrave/massgrave | ||||
|    | ||||
|    @vyvojar      Original slshim (slc.dll) | ||||
|                  https://github.com/vyvojar/slshim/releases | ||||
|  | ||||
| ==================================== | ||||
|  | ||||
|    HWID/KMS38 methods Suggestions and improvements:- | ||||
|    | ||||
|    @sponpa       New ideas for the HWID/KM38 Generation | ||||
|                  https://www.nsaneforums.com/topic/316668--/page/21/?tab=comments#comment-1431257 | ||||
|  | ||||
|    @leitek8      Improvements for the slc.dll | ||||
|                  https://www.nsaneforums.com/topic/316668--/page/22/?tab=comments#comment-1438005 | ||||
|  | ||||
| ==================================== | ||||
|    Online KMS Activation:  | ||||
| ==================================== | ||||
|  | ||||
|    @abbodi1406   Activate.cmd (KMS_VL_ALL) | ||||
|                  https://forums.mydigitallife.net/posts/838808 | ||||
|                  (* With the great help from @RPO, Forked it to work with Multi KMS Servers, | ||||
|                  Renewal task, Desktop context menu, $OEM$, etc for Online KMS) | ||||
|  | ||||
|                  Clear-KMS-Cache.cmd | ||||
|                  https://forums.mydigitallife.net/posts/1511883 | ||||
|                  (*Applied it as it is) | ||||
|  | ||||
|                  Check-Activation-Status-wmic.cmd | ||||
|                  https://forums.mydigitallife.net/posts/838808 | ||||
|                  (*Applied it as it is) | ||||
|  | ||||
| ==================================== | ||||
|  | ||||
|    Online Public KMS Servers: | ||||
|  | ||||
|    kms.srv.crsoo.com | ||||
|    kms.loli.beer | ||||
|    kms8.MSGuides.com | ||||
|  | ||||
|    kms9.MSGuides.com | ||||
|    kms.zhuxiaole.org | ||||
|    kms.lolico.moe | ||||
|    kms.moeclub.org | ||||
|  | ||||
| ==================================== | ||||
|    Useful scripts and ideas I used : | ||||
| ==================================== | ||||
|  | ||||
|    @AveYo (@BAU) Compressed2TXT | ||||
|                  https://github.com/AveYo/Compressed2TXT | ||||
|                  (For storing the files in text format) | ||||
|  | ||||
|                  Reg_takeownership snippet | ||||
|                  pastebin.com/XTPt0JSC | ||||
|                  (*Applied in KMS38 Protection) | ||||
|  | ||||
|    @hearywarlot  Elevate program as admin with vbs method | ||||
|                  https://forums.mydigitallife.net/threads/.74332/ | ||||
|  | ||||
|    @dbenham      Set buffer height independently of window height | ||||
|                  https://stackoverflow.com/a/13351373 | ||||
|                   | ||||
|    @Ratiborus    Ratiborus Tools | ||||
|                  http://forum.ru-board.com/topic.cgi?forum=2&topic=5734#1 | ||||
|  | ||||
|    @abbodi1406   Continuously providing best solutions for tons of issues. | ||||
|  | ||||
|                  abbodi1406's Batch Scripts Repo | ||||
|                  https://forums.mydigitallife.net/threads/74197/ | ||||
|  | ||||
|    @s1ave77      slave77s S-M-R-T JATDevice MkIII | ||||
|                  https://forums.mydigitallife.net/threads/44717/ | ||||
|  | ||||
| ==================================== | ||||
|    Kind Help: | ||||
| ==================================== | ||||
|     | ||||
|    Thanks to the following people for answering all of my queries. (In no particular order) | ||||
|     | ||||
|    @AveYo aka @BAU, @sponpa, @mspaintmsi @RPO, @leitek8, @mxman2k, @Yen, @abbodi1406 | ||||
|  | ||||
|    @BorrowedWifi for providing support in fixing English grammar errors in the Read Me. | ||||
|    @Chibi ANUBIS for testing scripts for ARM64 system. | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|    Special thanks to @RPO and @abbodi1406, | ||||
|    For providing great support and solving countless issues in this tool. | ||||
|  | ||||
| ==================================================================================================== | ||||
| @@ -0,0 +1,6 @@ | ||||
| [{000214A0-0000-0000-C000-000000000046}] | ||||
| Prop3=19,11 | ||||
| [InternetShortcut] | ||||
| IDList= | ||||
| URL=https://pastebin.com/raw/jduBSazJ | ||||
| HotKey=0 | ||||
| @@ -0,0 +1,621 @@ | ||||
| @setlocal DisableDelayedExpansion | ||||
| @echo off | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| :: ======================================================================================================= | ||||
| :: | ||||
| ::   This script is a part of 'Microsoft Activation Scripts' project. | ||||
| :: | ||||
| ::   Homepages- | ||||
| ::   NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
| ::   GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
| ::   GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
| :: | ||||
| ::   Maintained by @WindowsAddict | ||||
| :: | ||||
| :: ======================================================================================================= | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| title Extract $OEM$ Folder | ||||
| for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G | ||||
| set "_psc=powershell" | ||||
| set "nul=1>nul 2>nul" | ||||
| set "EchoRed=%_psc% write-host -back Black -fore Red" | ||||
| set "EchoGreen=%_psc% write-host -back Black -fore Green" | ||||
| set "ELine=echo: & %EchoRed% ==== ERROR ==== &echo:" | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| for %%i in (powershell.exe) do if "%%~$path:i"=="" ( | ||||
| echo: &echo ==== ERROR ==== &echo: | ||||
| echo Powershell is not installed in the system. | ||||
| echo Aborting... | ||||
| goto Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| if %winbuild% LSS 7600 ( | ||||
| %ELine% | ||||
| echo Unsupported OS version Detected. | ||||
| echo Project is supported only for Windows 7/8/8.1/10 and their Server equivalent. | ||||
| goto Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Fix for the special characters limitation in path name | ||||
| ::  Written by @abbodi1406 | ||||
|  | ||||
| set "_work=%~dp0" | ||||
| if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%" | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_batp=%_batf:'=''%" | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| mode con cols=98 lines=30 | ||||
|  | ||||
| ::  Get correct Desktop Location with powershell | ||||
| ::  Written by @dcshoecomp (superuser.com) | ||||
| ::  https://superuser.com/a/1413170 | ||||
|  | ||||
| for /f "delims=" %%a in ('%_psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do Set "desktop=%%a" | ||||
|  | ||||
| if exist "%desktop%\$OEM$\" ( | ||||
| echo _____________________________________________________ | ||||
| %ELine% | ||||
| echo $OEM$ folder already exists on the Desktop. | ||||
| echo _____________________________________________________ | ||||
| goto Done2 | ||||
| ) | ||||
|  | ||||
| set "_dir=%desktop%\$OEM$\$$\Setup\Scripts" | ||||
| set _nofile= | ||||
|  | ||||
| set "_fdir1=Activators\HWID-KMS38_Activation" | ||||
| set "HWID_Activation.cmd=%_fdir1%\HWID_Activation.cmd" | ||||
| set "KMS38_Activation.cmd=%_fdir1%\KMS38_Activation.cmd" | ||||
| set "ClipUp.exe=%_fdir1%\BIN\ClipUp.exe" | ||||
| set "gatherosstate.exe=%_fdir1%\BIN\gatherosstate.exe" | ||||
| set "slc.dll=%_fdir1%\BIN\slc.dll" | ||||
| set "ARM64_gatherosstate.exe=%_fdir1%\BIN\ARM64_gatherosstate.exe" | ||||
| set "ARM64_slc.dll=%_fdir1%\BIN\ARM64_slc.dll" | ||||
|  | ||||
| set "_fdir2=Activators\Online_KMS_Activation" | ||||
| set "Activate.cmd=%_fdir2%\Activate.cmd" | ||||
| set "Renewal_Setup.cmd=%_fdir2%\Renewal_Setup.cmd" | ||||
| set "cleanosppx64.exe=%_fdir2%\BIN\cleanosppx64.exe" | ||||
| set "cleanosppx86.exe=%_fdir2%\BIN\cleanosppx86.exe" | ||||
|  | ||||
| cd /d "!_work!" | ||||
| pushd "!_work!" | ||||
| cd .. | ||||
| cd .. | ||||
|  | ||||
| if not exist "%HWID_Activation.cmd%" set _nofile=1 | ||||
| if not exist "%KMS38_Activation.cmd%" set _nofile=1 | ||||
| if not exist "%ClipUp.exe%" set _nofile=1 | ||||
| if not exist "%gatherosstate.exe%" set _nofile=1 | ||||
| if not exist "%slc.dll%" set _nofile=1 | ||||
| if not exist "%ARM64_gatherosstate.exe%" set _nofile=1 | ||||
| if not exist "%ARM64_slc.dll%" set _nofile=1 | ||||
|  | ||||
| if not exist "%Activate.cmd%" set _nofile=1 | ||||
| if not exist "%Renewal_Setup.cmd%" set _nofile=1 | ||||
| if not exist "%cleanosppx64.exe%" set _nofile=1 | ||||
| if not exist "%cleanosppx86.exe%" set _nofile=1 | ||||
|  | ||||
| if defined _nofile ( | ||||
| echo _____________________________________________________ | ||||
| %ELine% | ||||
| echo Some files are missing in the 'Activators' folder. | ||||
| echo _____________________________________________________ | ||||
| goto Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :Menu | ||||
|  | ||||
| cls | ||||
| echo: | ||||
| echo: | ||||
| echo                             Extract the $OEM$ Folder on your desktop. | ||||
| echo                                  For more details use Read me. | ||||
| echo                       _______________________________________________________ | ||||
| echo                      ^|                                                       ^| | ||||
| echo                      ^|                                                       ^| | ||||
| echo                      ^|   [1] HWID                                            ^| | ||||
| echo                      ^|                                                       ^| | ||||
| echo                      ^|   [2] KMS38                                           ^| | ||||
| echo                      ^|                                                       ^| | ||||
| echo                      ^|   [3] HWID, Fallback to KMS38                         ^| | ||||
| echo                      ^|                                                       ^| | ||||
| echo                      ^|   [4] Online KMS                                      ^| | ||||
| echo                      ^|                                                       ^| | ||||
| echo                      ^|   [5] HWID ^+ Online KMS                               ^| | ||||
| echo                      ^|                                                       ^| | ||||
| echo                      ^|   [6] KMS38 ^+ Online KMS                              ^| | ||||
| echo                      ^|                                                       ^| | ||||
| echo                      ^|   [7] HWID, Fallback to KMS38 ^+ Online KMS            ^| | ||||
| echo                      ^|                                                       ^| | ||||
| echo                      ^|   [8] Exit                                            ^| | ||||
| echo                      ^|                                                       ^| | ||||
| echo                      ^|_______________________________________________________^| | ||||
| echo:      | ||||
| choice /C:12345678 /N /M ">                     Enter Your Choice [1,2,3,4,5,6,7,8] : " | ||||
|  | ||||
| if errorlevel 8 exit /b | ||||
| if errorlevel 7 goto:$OEM$HWID_FB_KMS38-KMS | ||||
| if errorlevel 6 goto:$OEM$KMS38KMS | ||||
| if errorlevel 5 goto:$OEM$HWIDKMS | ||||
| if errorlevel 4 goto:$OEM$KMS | ||||
| if errorlevel 3 goto:$OEM$HWID_FB_KMS38 | ||||
| if errorlevel 2 goto:$OEM$KMS38 | ||||
| if errorlevel 1 goto:$OEM$HWID | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :$OEM$HWID | ||||
|  | ||||
| cls | ||||
| call :Prep | ||||
| call :HWIDPrep | ||||
| call :export HWIDSetup "%_dir%\SetupComplete.cmd" | ||||
| set error_= | ||||
| call :HWIDPrep2 | ||||
|  | ||||
| if defined error_ goto ErrorFound | ||||
| set "_oem=HWID" | ||||
| goto Done | ||||
|  | ||||
| :HWIDSetup: | ||||
| @echo off | ||||
|  | ||||
| reg query HKU\S-1-5-19 1>nul 2>nul || ( | ||||
| echo ==== Error ==== | ||||
| echo Right click on this file and select 'Run as administrator' | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
| ) | ||||
|  | ||||
| call "%~dp0HWID_Activation.cmd" /u | ||||
|  | ||||
| cd /d "%SystemRoot%\Setup\" | ||||
| if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" | ||||
| exit /b | ||||
| :HWIDSetup: | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :$OEM$KMS38 | ||||
|  | ||||
| cls | ||||
| call :Prep | ||||
| call :KMS38Prep | ||||
| call :export KMS38Setup "%_dir%\SetupComplete.cmd" | ||||
| set error_= | ||||
| call :KMS38Prep2 | ||||
|  | ||||
| if defined error_ goto ErrorFound | ||||
| set "_oem=KMS38" | ||||
| goto Done | ||||
|  | ||||
| :KMS38Setup: | ||||
| @echo off | ||||
|  | ||||
| reg query HKU\S-1-5-19 1>nul 2>nul || ( | ||||
| echo ==== Error ==== | ||||
| echo Right click on this file and select 'Run as administrator' | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
| ) | ||||
|  | ||||
| call "%~dp0KMS38_Activation.cmd" /u | ||||
|  | ||||
| cd /d "%SystemRoot%\Setup\" | ||||
| if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" | ||||
| exit /b | ||||
| :KMS38Setup: | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :$OEM$HWID_FB_KMS38 | ||||
|  | ||||
| cls | ||||
| call :Prep | ||||
|  | ||||
| copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul% | ||||
| call :KMS38Prep | ||||
| call :export HWID_FB_KMS38 "%_dir%\SetupComplete.cmd" | ||||
|  | ||||
| set error_= | ||||
| If not exist "%_dir%\HWID_Activation.cmd" (set error_=1) | ||||
| call :KMS38Prep2 | ||||
|  | ||||
| if defined error_ goto ErrorFound | ||||
| set "_oem=HWID`, Fallback to KMS38" | ||||
| goto Done | ||||
|  | ||||
| :HWID_FB_KMS38: | ||||
| @echo off | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
| reg query HKU\S-1-5-19 1>nul 2>nul || ( | ||||
| echo ==== Error ==== | ||||
| echo Right click on this file and select 'Run as administrator' | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
| ) | ||||
|  | ||||
| for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G | ||||
|  | ||||
| ::  Check Windows Edition | ||||
| set osedition= | ||||
| for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a" | ||||
| if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a" | ||||
|  | ||||
| ::  Check Installation type | ||||
| set instype= | ||||
| for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b" | ||||
|  | ||||
| set KMS38= | ||||
| if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseS" set KMS38=1 | ||||
| if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseSN" set KMS38=1 | ||||
| if "%osedition%"=="EnterpriseG" set KMS38=1 | ||||
| if "%osedition%"=="EnterpriseGN" set KMS38=1 | ||||
| if not "%instype%"=="Client" echo %osedition%| findstr /I /B Server 1>nul && set KMS38=1 | ||||
|  | ||||
| if defined KMS38 ( | ||||
| call "%~dp0KMS38_Activation.cmd" /u | ||||
| ) else ( | ||||
| call "%~dp0HWID_Activation.cmd" /u | ||||
| ) | ||||
|  | ||||
| cd /d "%SystemRoot%\Setup\" | ||||
| if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" | ||||
| exit /b | ||||
| :HWID_FB_KMS38: | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :$OEM$KMS | ||||
|  | ||||
| cls | ||||
| call :Prep | ||||
| call :KMSPrep | ||||
| call :export KMSSetup "%_dir%\SetupComplete.cmd" | ||||
| set error_= | ||||
| call :KMSPrep2 | ||||
|  | ||||
| if defined error_ goto ErrorFound | ||||
| set "_oem=Online KMS" | ||||
| goto Done | ||||
|  | ||||
| :KMSSetup: | ||||
| @echo off | ||||
|  | ||||
| ============================================================================ | ||||
|  | ||||
| :: Change value from 1 to 0 to disable KMS Renewal And Activation Task | ||||
| set Renewal_And_Activation_Task=1 | ||||
|  | ||||
| :: Change value from 1 to 0 to disable KMS activation desktop context menu  | ||||
| set Desktop_context_menu=1 | ||||
|  | ||||
| ============================================================================ | ||||
|  | ||||
| reg query HKU\S-1-5-19 1>nul 2>nul || ( | ||||
| echo ==== Error ==== | ||||
| echo Right click on this file and select 'Run as administrator' | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
| ) | ||||
|  | ||||
| if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat | ||||
| if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm | ||||
|  | ||||
| cd /d "%SystemRoot%\Setup\" | ||||
| if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" | ||||
| exit /b | ||||
| :KMSSetup: | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :$OEM$HWIDKMS | ||||
|  | ||||
| cls | ||||
| call :Prep | ||||
| call :HWIDPrep | ||||
| call :KMSPrep | ||||
|  | ||||
| call :export HWIDKMSSetup "%_dir%\SetupComplete.cmd" | ||||
|  | ||||
| set error_= | ||||
| call :HWIDPrep2 | ||||
| call :KMSPrep2 | ||||
|  | ||||
| if defined error_ goto ErrorFound | ||||
| set "_oem=HWID `+ Online KMS" | ||||
| goto Done | ||||
|  | ||||
| :HWIDKMSSetup: | ||||
| @echo off | ||||
|  | ||||
| ============================================================================ | ||||
|  | ||||
| :: Change value from 1 to 0 to disable KMS Renewal And Activation Task | ||||
| set Renewal_And_Activation_Task=1 | ||||
|  | ||||
| :: Change value from 1 to 0 to disable KMS activation desktop context menu  | ||||
| set Desktop_context_menu=1 | ||||
|  | ||||
| ============================================================================ | ||||
|  | ||||
| reg query HKU\S-1-5-19 1>nul 2>nul || ( | ||||
| echo ==== Error ==== | ||||
| echo Right click on this file and select 'Run as administrator' | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
| ) | ||||
|  | ||||
| call "%~dp0HWID_Activation.cmd" /u | ||||
| if defined HWIDAct set SkipWinAct=/swa | ||||
|  | ||||
| if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat %SkipWinAct% | ||||
| if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm %SkipWinAct% | ||||
|  | ||||
| cd /d "%SystemRoot%\Setup\" | ||||
| if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" | ||||
| exit /b | ||||
| :HWIDKMSSetup: | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :$OEM$KMS38KMS | ||||
|  | ||||
| cls | ||||
| call :Prep | ||||
| call :KMS38Prep | ||||
| call :KMSPrep | ||||
| call :export KMS38KMSSetup "%_dir%\SetupComplete.cmd" | ||||
| set error_= | ||||
| call :KMS38Prep2 | ||||
| call :KMSPrep2 | ||||
|  | ||||
| if defined error_ goto ErrorFound | ||||
| set "_oem=KMS38 `+ Online KMS" | ||||
| goto Done | ||||
|  | ||||
| :KMS38KMSSetup: | ||||
| @echo off | ||||
|  | ||||
| ============================================================================ | ||||
|  | ||||
| :: Change value from 1 to 0 to disable KMS Renewal And Activation Task | ||||
| set Renewal_And_Activation_Task=1 | ||||
|  | ||||
| :: Change value from 1 to 0 to disable KMS activation desktop context menu  | ||||
| set Desktop_context_menu=1 | ||||
|  | ||||
| ============================================================================ | ||||
|  | ||||
| reg query HKU\S-1-5-19 1>nul 2>nul || ( | ||||
| echo ==== Error ==== | ||||
| echo Right click on this file and select 'Run as administrator' | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
| ) | ||||
|  | ||||
| call "%~dp0KMS38_Activation.cmd" /u | ||||
|  | ||||
| if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat | ||||
| if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm | ||||
|  | ||||
| cd /d "%SystemRoot%\Setup\" | ||||
| if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" | ||||
| exit /b | ||||
| :KMS38KMSSetup: | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :$OEM$HWID_FB_KMS38-KMS | ||||
|  | ||||
| cls | ||||
| call :Prep | ||||
|  | ||||
| copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul% | ||||
| call :KMS38Prep | ||||
| call :KMSPrep | ||||
| call :export HWID_FB_KMS38-KMSSetup "%_dir%\SetupComplete.cmd" | ||||
|  | ||||
| set error_= | ||||
| If not exist "%_dir%\HWID_Activation.cmd" (set error_=1) | ||||
| call :KMS38Prep2 | ||||
| call :KMSPrep2 | ||||
|  | ||||
| if defined error_ goto ErrorFound | ||||
| set "_oem=HWID`, Fallback to KMS38 `+ Online KMS" | ||||
| goto Done | ||||
|  | ||||
| :HWID_FB_KMS38-KMSSetup: | ||||
| @echo off | ||||
|  | ||||
| ============================================================================ | ||||
|  | ||||
| :: Change value from 1 to 0 to disable KMS Renewal And Activation Task | ||||
| set Renewal_And_Activation_Task=1 | ||||
|  | ||||
| :: Change value from 1 to 0 to disable KMS activation desktop context menu  | ||||
| set Desktop_context_menu=1 | ||||
|  | ||||
| ============================================================================ | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
| reg query HKU\S-1-5-19 1>nul 2>nul || ( | ||||
| echo ==== Error ==== | ||||
| echo Right click on this file and select 'Run as administrator' | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
| ) | ||||
|  | ||||
| for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G | ||||
|  | ||||
| ::  Check Windows Edition | ||||
| set osedition= | ||||
| for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a" | ||||
| if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a" | ||||
|  | ||||
| ::  Check Installation type | ||||
| set instype= | ||||
| for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b" | ||||
|  | ||||
| set KMS38= | ||||
| if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseS" set KMS38=1 | ||||
| if "%winbuild%" GEQ "17763" if "%osedition%"=="EnterpriseSN" set KMS38=1 | ||||
| if "%osedition%"=="EnterpriseG" set KMS38=1 | ||||
| if "%osedition%"=="EnterpriseGN" set KMS38=1 | ||||
| if not "%instype%"=="Client" echo %osedition%| findstr /I /B Server 1>nul && set KMS38=1 | ||||
|  | ||||
| if defined KMS38 ( | ||||
| call "%~dp0KMS38_Activation.cmd" /u | ||||
| ) else ( | ||||
| call "%~dp0HWID_Activation.cmd" /u | ||||
| if defined HWIDAct set SkipWinAct=/swa | ||||
| ) | ||||
|  | ||||
| if %Renewal_And_Activation_Task% EQU 1 call "%~dp0Renewal_Setup.cmd" /rat %SkipWinAct% | ||||
| if %Desktop_context_menu% EQU 1 call "%~dp0Renewal_Setup.cmd" /dcm %SkipWinAct% | ||||
|  | ||||
| cd /d "%SystemRoot%\Setup\" | ||||
| if exist "%SystemRoot%\Setup\Scripts\" @RD /S /Q "%SystemRoot%\Setup\Scripts\" | ||||
| exit /b | ||||
| :HWID_FB_KMS38-KMSSetup: | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :ErrorFound | ||||
|  | ||||
| %ELine% | ||||
| echo $OEM$ Folder was not created successfully... | ||||
| goto :Done2 | ||||
| :Done | ||||
| echo ________________________________________________________________________________________________ | ||||
| echo: | ||||
| %EchoGreen% %_oem% `$OEM`$ folder is successfully created on the Desktop. | ||||
| echo ________________________________________________________________________________________________ | ||||
| :Done2 | ||||
| echo: | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :Prep | ||||
|  | ||||
| cd /d "%desktop%" | ||||
| md "%desktop%\$OEM$\$$\Setup\Scripts\" | ||||
| md "%desktop%\$OEM$\$$\Setup\Scripts\BIN" | ||||
|  | ||||
| cd /d "!_work!" | ||||
| pushd "!_work!" | ||||
| cd .. | ||||
| cd .. | ||||
|  | ||||
| exit /b | ||||
|  | ||||
| :HWIDPrep | ||||
|  | ||||
| copy /y /b "%HWID_Activation.cmd%" "%_dir%\HWID_Activation.cmd" %nul% | ||||
| copy /y /b "%gatherosstate.exe%" "%_dir%\BIN\gatherosstate.exe" %nul% | ||||
| copy /y /b "%slc.dll%" "%_dir%\BIN\slc.dll" %nul% | ||||
| copy /y /b "%ARM64_gatherosstate.exe%" "%_dir%\BIN\ARM64_gatherosstate.exe" %nul% | ||||
| copy /y /b "%ARM64_slc.dll%" "%_dir%\BIN\ARM64_slc.dll" %nul% | ||||
| exit /b | ||||
|  | ||||
| :KMS38Prep | ||||
|  | ||||
| copy /y /b "%KMS38_Activation.cmd%" "%_dir%\KMS38_Activation.cmd" %nul% | ||||
| copy /y /b "%ClipUp.exe%" "%_dir%\BIN\ClipUp.exe" %nul% | ||||
| copy /y /b "%gatherosstate.exe%" "%_dir%\BIN\gatherosstate.exe" %nul% | ||||
| copy /y /b "%slc.dll%" "%_dir%\BIN\slc.dll" %nul% | ||||
| copy /y /b "%ARM64_gatherosstate.exe%" "%_dir%\BIN\ARM64_gatherosstate.exe" %nul% | ||||
| copy /y /b "%ARM64_slc.dll%" "%_dir%\BIN\ARM64_slc.dll" %nul% | ||||
| exit /b | ||||
|  | ||||
| :KMSPrep | ||||
|  | ||||
| copy /y /b "%Activate.cmd%" "%_dir%\Activate.cmd" %nul% | ||||
| copy /y /b "%Renewal_Setup.cmd%" "%_dir%\Renewal_Setup.cmd" %nul% | ||||
| copy /y /b "%cleanosppx64.exe%" "%_dir%\BIN\cleanosppx64.exe" %nul% | ||||
| copy /y /b "%cleanosppx86.exe%" "%_dir%\BIN\cleanosppx86.exe" %nul% | ||||
| exit /b | ||||
|  | ||||
| :HWIDPrep2 | ||||
|  | ||||
| If not exist "%_dir%\HWID_Activation.cmd" (set error_=1) | ||||
| If not exist "%_dir%\BIN\gatherosstate.exe" (set error_=1) | ||||
| If not exist "%_dir%\BIN\slc.dll" (set error_=1) | ||||
| If not exist "%_dir%\BIN\ARM64_gatherosstate.exe" (set error_=1) | ||||
| If not exist "%_dir%\BIN\ARM64_slc.dll" (set error_=1) | ||||
| If not exist "%_dir%\SetupComplete.cmd" (set error_=1) | ||||
| exit /b | ||||
|  | ||||
| :KMS38Prep2 | ||||
|  | ||||
| If not exist "%_dir%\KMS38_Activation.cmd" (set error_=1) | ||||
| If not exist "%_dir%\BIN\ClipUp.exe" (set error_=1) | ||||
| If not exist "%_dir%\BIN\gatherosstate.exe" (set error_=1) | ||||
| If not exist "%_dir%\BIN\slc.dll" (set error_=1) | ||||
| If not exist "%_dir%\BIN\ARM64_gatherosstate.exe" (set error_=1) | ||||
| If not exist "%_dir%\BIN\ARM64_slc.dll" (set error_=1) | ||||
| If not exist "%_dir%\SetupComplete.cmd" (set error_=1) | ||||
| exit /b | ||||
|  | ||||
| :KMSPrep2 | ||||
|  | ||||
| If not exist "%_dir%\Activate.cmd" (set error_=1) | ||||
| If not exist "%_dir%\Renewal_Setup.cmd" (set error_=1) | ||||
| If not exist "%_dir%\BIN\cleanosppx64.exe" (set error_=1) | ||||
| If not exist "%_dir%\BIN\cleanosppx86.exe" (set error_=1) | ||||
| If not exist "%_dir%\SetupComplete.cmd" (set error_=1) | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Extract the text from batch script without character and file encoding issue | ||||
| ::  Thanks to @abbodi1406 | ||||
|  | ||||
| :export | ||||
| %nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('%~2',$f[1].Trim(),[System.Text.Encoding]::ASCII);" &exit/b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
| @@ -0,0 +1,123 @@ | ||||
| ==================================================================================================== | ||||
|    $OEM$ Folders [Windows Pre-Activation]: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - To create a Preactivated Windows installation .iso, do the following things: | ||||
|    Copy the "$OEM$" folder to the "sources" folder in the Windows installation media (.iso or USB). | ||||
|    The directory will appear like this: \sources\$OEM$ in your altered .iso or on your bootable  | ||||
|    USB drive. | ||||
|    Now use this .iso or bootable USB drive to install Windows and it will either already be activated  | ||||
|    (KMS38) as soon as it boots, or will self-activate at first internet contact.  | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|    HWID: | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|  - When using Digital License (HWID), no files are stored on the system, and when connected to the  | ||||
|    internet for the first time, the system will self-activate at that time. | ||||
|     | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|    KMS38: | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|  - When using KMS38, no files are stored on the system, and Windows becomes activated immediately  | ||||
|    without further actions or connectivity of any kind being required. | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|    Online KMS (separately, or in combination with HWID or KMS38): | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|  | ||||
|  - It creates the following 2 Activation/Renewal Methods. You can turn off any of them in  | ||||
|    setupcomplete.cmd file | ||||
|  | ||||
|    ---------------------------------------------------------- | ||||
|  | ||||
|    1- Automatic Renewal via Task Scheduler--- | ||||
|  | ||||
|    It creates following files and tasks, | ||||
|  | ||||
|    Files: | ||||
|    C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe | ||||
|    C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe | ||||
|    C:\ProgramData\Online_KMS_Activation\Activate.cmd | ||||
|    C:\ProgramData\Online_KMS_Activation\Info.txt | ||||
|  | ||||
|    Scheduled Tasks: | ||||
|    \Online_KMS_Activation_Script-Renewal  (Weekly) | ||||
|    \Online_KMS_Activation_Script-Run_Once (Activation Task) | ||||
|  | ||||
|    The scheduled task runs only if the system is connected to the Internet. | ||||
|    Activation Task will run on the system login and after successful activation and registering  | ||||
|    online KMS server, this task will delete itself. leaving behind only one task to run weekly  | ||||
|    for the lifetime of the system.  | ||||
|  | ||||
|    ---------------------------------------------------------- | ||||
|     | ||||
|    2- Manual Renewal via Desktop Context Menu--- | ||||
|  | ||||
|    It creates Desktop context Menu for manual activation and renewal. | ||||
|    It creates the following files and registry entries. | ||||
|  | ||||
|    Files: | ||||
|    C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx64.exe | ||||
|    C:\ProgramData\Online_KMS_Activation\BIN\cleanosppx86.exe | ||||
|    C:\ProgramData\Online_KMS_Activation\Activate.cmd | ||||
|    C:\ProgramData\Online_KMS_Activation\Info.txt | ||||
|     | ||||
|    Registry entries: | ||||
|    HKCR\DesktopBackground\shell\Activate Windows - Office | ||||
|    HKCR\DesktopBackground\shell\Activate Windows - Office\command | ||||
|  | ||||
|    It creates an easy to reach the Desktop context menu for the manual activation renewal. | ||||
|     | ||||
|    ---------------------------------------------------------- | ||||
|  | ||||
|    d30a0e4e5911d3ca705617d17225372731c770e2 *cleanosppx64.exe                   Virus Total = 0/66 | ||||
|    39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *cleanosppx86.exe                   Virus Total = 1/66 | ||||
|  | ||||
|    Virus Total Report Date: 12-11-2019 | ||||
|     | ||||
|    These files are official Microsoft files and in this script, these are used in  | ||||
|    cleaning office license in C2R Retail office to VL conversion process. | ||||
|     | ||||
|    The source of these files is the 'old' version of Microsoft Tool O15CTRRemove.diagcab | ||||
|    You can get the original file here https://s.put.re/WFuXpyWA.zip | ||||
|  | ||||
|    ---------------------------------------------------------- | ||||
|     | ||||
|    IMPORTANT NOTE - Some sensitive AV's may flag the Automatic Renewal via the Task, and not  | ||||
|    because of KMS, because for them it's suspicious to run long scripts in the background as Tasks. | ||||
|  | ||||
|    It's recommended to set exclusions in Antivirus for | ||||
|    C:\ProgramData\Online_KMS_Activation\Activate.cmd | ||||
|  | ||||
|    ---------------------------------------------------------- | ||||
|     | ||||
|  - When using Online KMS plus HWID Digital License, Online KMS script will be set to skip Windows  | ||||
|    activation (if the HWID activation was applied but was not successful due to lack of internet  | ||||
|    at the time of installation of Windows) but will register the KMS for other products, and all  | ||||
|    later installed Volume License (VL) products (MS Office) will self-activate when going online.  | ||||
|  | ||||
|  - When using Online KMS plus KMS38, Online KMS will not skip Windows activation but skip KMS38  | ||||
|    activation and will register the KMS for other products, and all subsequently-installed Volume  | ||||
|    License (VL) products (MS Office) will self-activate when going online. | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|    HWID (Fallback to KMS38): | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|    | ||||
|  - In this method, KMS38 will be used for the activation in case the Windows version is not  | ||||
|    supported by HWID. For example, Windows 10 LTSC and Windows server. | ||||
|  | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|    Activation Type       Supported Product             Activation Period | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|     | ||||
|    Digital License    -  Windows 10                 -  Permanent | ||||
|    KMS38              -  Windows 10 / Server        -  Until the year 2038 | ||||
|    Online KMS         -  Windows / Server / Office  -  For 180 Days, renewal task needs to be  | ||||
|                                                        created for lifetime auto-activation. | ||||
|     | ||||
| ---------------------------------------------------------------------------------------------------- | ||||
|     | ||||
|    * For more details, use the ReadMe.txt included in the respective activation folders. | ||||
| @@ -0,0 +1,412 @@ | ||||
| @setlocal DisableDelayedExpansion | ||||
| @echo off | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| :: ======================================================================================================= | ||||
| :: | ||||
| ::   This script is a part of 'Microsoft Activation Scripts' project. | ||||
| :: | ||||
| ::   Homepages- | ||||
| ::   NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
| ::   GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
| ::   GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
| :: | ||||
| ::   Maintained by @WindowsAddict | ||||
| :: | ||||
| :: ======================================================================================================= | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| title Protect / Unprotect KMS38 Activation | ||||
| set _elev= | ||||
| if /i "%~1"=="-el" set _elev=1 | ||||
| for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G | ||||
| set "_psc=powershell" | ||||
| set "nul=1>nul 2>nul" | ||||
| set "Red="white" "DarkRed"" | ||||
| set "Green="white" "DarkGreen"" | ||||
| set "Magenta="white" "darkmagenta"" | ||||
| set "Gray="white" "darkgray"" | ||||
| set "Black="white" "Black"" | ||||
| set "ELine=echo: &call :PU_color "==== ERROR ====" %Red% &echo:" | ||||
| set line=__________________________________________________________________________________________________ | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| for %%i in (powershell.exe) do if "%%~$path:i"=="" ( | ||||
| echo: &echo ==== ERROR ==== &echo: | ||||
| echo Powershell is not installed in the system. | ||||
| echo Aborting... | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| if %winbuild% LSS 14393 ( | ||||
| %ELine% | ||||
| echo Unsupported OS version Detected. | ||||
| echo Project is supported only for Windows 10 / Server 1607 [14393] and later builds. | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Elevate script as admin and pass arguments and preventing loop | ||||
| ::  Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. | ||||
| ::  Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. | ||||
|  | ||||
| %nul% reg query HKU\S-1-5-19 && ( | ||||
|   goto :Passed | ||||
|   ) || ( | ||||
|   if defined _elev goto :E_Admin | ||||
| ) | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_vbsf=%temp%\admin.vbs" | ||||
| set _PSarg="""%~f0""" -el | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ( | ||||
| echo Set strArg=WScript.Arguments.Named | ||||
| echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) | ||||
| echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then | ||||
| echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) | ||||
| echo End If | ||||
| echo End With | ||||
| echo .Terminate | ||||
| echo End With | ||||
| echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 | ||||
| )>"!_vbsf!" | ||||
|  | ||||
| (%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el) && ( | ||||
| del /f /q "!_vbsf!" | ||||
| exit /b | ||||
| ) || ( | ||||
| del /f /q "!_vbsf!" | ||||
| %nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( | ||||
| exit /b | ||||
| ) || ( | ||||
| goto :E_Admin | ||||
| ) | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| :E_Admin | ||||
| %ELine% | ||||
| echo This script require administrator privileges. | ||||
| echo To do so, right click on this script and select 'Run as administrator'. | ||||
| goto PU_Done | ||||
|  | ||||
| :Passed | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| mode con: cols=98 lines=30 | ||||
|  | ||||
| set slp=SoftwareLicensingProduct | ||||
| set sls=SoftwareLicensingService | ||||
| set wApp=55c92734-d682-4d71-983e-d6ec3f16059f | ||||
| set "SPPk=SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" | ||||
|  | ||||
| ::  Fix for the special characters limitation in path name | ||||
| ::  Written by @abbodi1406 | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_batp=%_batf:'=''%" | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ::  Check Windows OS name | ||||
|  | ||||
| set winos= | ||||
| for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b" | ||||
| if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b" | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| echo: | ||||
| echo %line% | ||||
| echo: | ||||
| echo    [1] Protect KMS38 Activation from being overwritten by 180 days KMS Activators | ||||
| echo:    | ||||
| echo    [2] Undo changes | ||||
| echo:    | ||||
| echo    [3] Exit | ||||
| echo: | ||||
| echo %line% | ||||
| echo: | ||||
| choice /C:123 /N /M ">  Enter Your Choice [1,2,3] : " | ||||
|  | ||||
| if errorlevel 3 exit /b | ||||
| if errorlevel 2 goto Undo | ||||
| if errorlevel 1 goto Protect | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :Protect | ||||
|  | ||||
| cls | ||||
|  | ||||
| ::  Check KMS client setup key | ||||
|  | ||||
| set _gvlk= | ||||
| wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel 2>nul | findstr /i GVLK 1>nul && (set _gvlk=1) | ||||
|  | ||||
| if not defined _gvlk ( | ||||
| %ELine% | ||||
| echo System is not activated with KMS38. ^(KMS Key is not installed^)  Aborting... | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| ::  Check Activation Grace Period | ||||
|  | ||||
| set gpr= | ||||
| for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#" | ||||
|  | ||||
| if "%gpr%" LEQ "259200" ( | ||||
| %ELine% | ||||
| echo System is not activated with KMS38.  Aborting... | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| ::  Check SKU value | ||||
|  | ||||
| set SKU= | ||||
| for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a) | ||||
| if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a) | ||||
|  | ||||
| if "%osSKU%"=="" ( | ||||
| %ELine% | ||||
| echo SKU value was not detected properly. Aborting... | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| ::  Check Windows Edition with SKU value for better accuracy | ||||
|  | ||||
| set osedition= | ||||
| call :K38_CheckEdition %nul% | ||||
|  | ||||
| if "%osedition%"=="" ( | ||||
| %ELine% | ||||
| echo OS Edition was not detected properly. Aborting... | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| ::  Check Activation ID | ||||
|  | ||||
| set app= | ||||
| for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and LicenseFamily='%osedition%' and Description like '%%KMSCLIENT%%') get ID /VALUE" 2^>nul') do set "app=%%a" | ||||
|  | ||||
| if "%app%"=="" ( | ||||
| %ELine% | ||||
| echo Activation ID was not detected properly. Aborting... | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| wmic path %sls% where __CLASS='%sls%' call ClearKeyManagementServiceMachine %nul% | ||||
| wmic path %sls% where __CLASS='%sls%' call ClearKeyManagementServicePort %nul% | ||||
|  | ||||
| reg query "HKLM\%SPPk%\%wApp%" %nul% && ( | ||||
| %nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" FullControl Allow S-1-5-32-544 | ||||
| reg delete "HKLM\%SPPk%\%wApp%" /f %nul% | ||||
| reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul% | ||||
| ) | ||||
|  | ||||
| reg query "HKLM\%SPPk%\%wApp%" %nul% && ( | ||||
| %ELine% | ||||
| echo Registry Key was not cleared successfully. Aborting... | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| ::  Set specific KMS host to Local Host | ||||
| ::  Thanks to @abbodi1406 | ||||
|  | ||||
| set setkms_error= | ||||
|  | ||||
| wmic path %slp% where ID='%app%' call ClearKeyManagementServiceMachine %nul% || (set setkms_error=1) | ||||
| wmic path %slp% where ID='%app%' call ClearKeyManagementServicePort %nul% || (set setkms_error=1) | ||||
| wmic path %slp% where ID='%app%' call SetKeyManagementServiceMachine MachineName="127.0.0.2" %nul% || (set setkms_error=1) | ||||
| wmic path %slp% where ID='%app%' call SetKeyManagementServicePort 1688 %nul% || (set setkms_error=1) | ||||
|  | ||||
| if defined setkms_error ( | ||||
| reg delete "HKLM\%SPPk%\%wApp%" /f %nul% | ||||
| reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul% | ||||
| %ELine% | ||||
| echo Specific KMS host to Local Host was not properly applied. Aborting... | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| %nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" "SetValue, Delete" Deny S-1-5-32-544 | ||||
|  | ||||
| reg delete "HKLM\%SPPk%\%wApp%" /f %nul% | ||||
| reg query "HKLM\%SPPk%\%wApp%" %nul% || ( | ||||
| %ELine% | ||||
| echo Registry Key was not protected properly. Aborting... | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| ::  Check Activation Grace Period | ||||
|  | ||||
| set gpr= | ||||
| for /f "tokens=2 delims==" %%# in ('"wmic path %slp% where (ApplicationID='%wApp%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get GracePeriodRemaining /VALUE" ') do set "gpr=%%#" | ||||
|  | ||||
| if "%gpr%" LEQ "259200" ( | ||||
| %ELine% | ||||
| echo System is not activated with KMS38. | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| cls | ||||
| echo: | ||||
| echo %line% | ||||
| echo: | ||||
| echo Specific KMS host set to 127.0.0.2 ^(Local Host^) successfully. | ||||
| echo: | ||||
| echo Registry item locked successfully. | ||||
| echo HKLM\%SPPk%\%wApp% | ||||
| echo: | ||||
| call :PU_color "%winos% - KMS38 Activation is now protected." %Green% | ||||
| echo: | ||||
| echo Now you need to activate Office with KMS ^(If required^) | ||||
| echo: | ||||
| echo %line% | ||||
|  | ||||
| goto PU_Done | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :Undo | ||||
|  | ||||
| cls | ||||
| set exist_= | ||||
| reg query "HKLM\%SPPk%\%wApp%" %nul% && (set exist_=1) | ||||
|  | ||||
| if defined exist_ ( | ||||
| %nul% call :reg_takeownership "HKLM\%SPPk%\%wApp%" FullControl Allow S-1-5-32-544 | ||||
| reg delete "HKLM\%SPPk%\%wApp%" /f %nul% | ||||
| reg delete "HKU\S-1-5-20\%SPPk%\%wApp%" /f %nul% | ||||
| ) | ||||
|  | ||||
| reg query "HKLM\%SPPk%\%wApp%" %nul% && ( | ||||
| %ELine% | ||||
| echo Registry Key was not cleared successfully. Aborting... | ||||
| goto PU_Done | ||||
| ) | ||||
|  | ||||
| echo: | ||||
| echo %line% | ||||
| echo: | ||||
| if defined exist_ ( | ||||
| echo Registry item deleted successfully. | ||||
| echo HKLM\%SPPk%\%wApp% | ||||
| echo: | ||||
| call :PU_color "KMS38 Activation is now unprotected [set to default]" %Green% | ||||
| ) else ( | ||||
| call :PU_color "It is already unprotected [set to default]" %Green% | ||||
| ) | ||||
| echo: | ||||
| echo %line% | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :PU_Done | ||||
| echo: | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :PU_color | ||||
|  | ||||
| %_psc% write-host '%1' -fore '%2' -back '%3' | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Check Windows Edition with SKU value for better accuracy | ||||
|  | ||||
| :K38_CheckEdition | ||||
|  | ||||
| for %%# in ( | ||||
| 4-Enterprise | ||||
| 7-ServerStandard | ||||
| 8-ServerDatacenter | ||||
| 27-EnterpriseN | ||||
| 48-Professional | ||||
| 49-ProfessionalN | ||||
| 50-ServerSolution | ||||
| 98-CoreN | ||||
| 99-CoreCountrySpecific | ||||
| 100-CoreSingleLanguage | ||||
| 101-Core | ||||
| 110-ServerCloudStorage | ||||
| 120-ServerARM64 | ||||
| 121-Education | ||||
| 122-EducationN | ||||
| 125-EnterpriseS | ||||
| 126-EnterpriseSN | ||||
| 145-ServerDatacenterACor | ||||
| 146-ServerStandardACor | ||||
| 161-ProfessionalWorkstation | ||||
| 162-ProfessionalWorkstationN | ||||
| 164-ProfessionalEducation | ||||
| 165-ProfessionalEducationN | ||||
| 168-ServerAzureCor | ||||
| 171-EnterpriseG | ||||
| 172-EnterpriseGN | ||||
| 175-ServerRdsh | ||||
| 183-CloudE | ||||
| ) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do ( | ||||
| if %osSKU%==%%A set "osedition=%%B" | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Reg_takeownership snippet | ||||
| ::  Written by @AveYo aka @BAU | ||||
| ::  pastebin.com/XTPt0JSC | ||||
|  | ||||
| :reg_takeownership | ||||
| set "pargs=$regkey='%~1'; $p='%~2'; $a='%~3'; $u='%~4'; $o='%~5';" | ||||
| %_psc% "%pargs%; $f=[io.file]::ReadAllText('!_batp!') -split ':ps_reg_own\:.*';iex ($f[1]);" & exit/b:ps_reg_own: | ||||
| $dll0='[DllImport("ntdll.dll")]public static extern IntPtr RtlAdjustPrivilege(int a,bool b,bool c,ref bool d);'; | ||||
| $nt=Add-Type -Member $dll0 -Name Nt -PassThru; foreach($i in @(9,17,18)){$null=$nt::RtlAdjustPrivilege($i,1,0,[ref]0)} | ||||
| $root=$true; if($o -eq ''){$o=$u}; $rk=$regkey -split '\\',2; $key=$rk[1]; | ||||
| switch -regex ($rk[0]){ '[mM]'{$HK='LocalMachine'};'[uU]'{$HK='CurrentUser'};default{$HK='ClassesRoot'}; } | ||||
| $usr=0,0,0; $sec=0,0,0; $rule=0,0,0; $perm='FullControl',$p,$p; $access='Allow',$a,$a; $s=$o,$u,'S-1-5-32-544'; | ||||
| for($i=0;$i -le 2;$i++){ $usr[$i]=[System.Security.Principal.SecurityIdentifier]$s[$i]; | ||||
| $rule[$i]=[System.Security.AccessControl.RegistryAccessRule]::new($usr[$i], $perm[$i], 3, 0, $access[$i]); | ||||
| $sec[$i]=[System.Security.AccessControl.RegistrySecurity]::new(); } | ||||
| function Reg_TakeOwnership { param($hive, $key, $root=$false); | ||||
| $reg=[Microsoft.Win32.Registry]::$hive.OpenSubKey($key,'ReadWriteSubTree','TakeOwnership'); $sec[2].SetOwner($usr[2]); | ||||
| $reg.SetAccessControl($sec[2]); if($root){ $reg=$reg.OpenSubKey('','ReadWriteSubTree','ChangePermissions'); | ||||
| $acl=$reg.GetAccessControl(); $acl.SetAccessRuleProtection($false,$false); $acl.ResetAccessRule($rule[1]); | ||||
| $reg.SetAccessControl($acl); } $sec[0].SetOwner($usr[0]); $reg.SetAccessControl($sec[0]); } | ||||
| Reg_TakeOwnership $HK $key $true; if($root){ $r=[Microsoft.Win32.Registry]::$HK.OpenSubKey($key); | ||||
| foreach($sk in $r.GetSubKeyNames()){try{ Reg_TakeOwnership $HK "$($key+'\\'+$sk)" $false}catch{} }} | ||||
| Get-Acl "$($rk[0]+':\\'+$rk[1])" | fl:ps_reg_own: | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
| @@ -0,0 +1,48 @@ | ||||
| ==================================================================================================== | ||||
|    KMS38 Protection: | ||||
| ==================================================================================================== | ||||
|  | ||||
|  - If you don't know what KMS38 is, then first check it in the Read Me. | ||||
|  | ||||
|  - By default, a KMS38 Activation is vulnerable to unintended overwriting/replacement and  | ||||
|    neutralization by a 180-Day KMS Activator (non-KMS38 Activator). | ||||
|    However, with a few tricks you can ensure that no alternative KMS Activator can replace KMS38  | ||||
|    Activation by accident or even on purpose. This script demonstrate how to do/undo that. | ||||
|  | ||||
|  - Protect KMS38: | ||||
|    - How does KMS38 Protection work? | ||||
|      In the KMS activation method, the Windows Operating System first checks the KMS IP registered  | ||||
|      as a specific KMS, and if that is not defined then it checks the Global KMS IP. | ||||
|      Another fact is that if LocalHost (127.0.0.2) is defined as KMS IP in the Windows 8.1 and 10 OS's | ||||
|      then Windows will not accept it as a valid KMS IP. | ||||
|      This script simply utilizes the above facts to protect the KMS38 activation from being  | ||||
|      overwritten by any alternative 'normal' 180-Day KMS Activation. | ||||
|  | ||||
|      Script steps- | ||||
|      - Check if Windows is activated with KMS38, if yes, | ||||
|      - Set that Windows edition specific KMS IP to LocalHost (127.0.0.2), | ||||
| HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\55c92734-d682-4d71-983e-d6ec3f16059f\XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX | ||||
| where X is Windows edition Activation ID. | ||||
|  | ||||
|      - Lock this Registry with Reg_takeownership snippet by @AveYo aka @BAU | ||||
|        pastebin.com/XTPt0JSC | ||||
|      - Done. | ||||
|  | ||||
|  - Unprotect KMS38: | ||||
|    - Just undo above steps, | ||||
|      - Give administrator full control of that mentioned registry key. | ||||
|      - Delete that registry key. | ||||
|      - Done. | ||||
|  | ||||
| ======================================================================================================= | ||||
|  | ||||
|   This script is a part of 'Microsoft Activation Scripts' project. | ||||
|  | ||||
|   Homepages- | ||||
|   NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
|   GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
|   GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
|  | ||||
|   Maintained by @WindowsAddict | ||||
|  | ||||
| ======================================================================================================= | ||||
| @@ -0,0 +1,291 @@ | ||||
| @setlocal DisableDelayedExpansion | ||||
| @echo off | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| :: ======================================================================================================= | ||||
| :: | ||||
| ::   This script is a part of 'Microsoft Activation Scripts' project. | ||||
| :: | ||||
| ::   Homepages- | ||||
| ::   NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
| ::   GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
| ::   GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
| :: | ||||
| ::   Maintained by @WindowsAddict | ||||
| :: | ||||
| :: ======================================================================================================= | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| title Change Windows 10 Edition with Retail/OEM Key | ||||
| set _elev= | ||||
| if /i "%~1"=="-el" set _elev=1 | ||||
| for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G | ||||
| set "_psc=powershell" | ||||
| set "nul=1>nul 2>nul" | ||||
| set "ELine=echo: &echo ==== ERROR ==== &echo:" | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| if %winbuild% LSS 17134 ( | ||||
| %ELine% | ||||
| echo Unsupported OS version Detected. | ||||
| echo OS Requirement - Windows 10 [17134] 1803 and later builds. | ||||
| goto Ced_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Elevate script as admin and pass arguments and preventing loop | ||||
| ::  Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. | ||||
| ::  Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. | ||||
|  | ||||
| %nul% reg query HKU\S-1-5-19 && ( | ||||
|   goto :Passed | ||||
|   ) || ( | ||||
|   if defined _elev goto :E_Admin | ||||
| ) | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_vbsf=%temp%\admin.vbs" | ||||
| set _PSarg="""%~f0""" -el | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ( | ||||
| echo Set strArg=WScript.Arguments.Named | ||||
| echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) | ||||
| echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then | ||||
| echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) | ||||
| echo End If | ||||
| echo End With | ||||
| echo .Terminate | ||||
| echo End With | ||||
| echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 | ||||
| )>"!_vbsf!" | ||||
|  | ||||
| (%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el) && ( | ||||
| del /f /q "!_vbsf!" | ||||
| exit /b | ||||
| ) || ( | ||||
| del /f /q "!_vbsf!" | ||||
| %nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( | ||||
| exit /b | ||||
| ) || ( | ||||
| goto :E_Admin | ||||
| ) | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| :E_Admin | ||||
| %ELine% | ||||
| echo This script require administrator privileges. | ||||
| echo To do so, right click on this script and select 'Run as administrator'. | ||||
| goto Ced_Done | ||||
|  | ||||
| :Passed | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Set buffer height independently of window height | ||||
| ::  https://stackoverflow.com/a/13351373 | ||||
| ::  Written by @dbenham | ||||
|  | ||||
| mode con: cols=98 lines=31 | ||||
| %nul% %_psc% "&{$H=get-host;$W=$H.ui.rawui;$B=$W.buffersize;$B.height=36;$W.buffersize=$B;}" | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| set slp=SoftwareLicensingProduct | ||||
| set sls=SoftwareLicensingService | ||||
| set wApp=55c92734-d682-4d71-983e-d6ec3f16059f | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ::  Check Installation type | ||||
| set instype= | ||||
| for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v InstallationType 2^>nul') do if not errorlevel 1 set "instype=%%b" | ||||
|  | ||||
| if not "%instype%"=="Client" ( | ||||
| %ELine% | ||||
| echo Unsupported OS version [Server] Detected. | ||||
| echo OS Requirement - Windows 10 [17134] 1803 and later builds. | ||||
| goto Ced_Done | ||||
| ) | ||||
|  | ||||
| ::  Check Windows Edition | ||||
| set osedition= | ||||
| for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and PartialProductKey is not NULL) get LicenseFamily /VALUE" 2^>nul') do if not errorlevel 1 set "osedition=%%a" | ||||
| if not defined osedition for /f "tokens=3 delims=: " %%a in ('DISM /English /Online /Get-CurrentEdition 2^>nul ^| find /i "Current Edition :"') do set "osedition=%%a" | ||||
|  | ||||
| cls | ||||
| if "%osedition%"=="" ( | ||||
| %ELine% | ||||
| echo OS Edition was not detected properly. Aborting... | ||||
| goto Ced_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| echo _______________________________________________________________________________________________ | ||||
| echo: | ||||
| echo  Note 1 - This script can not change 'Core'(Home) to 'Non-Core' (Pro) Editions. | ||||
| echo           You'll have to do the above manually, Follow these steps. | ||||
| echo         - Disable internet. | ||||
| echo         - Go to Settings ^> Update ^& Security ^> Activation and  | ||||
| echo           Insert 'Pro' Edition Product Key VK7JG-NPHTM-C97JM-9MPGT-3V66T | ||||
| echo         - Follow on screen instructions, Done. [Incase of errors, restart the system.] | ||||
| echo: | ||||
| echo  Note 2 - Following option works only in W10 17134 (RS4) and later builds. | ||||
| echo _______________________________________________________________________________________________ | ||||
| echo: | ||||
| echo   You can change the Current Edition '%osedition%' to one of the following : | ||||
| echo _______________________________________________________________________________________________ | ||||
|  | ||||
| REM Thanks to @RPO for the help in codes | ||||
|  | ||||
| echo: | ||||
| for /f "tokens=4" %%a in ('dism /online /english /Get-TargetEditions ^| findstr /i /c:"Target Edition : "') do echo %%a | ||||
| echo: | ||||
| choice /C:21 /N /M "[1] Continue [2] Exit : " | ||||
| if %errorlevel%==1 exit /b | ||||
| echo: | ||||
|  | ||||
| for /f "tokens=4" %%a in ('dism /online /english /Get-TargetEditions ^| findstr /i /c:"Target Edition : "') do ( | ||||
|  | ||||
| choice /C:NY /N /M "Do you want to change to the %%a edition? [Y,N] : " | ||||
| if errorlevel 2 ( | ||||
|  | ||||
| call :%%a %nul% | ||||
| if "!key!"=="" cls &%ELine% &echo [%%a ^| %winbuild%] HWID Activation is Not Supported. &goto Ced_Done | ||||
|  | ||||
| cls | ||||
| echo ____________________________________________________________________ | ||||
|  | ||||
| REM  Thanks to @abbodi1406 for the WMI methods | ||||
|  | ||||
| echo: | ||||
| echo Changing the Edition to Windows 10 %%a | ||||
| wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="!key!" %nul% && ( | ||||
| for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#" | ||||
| wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% | ||||
| echo: | ||||
| call echo Installing %%_channel%% Key [!key!]  | ||||
| echo [Successful] | ||||
| echo: | ||||
| echo Reboot is required to properly change the Edition. | ||||
| ) || ( | ||||
| %ELine% | ||||
| echo Installing Retail/OEM Key [!key!] | ||||
| echo [Unsuccessful] | ||||
| ) | ||||
| echo ____________________________________________________________________ | ||||
|  | ||||
| goto Ced_Done | ||||
| )) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :Ced_Done | ||||
|  | ||||
| echo: | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :: Retail_OEM Key List | ||||
|  | ||||
| :Core | ||||
| set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7" | ||||
| exit /b | ||||
|  | ||||
| :CoreCountrySpecific | ||||
| set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD" | ||||
| exit /b | ||||
|  | ||||
| :CoreN | ||||
| set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW" | ||||
| exit /b | ||||
|  | ||||
| :CoreSingleLanguage | ||||
| set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT" | ||||
| exit /b | ||||
|  | ||||
| :Education | ||||
| set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY" | ||||
| exit /b | ||||
|  | ||||
| :EducationN | ||||
| set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H" | ||||
| exit /b | ||||
|  | ||||
| :Enterprise | ||||
| set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C" | ||||
| exit /b | ||||
|  | ||||
| :EnterpriseN | ||||
| set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT" | ||||
| exit /b | ||||
|  | ||||
| :EnterpriseS | ||||
| if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW" | ||||
| if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX" | ||||
| exit /b | ||||
|  | ||||
| :EnterpriseSN | ||||
| if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K" | ||||
| if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4" | ||||
| exit /b | ||||
|  | ||||
| :Professional | ||||
| set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalEducation | ||||
| set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalEducationN | ||||
| set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalN | ||||
| set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalWorkstation | ||||
| set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalWorkstationN | ||||
| set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ" | ||||
| exit /b | ||||
|  | ||||
| :ServerRdsh | ||||
| set "key=NJCF7-PW8QT-3324D-688JX-2YV66" | ||||
| exit /b | ||||
|  | ||||
| :IoTEnterprise | ||||
| set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD" | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
							
								
								
									
										324
									
								
								MAS_1.4/Separate-Files-Version/Extras/OEMRET-Install_W10_Key.cmd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										324
									
								
								MAS_1.4/Separate-Files-Version/Extras/OEMRET-Install_W10_Key.cmd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,324 @@ | ||||
| @setlocal DisableDelayedExpansion | ||||
| @echo off | ||||
|  | ||||
| :: For unattended mode, run the script with /u parameter. | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| :: ======================================================================================================= | ||||
| :: | ||||
| ::   This script is a part of 'Microsoft Activation Scripts' project. | ||||
| :: | ||||
| ::   Homepages- | ||||
| ::   NsaneForums: (Login Required) https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ | ||||
| ::   GitHub: https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
| ::   GitLab: https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
| :: | ||||
| ::   Maintained by @WindowsAddict | ||||
| :: | ||||
| :: ======================================================================================================= | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| cls | ||||
| title Install Windows 10 Retail/OEM Key | ||||
| set Unattended= | ||||
| set _args= | ||||
| set _elev= | ||||
| set "_arg1=%~1" | ||||
| if not defined _arg1 goto :NoProgArgs | ||||
| set "_args=%~1" | ||||
| set "_arg2=%~2" | ||||
| if defined _arg2 set "_args=%~1 %~2" | ||||
| for %%A in (%_args%) do ( | ||||
| if /i "%%A"=="-el" set _elev=1 | ||||
| if /i "%%A"=="/u" set Unattended=1) | ||||
| :NoProgArgs | ||||
| for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G | ||||
| set "_psc=powershell" | ||||
| set "nul=1>nul 2>nul" | ||||
| set "ELine=echo: &echo ==== ERROR ==== &echo:" | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| if %winbuild% LSS 10240 ( | ||||
| %ELine% | ||||
| echo Unsupported OS version Detected. | ||||
| echo Project is supported only for Windows 10. | ||||
| goto Ins_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Elevate script as admin and pass arguments and preventing loop | ||||
| ::  Thanks to @hearywarlot [ https://forums.mydigitallife.net/threads/.74332/ ] for the VBS method. | ||||
| ::  Thanks to @abbodi1406 for the powershell method and solving special characters issue in file path name. | ||||
|  | ||||
| %nul% reg query HKU\S-1-5-19 && ( | ||||
|   goto :Passed | ||||
|   ) || ( | ||||
|   if defined _elev goto :E_Admin | ||||
| ) | ||||
|  | ||||
| set "_batf=%~f0" | ||||
| set "_vbsf=%temp%\admin.vbs" | ||||
| set _PSarg="""%~f0""" -el | ||||
| if defined _args set _PSarg="""%~f0""" -el """%_args%""" | ||||
|  | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ( | ||||
| echo Set strArg=WScript.Arguments.Named | ||||
| echo Set strRdlproc = CreateObject^("WScript.Shell"^).Exec^("rundll32 kernel32,Sleep"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& strRdlproc.ProcessId ^& "'"^) | ||||
| echo With GetObject^("winmgmts:\\.\root\CIMV2:Win32_Process.Handle='" ^& .ParentProcessId ^& "'"^) | ||||
| echo If InStr ^(.CommandLine, WScript.ScriptName^) ^<^> 0 Then | ||||
| echo strLine = Mid^(.CommandLine, InStr^(.CommandLine , "/File:"^) + Len^(strArg^("File"^)^) + 8^) | ||||
| echo End If | ||||
| echo End With | ||||
| echo .Terminate | ||||
| echo End With | ||||
| echo CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c " ^& chr^(34^) ^& chr^(34^) ^& strArg^("File"^) ^& chr^(34^) ^& strLine ^& chr^(34^), "", "runas", 1 | ||||
| )>"!_vbsf!" | ||||
|  | ||||
| (%nul% cscript //NoLogo "!_vbsf!" /File:"!_batf!" -el "!_args!") && ( | ||||
| del /f /q "!_vbsf!" | ||||
| exit /b | ||||
| ) || ( | ||||
| del /f /q "!_vbsf!" | ||||
| %nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && ( | ||||
| exit /b | ||||
| ) || ( | ||||
| goto :E_Admin | ||||
| ) | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| :E_Admin | ||||
| %ELine% | ||||
| echo This script require administrator privileges. | ||||
| echo To do so, right click on this script and select 'Run as administrator'. | ||||
| goto Ins_Done | ||||
|  | ||||
| :Passed | ||||
|  | ||||
| mode con: cols=98 lines=30 | ||||
| setlocal EnableDelayedExpansion | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Check Windows OS name | ||||
|  | ||||
| set winos= | ||||
| for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do if not errorlevel 1 set "winos=%%b" | ||||
| if not defined winos for /f "tokens=2* delims== " %%a in ('"wmic os get caption /value" 2^>nul') do if not errorlevel 1 set "winos=%%b" | ||||
|  | ||||
| ::  Check SKU value | ||||
|  | ||||
| set SKU= | ||||
| for /f "tokens=2 delims==" %%a IN ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 (set osSKU=%%a) | ||||
| if not defined SKU for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do if not errorlevel 1 (set osSKU=%%a) | ||||
|  | ||||
| if "%osSKU%"=="" ( | ||||
| %ELine% | ||||
| echo SKU value was not detected properly. Aborting... | ||||
| goto Ins_Done | ||||
| ) | ||||
|  | ||||
| ::  Check Windows Edition with SKU value for better accuracy | ||||
|  | ||||
| set osedition= | ||||
| call :CheckEdition %nul% | ||||
|  | ||||
| if "%osedition%"=="" ( | ||||
| %ELine% | ||||
| echo [%winos% ^| %winbuild% ^| SKU:%osSKU%] HWID Activation is Not Supported. | ||||
| goto Ins_Done | ||||
| ) | ||||
|  | ||||
| set key= | ||||
| call :%osedition% %nul% | ||||
|  | ||||
| if "%key%"=="" ( | ||||
| %ELine% | ||||
| echo [%winos% ^| %winbuild%] HWID Activation is Not Supported. | ||||
| goto Ins_Done | ||||
| ) | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| if defined Unattended goto ContinueKeyInsert | ||||
|  | ||||
| cls | ||||
| echo ___________________________________________________________________________________________ | ||||
| echo: | ||||
| echo  Install [%winos% ^| %winbuild%] Retail/OEM Key  | ||||
| echo  [%key%] | ||||
| echo ___________________________________________________________________________________________ | ||||
| echo: | ||||
| choice /C:12 /N /M "[1] Continue [2] Exit : " | ||||
|  | ||||
| if errorlevel 2 exit /b | ||||
| if errorlevel 1 goto ContinueKeyInsert | ||||
|  | ||||
| :ContinueKeyInsert | ||||
|  | ||||
| cls | ||||
| echo ___________________________________________________________________________________________ | ||||
|  | ||||
| ::  Thanks to @abbodi1406 for the WMI methods | ||||
|  | ||||
| set slp=SoftwareLicensingProduct | ||||
| set sls=SoftwareLicensingService | ||||
| set wApp=55c92734-d682-4d71-983e-d6ec3f16059f | ||||
|  | ||||
| wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul% && ( | ||||
| for /f "tokens=2 delims==" %%# in ('wmic path %slp% where "ApplicationID='%wApp%' and PartialProductKey<>null" Get ProductKeyChannel /value 2^>nul') do set "_channel=%%#" | ||||
| wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul% | ||||
| echo: | ||||
| echo [%winos% ^| %winbuild%] | ||||
| call echo Installing %%_channel%% Key [%key%]  | ||||
| echo [Successful] | ||||
| ) || ( | ||||
| %ELine% | ||||
| echo Installing Retail/OEM Key [%key%] | ||||
| echo [Unsuccessful] | ||||
| ) | ||||
| echo ___________________________________________________________________________________________ | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :Ins_Done | ||||
| echo: | ||||
| if defined Unattended ( | ||||
| echo Exiting in 3 seconds... | ||||
| if %winbuild% LSS 7600 (ping -n 3 127.0.0.1 > nul) else (timeout /t 3) | ||||
| exit /b | ||||
| ) | ||||
| echo Press any key to exit... | ||||
| pause >nul | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| ::  Check Windows Edition with SKU value for better accuracy | ||||
|  | ||||
| :CheckEdition | ||||
|  | ||||
| for %%# in ( | ||||
| 4-Enterprise | ||||
| 27-EnterpriseN | ||||
| 48-Professional | ||||
| 49-ProfessionalN | ||||
| 98-CoreN | ||||
| 99-CoreCountrySpecific | ||||
| 100-CoreSingleLanguage | ||||
| 101-Core | ||||
| 121-Education | ||||
| 122-EducationN | ||||
| 125-EnterpriseS | ||||
| 126-EnterpriseSN | ||||
| 161-ProfessionalWorkstation | ||||
| 162-ProfessionalWorkstationN | ||||
| 164-ProfessionalEducation | ||||
| 165-ProfessionalEducationN | ||||
| 175-ServerRdsh | ||||
| 188-IoTEnterprise | ||||
| ) do for /f "tokens=1,2 delims=-" %%A in ("%%#") do ( | ||||
| if %osSKU%==%%A set "osedition=%%B" | ||||
| ) | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
|  | ||||
| :: Retail/OEM Key List | ||||
|  | ||||
| :Core | ||||
| set "key=YTMG3-N6DKC-DKB77-7M9GH-8HVX7" | ||||
| exit /b | ||||
|  | ||||
| :CoreCountrySpecific | ||||
| set "key=N2434-X9D7W-8PF6X-8DV9T-8TYMD" | ||||
| exit /b | ||||
|  | ||||
| :CoreN | ||||
| set "key=4CPRK-NM3K3-X6XXQ-RXX86-WXCHW" | ||||
| exit /b | ||||
|  | ||||
| :CoreSingleLanguage | ||||
| set "key=BT79Q-G7N6G-PGBYW-4YWX6-6F4BT" | ||||
| exit /b | ||||
|  | ||||
| :Education | ||||
| set "key=YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY" | ||||
| exit /b | ||||
|  | ||||
| :EducationN | ||||
| set "key=84NGF-MHBT6-FXBX8-QWJK7-DRR8H" | ||||
| exit /b | ||||
|  | ||||
| :Enterprise | ||||
| set "key=XGVPP-NMH47-7TTHJ-W3FW7-8HV2C" | ||||
| exit /b | ||||
|  | ||||
| :EnterpriseN | ||||
| set "key=3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT" | ||||
| exit /b | ||||
|  | ||||
| :EnterpriseS | ||||
| if "%winbuild%" EQU "10240" set "key=FWN7H-PF93Q-4GGP8-M8RF3-MDWWW" | ||||
| if "%winbuild%" EQU "14393" set "key=NK96Y-D9CD8-W44CQ-R8YTK-DYJWX" | ||||
| if "%winbuild%" EQU "17763" set "key=43TBQ-NH92J-XKTM7-KT3KK-P39PB" | ||||
| exit /b | ||||
|  | ||||
| :EnterpriseSN | ||||
| if "%winbuild%" EQU "10240" set "key=8V8WN-3GXBH-2TCMG-XHRX3-9766K" | ||||
| if "%winbuild%" EQU "14393" set "key=2DBW3-N2PJG-MVHW3-G7TDK-9HKR4" | ||||
| if "%winbuild%" EQU "17763" set "key=M33WV-NHY3C-R7FPM-BQGPT-239PG" | ||||
| exit /b | ||||
|  | ||||
| :Professional | ||||
| set "key=VK7JG-NPHTM-C97JM-9MPGT-3V66T" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalEducation | ||||
| set "key=8PTT6-RNW4C-6V7J2-C2D3X-MHBPB" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalEducationN | ||||
| set "key=GJTYN-HDMQY-FRR76-HVGC7-QPF8P" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalN | ||||
| set "key=2B87N-8KFHP-DKV6R-Y2C8J-PKCKT" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalWorkstation | ||||
| set "key=DXG7C-N36C4-C4HTG-X4T3X-2YV77" | ||||
| exit /b | ||||
|  | ||||
| :ProfessionalWorkstationN | ||||
| set "key=WYPNQ-8C467-V2W6J-TX4WX-WT2RQ" | ||||
| exit /b | ||||
|  | ||||
| :ServerRdsh | ||||
| set "key=NJCF7-PW8QT-3324D-688JX-2YV66" | ||||
| exit /b | ||||
|  | ||||
| :IoTEnterprise | ||||
| set "key=XQQYW-NFFMW-XJPBH-K8732-CKFFD" | ||||
| exit /b | ||||
|  | ||||
| ::======================================================================================================================================== | ||||
							
								
								
									
										4
									
								
								MAS_1.4/Separate-Files-Version/Homepages.cmd
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								MAS_1.4/Separate-Files-Version/Homepages.cmd
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| @echo off | ||||
| start https://www.nsaneforums.com/topic/316668-microsoft-activation-scripts/ &:: Login required | ||||
| start https://gitlab.com/massgrave/microsoft-activation-scripts | ||||
| start https://github.com/massgravel/Microsoft-Activation-Scripts | ||||
							
								
								
									
										31
									
								
								MAS_1.4/Separate-Files-Version/checksums.sha1
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								MAS_1.4/Separate-Files-Version/checksums.sha1
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,31 @@ | ||||
| Use the tool 'HashCheck' to compare hashes. | ||||
| https://github.com/gurnec/HashCheck/releases/latest | ||||
|  | ||||
| 9d5b4b3e761cca9531d64200dfbbfa0dec94f5b0 *Activators\Online_KMS_Activation\BIN\_Info.txt | ||||
| d57c788596f485f049408afb131d4fa0ee154656 *Activators\Check_Activation_Status.cmd | ||||
| 50d013f8e3b0dd700f320bd4365ec9793560f864 *Activators\Online_KMS_Activation\Renewal_Setup.cmd | ||||
| 5ac6508de2ce0c24d60a0fc28aecdc1145260a15 *Activators\Online_KMS_Activation\Uninstall.cmd | ||||
| 2ca8daf456c858d58d51d20ccf6857da7460bcae *Activators\Online_KMS_Activation\_ReadMe.txt | ||||
| 68de64a326cdf1b0336c2ecd42a62fec8e7110f2 *Activators\ReadMe.txt | ||||
| 8b81e4db09cf7800d678b0ff8569df7c8ca278f1 *Extras\Download_Genuine_Installation_Media.url | ||||
| cb5a91b37ee61efa55d7a1d22bb69950aebd5400 *Extras\Extract_OEM_Folder\Extract_OEM_Folder.cmd | ||||
| 6c0697f17d1a7d8589eaaf37a4275fa745615f30 *Extras\Extract_OEM_Folder\ReadMe.txt | ||||
| 29407b10093b0e5512bbc67907d03305d0bd29cf *Extras\KMS38_Protection\Protect_Unprotect-KMS38.cmd | ||||
| a8443a4aa8d1956ea893557e18b3d8ec8056269f *Extras\KMS38_Protection\ReadMe.txt | ||||
| 3a6a6836ecead427255f295b07673bfd19dc64f2 *Extras\OEMRET-Change_W10_Edition.cmd | ||||
| c6873740476fe8d7f2231b3887fd4610d953fb6a *Extras\OEMRET-Install_W10_Key.cmd | ||||
| b470dc10afa63feebc1d8c1249b59f0a299026a6 *Credits.txt | ||||
| 36075a49f50c915b3878f60460a3bb0301f3b257 *Homepages.cmd | ||||
| 578364cb2319da7999acd8c015b4ce8da8f1b282 *Activators\HWID-KMS38_Activation\BIN\ARM64_gatherosstate.exe | ||||
| 5dbea3a580cf60391453a04a5c910a3ceca2b810 *Activators\HWID-KMS38_Activation\BIN\ARM64_slc.dll | ||||
| 8f2f944a9883f94e546be9fea9bd4320d64da771 *Activators\HWID-KMS38_Activation\KMS38_Activation.cmd | ||||
| 84bffadaf6fbaee62a31121fe367375d94add6f3 *Activators\HWID-KMS38_Activation\ReadMe_HWID.txt | ||||
| a53371e73405ba9c1c4fa6a29c604bf3b954117c *Activators\HWID-KMS38_Activation\ReadMe_KMS38.txt | ||||
| 7937f8ffdc4f12086e667aab72e90e341148b8de *Activators\Online_KMS_Activation\Activate.cmd | ||||
| d30a0e4e5911d3ca705617d17225372731c770e2 *Activators\Online_KMS_Activation\BIN\cleanosppx64.exe | ||||
| 39ed8659e7ca16aaccb86def94ce6cec4c847dd6 *Activators\Online_KMS_Activation\BIN\cleanosppx86.exe | ||||
| 48d928b1bec25a56fe896c430c2c034b7866aa7a *Activators\HWID-KMS38_Activation\BIN\ClipUp.exe | ||||
| be0392be7ee0a78c7d1e8903cd29ea76cbafe201 *Activators\HWID-KMS38_Activation\BIN\_Info.txt | ||||
| f526609ed2f705c2a796462d1a49041043de3a2d *Activators\HWID-KMS38_Activation\HWID_Activation.cmd | ||||
| fabb5a0fc1e6a372219711152291339af36ed0b5 *Activators\HWID-KMS38_Activation\BIN\gatherosstate.exe | ||||
| ca3a51fdfc8749b8be85f7904b1c238a6dfba135 *Activators\HWID-KMS38_Activation\BIN\slc.dll | ||||
		Reference in New Issue
	
	Block a user
	 GitHub
						GitHub