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,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. | ||||
		Reference in New Issue
	
	Block a user
	 GitHub
						GitHub