mirror of
https://github.com/massgravel/Microsoft-Activation-Scripts.git
synced 2025-02-21 12:49:58 +00:00
Compare commits
32 Commits
Author | SHA1 | Date | |
---|---|---|---|
![]() |
ed91ab5ac2 | ||
![]() |
bc8ae03488 | ||
![]() |
d17d7496e0 | ||
![]() |
22938f30e1 | ||
![]() |
987b518ba1 | ||
![]() |
eecd977184 | ||
![]() |
7323b3ab18 | ||
![]() |
f551f61998 | ||
![]() |
43ce3cc4be | ||
![]() |
6791e7a73f | ||
![]() |
f0fefb7baa | ||
![]() |
73b1085da6 | ||
![]() |
47e3aa20dc | ||
![]() |
f27b3fbe6e | ||
![]() |
d62eeb9355 | ||
![]() |
f22b577af8 | ||
![]() |
76f9092e80 | ||
![]() |
1b3bb6b4ef | ||
![]() |
2d24a4cba4 | ||
![]() |
e309ccf1d0 | ||
![]() |
9e76e9ef6e | ||
![]() |
c76fe2fbd6 | ||
![]() |
0a0db38cea | ||
![]() |
e481c0db85 | ||
![]() |
65354304c9 | ||
![]() |
602747a8d3 | ||
![]() |
5ff9ff8db3 | ||
![]() |
c95ccceabc | ||
![]() |
a6184d2387 | ||
![]() |
167bc1febf | ||
![]() |
e54b15a5b1 | ||
![]() |
9a15265109 |
File diff suppressed because it is too large
Load Diff
9037
MAS/All-In-One-Version/MAS_AIO.cmd
Normal file
9037
MAS/All-In-One-Version/MAS_AIO.cmd
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,3 +0,0 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://windowsaddict.ml/readme-mas-root-folder.html">
|
||||
</html>
|
1318
MAS/Separate-Files-Version/Activation_Troubleshoot.cmd
Normal file
1318
MAS/Separate-Files-Version/Activation_Troubleshoot.cmd
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,3 +0,0 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://windowsaddict.ml/readme-activations-summary.html">
|
||||
</html>
|
Binary file not shown.
@ -1,3 +0,0 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://windowsaddict.ml/readme-hwid-kms38-files.html">
|
||||
</html>
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,3 +0,0 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://windowsaddict.ml/readme-hwid.html">
|
||||
</html>
|
@ -1,3 +0,0 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://windowsaddict.ml/readme-kms38.html">
|
||||
</html>
|
@ -1,3 +0,0 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://windowsaddict.ml/readme-online-kms-files.html">
|
||||
</html>
|
@ -1,3 +0,0 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://windowsaddict.ml/readme-online-kms.html">
|
||||
</html>
|
1022
MAS/Separate-Files-Version/Change_Edition.cmd
Normal file
1022
MAS/Separate-Files-Version/Change_Edition.cmd
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,209 +1,233 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
@cls
|
||||
|
||||
|
||||
|
||||
:: Check-Activation-Status-vbs.cmd
|
||||
:: Written by @abbodi1406
|
||||
:: forums.mydigitallife.net/posts/838808
|
||||
|
||||
|
||||
|
||||
set "_cmdf=%~f0"
|
||||
if exist "%SystemRoot%\Sysnative\cmd.exe" (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" "
|
||||
exit /b
|
||||
)
|
||||
if exist "%SystemRoot%\SysArm32\cmd.exe" if /i %PROCESSOR_ARCHITECTURE%==AMD64 (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" "
|
||||
exit /b
|
||||
)
|
||||
color 07
|
||||
title Check Activation Status [vbs]
|
||||
set "SysPath=%SystemRoot%\System32"
|
||||
if exist "%SystemRoot%\Sysnative\reg.exe" (set "SysPath=%SystemRoot%\Sysnative")
|
||||
set "Path=%SysPath%;%SystemRoot%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
set "_bit=64"
|
||||
set "_wow=1"
|
||||
if /i "%PROCESSOR_ARCHITECTURE%"=="x86" if "%PROCESSOR_ARCHITEW6432%"=="" set "_wow=0"&set "_bit=32"
|
||||
set "_utemp=%TEMP%"
|
||||
set "line2=************************************************************"
|
||||
set "line3=____________________________________________________________"
|
||||
set _sO16vbs=0
|
||||
set _sO15vbs=0
|
||||
if exist "%ProgramFiles%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set _sO15vbs=1
|
||||
) else if exist "%ProgramW6432%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set _sO15vbs=1
|
||||
) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set _sO15vbs=1
|
||||
)
|
||||
setlocal EnableDelayedExpansion
|
||||
echo %line2%
|
||||
echo *** Windows Status ***
|
||||
echo %line2%
|
||||
pushd "!_utemp!"
|
||||
copy /y %SystemRoot%\System32\slmgr.vbs . >nul 2>&1
|
||||
net start sppsvc /y >nul 2>&1
|
||||
cscript //nologo slmgr.vbs /dli || (echo Error executing slmgr.vbs&del /f /q slmgr.vbs&popd&goto :casVend)
|
||||
cscript //nologo slmgr.vbs /xpr
|
||||
del /f /q slmgr.vbs >nul 2>&1
|
||||
popd
|
||||
echo %line3%
|
||||
|
||||
:casVo16
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\16.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
set _sO16vbs=1
|
||||
echo.
|
||||
echo %line2%
|
||||
if %_sO15vbs% EQU 0 (
|
||||
echo *** Office 2016 %_bit%-bit Status ***
|
||||
) else (
|
||||
echo *** Office 2013/2016 Status ***
|
||||
)
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
if %_wow%==0 goto :casVo13
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\16.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
set _sO16vbs=1
|
||||
echo.
|
||||
echo %line2%
|
||||
if %_sO15vbs% EQU 0 (
|
||||
echo *** Office 2016 32-bit Status ***
|
||||
) else (
|
||||
echo *** Office 2013/2016 Status ***
|
||||
)
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVo13
|
||||
if %_sO16vbs% EQU 1 goto :casVo10
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\15.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2013 %_bit%-bit Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
if %_wow%==0 goto :casVo10
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2013 32-bit Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVo10
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2010 %_bit%-bit Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
if %_wow%==0 goto :casVc16
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2010 32-bit Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVc16
|
||||
reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath >nul 2>&1 || (
|
||||
reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v InstallPath >nul 2>&1 || goto :casVc13
|
||||
)
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" 2^>nul') do (set "office=%%b\Office16")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
set _sO16vbs=1
|
||||
echo.
|
||||
echo %line2%
|
||||
if %_sO15vbs% EQU 0 (
|
||||
echo *** Office 2016-2021 C2R Status ***
|
||||
) else (
|
||||
echo *** Office 2013-2021 Status ***
|
||||
)
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
if %_wow%==0 goto :casVc13
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v InstallPath" 2^>nul') do (set "office=%%b\Office16")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
set _sO16vbs=1
|
||||
echo.
|
||||
echo %line2%
|
||||
if %_sO15vbs% EQU 0 (
|
||||
echo *** Office 2016-2021 C2R Status ***
|
||||
) else (
|
||||
echo *** Office 2013-2021 Status ***
|
||||
)
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVc13
|
||||
if %_sO16vbs% EQU 1 goto :casVc10
|
||||
reg query HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun /v InstallPath >nul 2>&1 || (
|
||||
reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\15.0\ClickToRun /v InstallPath >nul 2>&1 || goto :casVc10
|
||||
)
|
||||
set office=
|
||||
if exist "%ProgramFiles%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set "office=%ProgramFiles%\Microsoft Office\Office15"
|
||||
) else if exist "%ProgramW6432%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set "office=%ProgramW6432%\Microsoft Office\Office15"
|
||||
) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set "office=%ProgramFiles(x86)%\Microsoft Office\Office15"
|
||||
)
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2013 C2R Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVc10
|
||||
if %_wow%==0 reg query HKLM\SOFTWARE\Microsoft\Office\14.0\CVH /f Click2run /k >nul 2>&1 || goto :casVend
|
||||
if %_wow%==1 reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\CVH /f Click2run /k >nul 2>&1 || goto :casVend
|
||||
set office=
|
||||
if exist "%ProgramFiles%\Microsoft Office\Office14\ospp.vbs" (
|
||||
set "office=%ProgramFiles%\Microsoft Office\Office14"
|
||||
) else if exist "%ProgramW6432%\Microsoft Office\Office14\ospp.vbs" (
|
||||
set "office=%ProgramW6432%\Microsoft Office\Office14"
|
||||
) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office14\ospp.vbs" (
|
||||
set "office=%ProgramFiles(x86)%\Microsoft Office\Office14"
|
||||
)
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2010 C2R Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVend
|
||||
echo.
|
||||
echo Press any key to exit.
|
||||
pause >nul
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
@cls
|
||||
|
||||
|
||||
|
||||
:: Check-Activation-Status-vbs.cmd
|
||||
:: Written by @abbodi1406
|
||||
:: forums.mydigitallife.net/posts/838808
|
||||
|
||||
|
||||
|
||||
set _args=
|
||||
set _args=%*
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-wow" set _rel1=1
|
||||
if /i "%%A"=="-arm" set _rel2=1
|
||||
)
|
||||
set "_cmdf=%~f0"
|
||||
if exist "%SystemRoot%\Sysnative\cmd.exe" if not defined _rel1 (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" -wow"
|
||||
exit /b
|
||||
)
|
||||
if exist "%SystemRoot%\SysArm32\cmd.exe" if /i %PROCESSOR_ARCHITECTURE%==AMD64 if not defined _rel2 (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" -arm"
|
||||
exit /b
|
||||
)
|
||||
color 07
|
||||
title Check Activation Status [vbs]
|
||||
set "SysPath=%SystemRoot%\System32"
|
||||
set "Path=%SystemRoot%\System32;%SystemRoot%\System32\Wbem;%SystemRoot%\System32\WindowsPowerShell\v1.0\"
|
||||
if exist "%SystemRoot%\Sysnative\reg.exe" (
|
||||
set "SysPath=%SystemRoot%\Sysnative"
|
||||
set "Path=%SystemRoot%\Sysnative;%SystemRoot%\Sysnative\Wbem;%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\;%Path%"
|
||||
)
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /rxc:".*" "%~nx0"
|
||||
if not %errorlevel%==0 (
|
||||
echo:
|
||||
echo Error: This is not a correct file. It has LF line ending issue.
|
||||
echo:
|
||||
ping 127.0.0.1 -n 6 > nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
set "_bit=64"
|
||||
set "_wow=1"
|
||||
if /i "%PROCESSOR_ARCHITECTURE%"=="x86" if "%PROCESSOR_ARCHITEW6432%"=="" set "_wow=0"&set "_bit=32"
|
||||
set "_utemp=%TEMP%"
|
||||
set "line2=************************************************************"
|
||||
set "line3=____________________________________________________________"
|
||||
set _sO16vbs=0
|
||||
set _sO15vbs=0
|
||||
if exist "%ProgramFiles%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set _sO15vbs=1
|
||||
) else if exist "%ProgramW6432%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set _sO15vbs=1
|
||||
) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set _sO15vbs=1
|
||||
)
|
||||
setlocal EnableDelayedExpansion
|
||||
echo %line2%
|
||||
echo *** Windows Status ***
|
||||
echo %line2%
|
||||
pushd "!_utemp!"
|
||||
copy /y %SystemRoot%\System32\slmgr.vbs . >nul 2>&1
|
||||
net start sppsvc /y >nul 2>&1
|
||||
cscript //nologo slmgr.vbs /dli || (echo Error executing slmgr.vbs&del /f /q slmgr.vbs&popd&goto :casVend)
|
||||
cscript //nologo slmgr.vbs /xpr
|
||||
del /f /q slmgr.vbs >nul 2>&1
|
||||
popd
|
||||
echo %line3%
|
||||
|
||||
:casVo16
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\16.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
set _sO16vbs=1
|
||||
echo.
|
||||
echo %line2%
|
||||
if %_sO15vbs% EQU 0 (
|
||||
echo *** Office 2016 %_bit%-bit Status ***
|
||||
) else (
|
||||
echo *** Office 2013/2016 Status ***
|
||||
)
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
if %_wow%==0 goto :casVo13
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\16.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
set _sO16vbs=1
|
||||
echo.
|
||||
echo %line2%
|
||||
if %_sO15vbs% EQU 0 (
|
||||
echo *** Office 2016 32-bit Status ***
|
||||
) else (
|
||||
echo *** Office 2013/2016 Status ***
|
||||
)
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVo13
|
||||
if %_sO16vbs% EQU 1 goto :casVo10
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\15.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2013 %_bit%-bit Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
if %_wow%==0 goto :casVo10
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2013 32-bit Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVo10
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2010 %_bit%-bit Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
if %_wow%==0 goto :casVc16
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Common\InstallRoot /v Path" 2^>nul') do (set "office=%%b")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2010 32-bit Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVc16
|
||||
reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath >nul 2>&1 || (
|
||||
reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v InstallPath >nul 2>&1 || goto :casVc13
|
||||
)
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\Microsoft\Office\ClickToRun /v InstallPath" 2^>nul') do (set "office=%%b\Office16")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
set _sO16vbs=1
|
||||
echo.
|
||||
echo %line2%
|
||||
if %_sO15vbs% EQU 0 (
|
||||
echo *** Office 2016-2021 C2R Status ***
|
||||
) else (
|
||||
echo *** Office 2013-2021 Status ***
|
||||
)
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
if %_wow%==0 goto :casVc13
|
||||
set office=
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\ClickToRun /v InstallPath" 2^>nul') do (set "office=%%b\Office16")
|
||||
if exist "!office!\ospp.vbs" (
|
||||
set _sO16vbs=1
|
||||
echo.
|
||||
echo %line2%
|
||||
if %_sO15vbs% EQU 0 (
|
||||
echo *** Office 2016-2021 C2R Status ***
|
||||
) else (
|
||||
echo *** Office 2013-2021 Status ***
|
||||
)
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVc13
|
||||
if %_sO16vbs% EQU 1 goto :casVc10
|
||||
reg query HKLM\SOFTWARE\Microsoft\Office\15.0\ClickToRun /v InstallPath >nul 2>&1 || (
|
||||
reg query HKLM\SOFTWARE\WOW6432Node\Microsoft\Office\15.0\ClickToRun /v InstallPath >nul 2>&1 || goto :casVc10
|
||||
)
|
||||
set office=
|
||||
if exist "%ProgramFiles%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set "office=%ProgramFiles%\Microsoft Office\Office15"
|
||||
) else if exist "%ProgramW6432%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set "office=%ProgramW6432%\Microsoft Office\Office15"
|
||||
) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office15\ospp.vbs" (
|
||||
set "office=%ProgramFiles(x86)%\Microsoft Office\Office15"
|
||||
)
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2013 C2R Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVc10
|
||||
if %_wow%==0 reg query HKLM\SOFTWARE\Microsoft\Office\14.0\CVH /f Click2run /k >nul 2>&1 || goto :casVend
|
||||
if %_wow%==1 reg query HKLM\SOFTWARE\Wow6432Node\Microsoft\Office\14.0\CVH /f Click2run /k >nul 2>&1 || goto :casVend
|
||||
set office=
|
||||
if exist "%ProgramFiles%\Microsoft Office\Office14\ospp.vbs" (
|
||||
set "office=%ProgramFiles%\Microsoft Office\Office14"
|
||||
) else if exist "%ProgramW6432%\Microsoft Office\Office14\ospp.vbs" (
|
||||
set "office=%ProgramW6432%\Microsoft Office\Office14"
|
||||
) else if exist "%ProgramFiles(x86)%\Microsoft Office\Office14\ospp.vbs" (
|
||||
set "office=%ProgramFiles(x86)%\Microsoft Office\Office14"
|
||||
)
|
||||
if exist "!office!\ospp.vbs" (
|
||||
echo.
|
||||
echo %line2%
|
||||
echo *** Office 2010 C2R Status ***
|
||||
echo %line2%
|
||||
cscript //nologo "!office!\ospp.vbs" /dstatus
|
||||
)
|
||||
|
||||
:casVend
|
||||
echo.
|
||||
echo Press any key to exit.
|
||||
pause >nul
|
||||
exit /b
|
File diff suppressed because it is too large
Load Diff
472
MAS/Separate-Files-Version/Extract_OEM_Folder.cmd
Normal file
472
MAS/Separate-Files-Version/Extract_OEM_Folder.cmd
Normal file
@ -0,0 +1,472 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' (MAS) project.
|
||||
::
|
||||
:: Homepage: massgrave.dev
|
||||
:: Email: windowsaddict@protonmail.com
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||
:: or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows
|
||||
|
||||
set "_cmdf=%~f0"
|
||||
for %%# in (%*) do (
|
||||
if /i "%%#"=="r1" set r1=1
|
||||
if /i "%%#"=="r2" set r2=1
|
||||
)
|
||||
|
||||
if exist %SystemRoot%\Sysnative\cmd.exe if not defined r1 (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" %* r1"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Re-launch the script with ARM32 process if it was initiated by x64 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\SysArm32\cmd.exe if %PROCESSOR_ARCHITECTURE%==AMD64 if not defined r2 (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" %* r2"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Set Path variable, it helps if it is misconfigured in the system
|
||||
|
||||
set "PATH=%SystemRoot%\System32;%SystemRoot%\System32\wbem;%SystemRoot%\System32\WindowsPowerShell\v1.0\"
|
||||
if exist "%SystemRoot%\Sysnative\reg.exe" (
|
||||
set "PATH=%SystemRoot%\Sysnative;%SystemRoot%\Sysnative\wbem;%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\;%PATH%"
|
||||
)
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /rxc:".*" "%~nx0"
|
||||
if not %errorlevel%==0 (
|
||||
echo:
|
||||
echo Error: This is not a correct file. It has LF line ending issue.
|
||||
echo:
|
||||
ping 127.0.0.1 -n 6 > nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Extract $OEM$ Folder
|
||||
|
||||
set winbuild=1
|
||||
set "nul=>nul 2>&1"
|
||||
set psc=powershell.exe
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
set _NCS=1
|
||||
if %winbuild% LSS 10586 set _NCS=0
|
||||
if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 2>nul | find /i "0x0" 1>nul && (set _NCS=0)
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
for /F %%a in ('echo prompt $E ^| cmd') do set "esc=%%a"
|
||||
set "Red="41;97m""
|
||||
set "Green="42;97m""
|
||||
set "Magenta="45;97m""
|
||||
set "_White="40;37m""
|
||||
set "_Green="40;92m""
|
||||
set "_Yellow="40;93m""
|
||||
) else (
|
||||
set "Red="Red" "white""
|
||||
set "Green="DarkGreen" "white""
|
||||
set "Magenta="Darkmagenta" "white""
|
||||
set "_White="Black" "Gray""
|
||||
set "_Green="Black" "Green""
|
||||
set "_Yellow="Black" "Yellow""
|
||||
)
|
||||
|
||||
set "nceline=echo: &echo ==== ERROR ==== &echo:"
|
||||
set "eline=echo: &call :ex_color %Red% "==== ERROR ====" &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%nceline%
|
||||
echo Unsupported OS version detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10/11 and their Server equivalent.
|
||||
goto done2
|
||||
)
|
||||
|
||||
for %%# in (powershell.exe) do @if "%%~$PATH:#"=="" (
|
||||
%nceline%
|
||||
echo Unable to find powershell.exe in the system.
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
|
||||
set desktop=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do call set "desktop=%%b"
|
||||
if not defined desktop for /f "delims=" %%a in ('%psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do call set "desktop=%%a"
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
set "_pdesk=%desktop:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
set "_ttemp=%temp%"
|
||||
|
||||
set "_dir=%desktop%\$OEM$\$$\Setup\Scripts"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" 1>nul && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%eline%
|
||||
echo Script is launched from the temp folder,
|
||||
echo Most likely you are running the script directly from the archive file.
|
||||
echo:
|
||||
echo Extract the archive file and launch the script from the extracted folder.
|
||||
goto done2
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
|
||||
>nul fltmc || (
|
||||
if not defined _elev %nul% %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%eline%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if not exist "!desktop!\" (
|
||||
%eline%
|
||||
echo Desktop location was not detected, aborting...
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode 66, 26
|
||||
|
||||
if exist "!desktop!\$OEM$\" (
|
||||
echo _____________________________________________________
|
||||
%eline%
|
||||
echo $OEM$ folder already exists on the Desktop.
|
||||
echo _____________________________________________________
|
||||
goto done2
|
||||
)
|
||||
|
||||
set HWID_Activation.cmd=HWID-KMS38_Activation\HWID_Activation.cmd
|
||||
set KMS38_Activation.cmd=HWID-KMS38_Activation\KMS38_Activation.cmd
|
||||
|
||||
set Activate.cmd=Online_KMS_Activation\Activate.cmd
|
||||
set cleanosppx64.exe=Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
set cleanosppx86.exe=Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
|
||||
pushd "!_work!"
|
||||
|
||||
set _nofile=
|
||||
for %%# in (
|
||||
%HWID_Activation.cmd%
|
||||
%KMS38_Activation.cmd%
|
||||
%Activate.cmd%
|
||||
%cleanosppx64.exe%
|
||||
%cleanosppx86.exe%
|
||||
) do (
|
||||
if not exist "%%#" set _nofile=1
|
||||
)
|
||||
|
||||
popd
|
||||
|
||||
if defined _nofile (
|
||||
echo _____________________________________________________
|
||||
%eline%
|
||||
echo Some files are missing in the 'Activators' folder.
|
||||
echo _____________________________________________________
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Menu
|
||||
|
||||
cls
|
||||
echo:
|
||||
echo:
|
||||
echo:
|
||||
echo:
|
||||
echo: Extract $OEM$ folder on the desktop
|
||||
echo: ________________________________________________________
|
||||
echo:
|
||||
echo: [1] HWID
|
||||
echo: [2] KMS38
|
||||
echo: [3] Online KMS
|
||||
echo:
|
||||
echo: [4] HWID ^(Windows^) ^+ Online KMS ^(Office^)
|
||||
echo: [5] KMS38 ^(Windows^) ^+ Online KMS ^(Office^)
|
||||
echo:
|
||||
echo: [0] Exit
|
||||
echo: ________________________________________________________
|
||||
echo:
|
||||
call :ex_color2 %_White% " " %_Green% "Enter a menu option in the Keyboard [1,2,3,4,5,0]"
|
||||
choice /C:123450 /N
|
||||
set _erl=%errorlevel%
|
||||
|
||||
if %_erl%==6 exit /b
|
||||
if %_erl%==5 goto:kms38_kms
|
||||
if %_erl%==4 goto:hwid_kms
|
||||
if %_erl%==3 goto:kms
|
||||
if %_erl%==2 goto:kms38
|
||||
if %_erl%==1 goto:hwid
|
||||
goto :Menu
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:hwid
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%HWID_Activation.cmd%" "!_dir!\HWID_Activation.cmd" %nul%
|
||||
popd
|
||||
call :export hwid_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\HWID_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
set oem=HWID
|
||||
goto done
|
||||
|
||||
:hwid_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /HWID
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:hwid_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:kms38
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%KMS38_Activation.cmd%" "!_dir!\KMS38_Activation.cmd" %nul%
|
||||
popd
|
||||
call :export kms38_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\KMS38_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" set _error=1
|
||||
if defined _error goto errorfound
|
||||
|
||||
set oem=KMS38
|
||||
goto done
|
||||
|
||||
:kms38_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /KMS38
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:kms38_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:kms
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%Activate.cmd%" "!_dir!\Activate.cmd" %nul%
|
||||
copy /y /b "%cleanosppx64.exe%" "!_dir!\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "%cleanosppx86.exe%" "!_dir!\BIN\cleanosppx86.exe" %nul%
|
||||
popd
|
||||
call :export kms_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\Activate.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.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 defined _error goto errorfound
|
||||
|
||||
set oem=Online KMS
|
||||
goto done
|
||||
|
||||
:kms_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0Activate.cmd" /KMS-ActAndRenewalTask /KMS-WindowsOffice
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:kms_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:hwid_kms
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%HWID_Activation.cmd%" "!_dir!\HWID_Activation.cmd" %nul%
|
||||
copy /y /b "%Activate.cmd%" "!_dir!\Activate.cmd" %nul%
|
||||
copy /y /b "%cleanosppx64.exe%" "!_dir!\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "%cleanosppx86.exe%" "!_dir!\BIN\cleanosppx86.exe" %nul%
|
||||
popd
|
||||
call :export hwid_kms_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\HWID_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Activate.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.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 defined _error goto errorfound
|
||||
|
||||
set oem=HWID [Windows] + Online KMS [Office]
|
||||
goto done
|
||||
|
||||
:hwid_kms_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /HWID
|
||||
|
||||
start /b /wait cmd /c "%~dp0Activate.cmd" /KMS-ActAndRenewalTask /KMS-Office
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:hwid_kms_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:kms38_kms
|
||||
|
||||
cls
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%KMS38_Activation.cmd%" "!_dir!\KMS38_Activation.cmd" %nul%
|
||||
copy /y /b "%Activate.cmd%" "!_dir!\Activate.cmd" %nul%
|
||||
copy /y /b "%cleanosppx64.exe%" "!_dir!\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "%cleanosppx86.exe%" "!_dir!\BIN\cleanosppx86.exe" %nul%
|
||||
popd
|
||||
call :export kms38_kms_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\KMS38_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Activate.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.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 defined _error goto errorfound
|
||||
|
||||
set oem=KMS38 [Windows] + Online KMS [Office]
|
||||
goto done
|
||||
|
||||
:kms38_kms_setup:
|
||||
@echo off
|
||||
|
||||
fltmc >nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /KMS38
|
||||
|
||||
start /b /wait cmd /c "%~dp0Activate.cmd" /KMS-ActAndRenewalTask /KMS-Office
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:kms38_kms_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:errorfound
|
||||
|
||||
%eline%
|
||||
echo $OEM$ Folder was not created successfully...
|
||||
goto :done2
|
||||
|
||||
:done
|
||||
|
||||
echo ______________________________________________________________
|
||||
echo:
|
||||
call :ex_color %Magenta% "%oem%"
|
||||
call :ex_color %Green% "$OEM$ folder is successfully created on the Desktop."
|
||||
echo "%oem%" | find /i "38" %nul% && (
|
||||
echo:
|
||||
echo To KMS38 activate Server Cor/Acor editions ^(No GUI Versions^),
|
||||
echo Check this page https://massgrave.dev/oem-folder
|
||||
)
|
||||
echo ______________________________________________________________
|
||||
|
||||
:done2
|
||||
|
||||
echo:
|
||||
call :ex_color %_Yellow% "Press any key to exit..."
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Extract the text from batch script without character and file encoding issue
|
||||
|
||||
:export
|
||||
|
||||
%nul% %psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('!_pdesk!\$OEM$\$$\Setup\Scripts\SetupComplete.cmd',$f[1].Trim(),[System.Text.Encoding]::ASCII);"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ex_color
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[0m
|
||||
) else (
|
||||
if not exist %psc% (echo %~3) else (%psc% write-host -back '%1' -fore '%2' '%3')
|
||||
)
|
||||
exit /b
|
||||
|
||||
:ex_color2
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[%~3%~4%esc%[0m
|
||||
) else (
|
||||
if not exist %psc% (echo %~3%~6) else (%psc% write-host -back '%1' -fore '%2' '%3' -NoNewline; write-host -back '%4' -fore '%5' '%6')
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,830 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' (MAS) project.
|
||||
::
|
||||
:: Homepage: windowsaddict.ml
|
||||
:: Email: windowsaddict@protonmail.com
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||
:: or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\Sysnative\cmd.exe (
|
||||
set "_cmdf=%~f0"
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" %*"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Re-launch the script with ARM32 process if it was initiated by x64 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\SysArm32\cmd.exe if %PROCESSOR_ARCHITECTURE%==AMD64 (
|
||||
set "_cmdf=%~f0"
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" %*"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Set Path variable, it helps if it is misconfigured in the system
|
||||
|
||||
set "SysPath=%SystemRoot%\System32"
|
||||
if exist "%SystemRoot%\Sysnative\reg.exe" (set "SysPath=%SystemRoot%\Sysnative")
|
||||
set "Path=%SysPath%;%SystemRoot%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Activation Troubleshoot
|
||||
|
||||
set _elev=
|
||||
if /i "%~1"=="-el" set _elev=1
|
||||
|
||||
set winbuild=1
|
||||
set "nul=>nul 2>&1"
|
||||
set "_psc=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe"
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
set _NCS=1
|
||||
if %winbuild% LSS 10586 set _NCS=0
|
||||
if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 2>nul | find /i "0x0" 1>nul && (set _NCS=0)
|
||||
|
||||
call :_colorprep
|
||||
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set ospp=OfficeSoftwareProtectionProduct
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set cbs_log=%SystemRoot%\logs\cbs\cbs.log
|
||||
set "nceline=echo: &echo ==== ERROR ==== &echo:"
|
||||
set "eline=echo: &call :_color %Red% "==== ERROR ====" &echo:"
|
||||
set "line=_________________________________________________________________________________________________"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%nceline%
|
||||
echo Unsupported OS version detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10/11 and their Server equivalent.
|
||||
goto at_done
|
||||
)
|
||||
|
||||
if not exist %_psc% (
|
||||
%nceline%
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto at_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
set "_PSarg="""%~f0""" -el %_args%"
|
||||
|
||||
set "_ttemp=%temp%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" 1>nul && (
|
||||
%nceline%
|
||||
echo Script is launched from the temp folder,
|
||||
echo Most likely you are running the script directly from the archive file.
|
||||
echo:
|
||||
echo Extract the archive file and launch the script from the extracted folder.
|
||||
goto at_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 || (
|
||||
if not defined _elev %nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%nceline%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto at_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
setlocal DisableDelayedExpansion
|
||||
|
||||
:: Check desktop location
|
||||
|
||||
set desktop=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do call set "desktop=%%b"
|
||||
if not defined desktop for /f "delims=" %%a in ('%_psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do call set "desktop=%%a"
|
||||
|
||||
if not defined desktop (
|
||||
%eline%
|
||||
echo Desktop location was not detected, aborting...
|
||||
goto at_done
|
||||
)
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:at_menu
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Activation Troubleshoot
|
||||
mode con cols=77 lines=30
|
||||
|
||||
echo:
|
||||
echo:
|
||||
echo:
|
||||
echo: _______________________________________________________________
|
||||
echo:
|
||||
echo: [1] Troubleshoot ReadMe - HWID
|
||||
echo: [2] Troubleshoot ReadMe - KMS38
|
||||
echo: [3] Troubleshoot ReadMe - Online KMS
|
||||
echo: ___________________________________________________
|
||||
echo:
|
||||
echo: [4] Dism RestoreHealth
|
||||
echo: [5] SFC Scannow
|
||||
echo:
|
||||
echo: [6] Windows Rearm - Specific SKU ID
|
||||
echo: [7] Office Rearm - Specific KMS SKU ID
|
||||
echo:
|
||||
echo: [8] Clean ClipSVC Licences
|
||||
echo: [9] Rebuild Licensing Tokens
|
||||
echo:
|
||||
echo: [F] Office License Is Not Genuine - Notification
|
||||
echo:
|
||||
echo: [0] Exit
|
||||
echo: _______________________________________________________________
|
||||
echo:
|
||||
call :_color2 %_White% " " %_Green% "Enter a menu option in the Keyboard :"
|
||||
choice /C:123456789F0 /N
|
||||
set _erl=%errorlevel%
|
||||
|
||||
if %_erl%==11 exit /b
|
||||
if %_erl%==10 start https://windowsaddict.ml/office-license-is-not-genuine &goto at_menu
|
||||
if %_erl%==9 goto:retokens
|
||||
if %_erl%==8 goto:cleanclipsvc
|
||||
if %_erl%==7 goto:officerearm
|
||||
if %_erl%==6 goto:rearmwin
|
||||
if %_erl%==5 goto:sfcscan
|
||||
if %_erl%==4 goto:dism_rest
|
||||
if %_erl%==3 start https://windowsaddict.ml/readme-troubleshoot-onlinekms.html &goto at_menu
|
||||
if %_erl%==2 start https://windowsaddict.ml/readme-troubleshoot-kms38.html &goto at_menu
|
||||
if %_erl%==1 start https://windowsaddict.ml/readme-troubleshoot-hwid.html &goto at_menu
|
||||
goto :at_menu
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:dism_rest
|
||||
|
||||
cls
|
||||
mode 98, 30
|
||||
title Dism /Online /Cleanup-Image /RestoreHealth
|
||||
|
||||
if %winbuild% LSS 9200 (
|
||||
%eline%
|
||||
echo Unsupported OS version Detected.
|
||||
echo This command is supported only for Windows 8/8.1/10/11 and their Server equivalent.
|
||||
goto :at_back
|
||||
)
|
||||
|
||||
set _int=
|
||||
for %%a in (dns.msftncsi.com,www.microsoft.com,one.one.one.one,resolver1.opendns.com) do (
|
||||
if not defined _int (for /f "delims=[] tokens=2" %%# in ('ping -n 1 %%a') do if not [%%#]==[] set _int=1))
|
||||
|
||||
echo:
|
||||
if defined _int (
|
||||
echo Checking Internet Connection [Connected]
|
||||
) else (
|
||||
call :_color2 %_White% " " %Red% "Checking Internet Connection [Not connected]"
|
||||
)
|
||||
|
||||
echo %line%
|
||||
echo:
|
||||
echo Dism uses Windows Update to provide the files required to fix corruption.
|
||||
echo This will take 5-15 minutes or more..
|
||||
echo %line%
|
||||
echo:
|
||||
echo Notes:
|
||||
echo:
|
||||
call :_color2 %_White% " - " %Gray% "Make sure the Internet is connected."
|
||||
call :_color2 %_White% " - " %Gray% "Make sure the Windows update is properly working."
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
choice /C:29 /N /M "> [9] Continue [2] Go back : "
|
||||
if %errorlevel%==1 goto at_menu
|
||||
|
||||
cls
|
||||
mode 110, 30
|
||||
echo:
|
||||
|
||||
call :_stopservice TrustedInstaller
|
||||
del /s /f /q "%SystemRoot%\logs\cbs\*.*"
|
||||
|
||||
set _time=
|
||||
for /f %%a in ('%_psc% "Get-Date -format HH_mm_ss"') do set _time=%%a
|
||||
echo:
|
||||
echo Applying the command,
|
||||
echo dism /online /cleanup-image /restorehealth /Logpath:"%SystemRoot%\Temp\RHealth_DISM_%_time%.txt" /loglevel:4
|
||||
echo:
|
||||
dism /online /cleanup-image /restorehealth /Logpath:"%SystemRoot%\Temp\RHealth_DISM_%_time%.txt" /loglevel:4
|
||||
|
||||
if not exist "!desktop!\AT_Logs\" md "!desktop!\AT_Logs\" %nul%
|
||||
copy /y /b "%SystemRoot%\Temp\RHealth_DISM_%_time%.txt" "!desktop!\AT_Logs\RHealth_DISM_%_time%.txt" %nul%
|
||||
copy /y /b "%cbs_log%" "!desktop!\AT_Logs\RHealth_CBS_%_time%.txt" %nul%
|
||||
del /f /q "%SystemRoot%\Temp\RHealth_DISM_%_time%.txt" %nul%
|
||||
|
||||
echo:
|
||||
call :_color %Gray% "CBS and DISM logs are copied to the AT_Logs folder on the dekstop."
|
||||
goto :at_back
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:sfcscan
|
||||
|
||||
cls
|
||||
mode 98, 30
|
||||
title sfc /scannow
|
||||
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
echo System File Checker will repair missing or corrupted system files.
|
||||
echo This will take 10-15 minutes or more..
|
||||
echo:
|
||||
echo If SFC could not fix something, then run the command again to see if it may be able
|
||||
echo to the next time. Sometimes it may take running the sfc /scannow command 3 times
|
||||
echo restarting the PC after each time to completely fix everything that it's able to.
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
choice /C:29 /N /M "> [9] Continue [2] Go back : "
|
||||
if %errorlevel%==1 goto at_menu
|
||||
|
||||
cls
|
||||
echo:
|
||||
|
||||
call :_stopservice TrustedInstaller
|
||||
del /s /f /q "%SystemRoot%\logs\cbs\*.*"
|
||||
|
||||
set _time=
|
||||
for /f %%a in ('%_psc% "Get-Date -format HH_mm_ss"') do set _time=%%a
|
||||
echo:
|
||||
echo Applying the command,
|
||||
echo sfc /scannow
|
||||
echo:
|
||||
sfc /scannow
|
||||
|
||||
if not exist "!desktop!\AT_Logs\" md "!desktop!\AT_Logs\" %nul%
|
||||
|
||||
copy /y /b "%cbs_log%" "!desktop!\AT_Logs\SFC_CBS_%_time%.txt" %nul%
|
||||
findstr /i /c:"[SR]" %cbs_log% | findstr /i /v /c:verify >"!desktop!\AT_Logs\SFC_Main_%_time%.txt"
|
||||
|
||||
echo:
|
||||
call :_color %Gray% "CBS and main extracted logs are copied to the AT_Logs folder on the dekstop."
|
||||
goto :at_back
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:rearmwin
|
||||
|
||||
cls
|
||||
mode 98, 30
|
||||
title Windows Rearm - Specific SKU ID
|
||||
|
||||
if %winbuild% LSS 9600 (
|
||||
%eline%
|
||||
echo Unsupported OS version Detected.
|
||||
echo This command is supported only for Windows 8/8.1/10/11 and their Server equivalent.
|
||||
goto :at_back
|
||||
)
|
||||
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
echo Notes:
|
||||
echo:
|
||||
echo - Rearm helps in troubleshooting activation issues.
|
||||
echo:
|
||||
echo - Windows KMS activation will reset.
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
choice /C:29 /N /M "> [9] Continue [2] Go back : "
|
||||
if %errorlevel%==1 goto at_menu
|
||||
|
||||
cls
|
||||
mode 105, 30
|
||||
echo:
|
||||
echo:
|
||||
set app=
|
||||
net start sppsvc /y %nul%
|
||||
if %winbuild% LSS 22483 for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%' and PartialProductKey is not NULL) get ID /VALUE" 2^>nul') do call set "app=%%a"
|
||||
if %winbuild% GEQ 22483 for /f "tokens=2 delims==" %%a in ('%_psc% "(([WMISEARCHER]'SELECT ID FROM %slp% WHERE ApplicationID=''%wApp%'' AND PartialProductKey IS NOT NULL').Get()).ID | %% {echo ('ID='+$_)}" 2^>nul') do call set "app=%%a"
|
||||
|
||||
if defined app (
|
||||
if %winbuild% LSS 22483 for /f "tokens=2 delims==" %%x in ('"wmic path %slp% where ID='%app%' get Name /VALUE" 2^>nul') do echo Rearming: %%x
|
||||
if %winbuild% GEQ 22483 for /f "tokens=2 delims==" %%x in ('%_psc% "(([WMISEARCHER]'SELECT Name FROM %slp% WHERE ID=''%app%''').Get()).Name | %% {echo ('Name='+$_)}" 2^>nul') do echo Rearming: %%x
|
||||
echo:
|
||||
echo Applying the command,
|
||||
if %winbuild% LSS 22483 (
|
||||
echo wmic path %slp% where ID='%app%' call ReArmsku
|
||||
wmic path %slp% where ID='%app%' call ReArmsku %nul%
|
||||
)
|
||||
if %winbuild% GEQ 22483 (
|
||||
echo Powershell "$null=([WMI]'%slp%=''%app%''').ReArmsku()"
|
||||
%_psc% "$null=([WMI]'%slp%=''%app%''').ReArmsku()" %nul%
|
||||
)
|
||||
if !errorlevel!==0 (
|
||||
call :_color %Green% "[Successful]"
|
||||
) else (
|
||||
call :_color %Red% "[Failed]"
|
||||
)
|
||||
) else (
|
||||
call :_color %Red% "Error- Activation ID not found"
|
||||
)
|
||||
|
||||
goto :at_back
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:officerearm
|
||||
|
||||
cls
|
||||
mode 98, 30
|
||||
title Office Rearm - Specific KMS SKU ID
|
||||
|
||||
if %winbuild% LSS 9600 (
|
||||
%eline%
|
||||
echo Unsupported OS version Detected.
|
||||
echo This command is supported only for Windows 8/8.1/10/11 and their Server equivalent.
|
||||
goto :at_back
|
||||
)
|
||||
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
echo Notes:
|
||||
echo:
|
||||
echo - Rearm helps in troubleshooting activation issues.
|
||||
echo:
|
||||
echo - Office KMS activation will reset.
|
||||
echo:
|
||||
call :_color2 %_White% " - " %Gray% "Office rearm can be applied only a certain number of times."
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
choice /C:29 /N /M "> [9] Continue [2] Go back : "
|
||||
if %errorlevel%==1 goto at_menu
|
||||
|
||||
cls
|
||||
mode 105, 30
|
||||
echo:
|
||||
|
||||
net start sppsvc /y %nul%
|
||||
call :getapplist %slp%
|
||||
|
||||
if defined applist (
|
||||
for %%# in (%applist%) do (
|
||||
echo:
|
||||
if %winbuild% LSS 22483 for /f "tokens=2 delims==" %%x in ('"wmic path %slp% where ID='%%#' get Name /VALUE" 2^>nul') do echo Rearming: %%x
|
||||
if %winbuild% GEQ 22483 for /f "tokens=2 delims==" %%x in ('%_psc% "(([WMISEARCHER]'SELECT Name FROM %slp% WHERE ID=''%%#''').Get()).Name | %% {echo ('Name='+$_)}" 2^>nul') do echo Rearming: %%x
|
||||
echo:
|
||||
echo Applying the command,
|
||||
if %winbuild% LSS 22483 (
|
||||
echo wmic path %slp% where ID='%%#' call ReArmsku
|
||||
wmic path %slp% where ID='%%#' call ReArmsku %nul%
|
||||
)
|
||||
if %winbuild% GEQ 22483 (
|
||||
echo Powershell "$null=([WMI]'%slp%=''%%#''').ReArmsku()"
|
||||
%_psc% "$null=([WMI]'%slp%=''%%#''').ReArmsku()" %nul%
|
||||
)
|
||||
if !errorlevel!==0 (
|
||||
call :_color %Green% "[Successful]"
|
||||
) else (
|
||||
call :_color %Red% "[Failed]"
|
||||
)
|
||||
)
|
||||
) else (
|
||||
echo:
|
||||
echo Checking: Volume version of Office 2013-2021 is not found.
|
||||
)
|
||||
|
||||
call :getapplist %ospp%
|
||||
|
||||
if defined applist (
|
||||
if %winbuild% LSS 9200 (set _off=Office) else (set _off=Office 2010)
|
||||
echo:
|
||||
echo Skipping the Rearm of OSPP based '!_off!'
|
||||
)
|
||||
|
||||
goto :at_back
|
||||
|
||||
:getapplist
|
||||
|
||||
set applist=
|
||||
if %winbuild% LSS 22483 set "chkapp=for /f "tokens=2 delims==" %%a in ('"wmic path %1 where (Name like '%%office%%' and Description like '%%KMSCLIENT%%' and PartialProductKey is not NULL) get ID /VALUE" 2^>nul')"
|
||||
if %winbuild% GEQ 22483 set "chkapp=for /f "tokens=2 delims==" %%a in ('%_psc% "(([WMISEARCHER]'SELECT ID FROM %1 WHERE Name like ''%%office%%'' and Description like ''%%KMSCLIENT%%'' and PartialProductKey is not NULL').Get()).ID ^| %% {echo ('ID='+$_)}" 2^>nul')"
|
||||
%chkapp% do (if defined applist (call set "applist=!applist! %%a") else (call set "applist=%%a"))
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:retokens
|
||||
|
||||
cls
|
||||
mode 98, 30
|
||||
title Rebuild Licensing Tokens ^& Re-install System License Files
|
||||
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
echo Notes:
|
||||
echo:
|
||||
echo - Rebuild Licensing Tokens ^& Re-install System License Files
|
||||
echo It helps in troubleshooting activation issues.
|
||||
echo:
|
||||
call :_color2 %_White% " - " %Gray% "Windows and Office activation may reset, you may need to activate them again."
|
||||
echo:
|
||||
call :_color2 %_White% " - " %Magenta% "This option will uninstall Office licenses and keys."
|
||||
call :_color2 %_White% " " %Magenta% "Installed Office will need to repair itself ones upon opening an office app,"
|
||||
call :_color2 %_White% " " %Magenta% "you may also need to repair Office from Apps and Features in Windows Settings."
|
||||
echo:
|
||||
call :_color2 %_White% " - " %Gray% "Script is designed to skip rebuilding tokens where products may not be able to"
|
||||
call :_color2 %_White% " " %Gray% "restore their license."
|
||||
echo:
|
||||
call :_color2 %_White% " - " %Red% "Apply it only when it is necessary."
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
choice /C:24 /N /M "> [4] Continue [2] Go back : "
|
||||
if %errorlevel%==1 goto at_menu
|
||||
|
||||
cls
|
||||
mode 98, 30
|
||||
|
||||
set nosup=
|
||||
set 68=HKLM\SOFTWARE\Microsoft\Office
|
||||
set 86=HKLM\SOFTWARE\Wow6432Node\Microsoft\Office
|
||||
|
||||
%nul% reg query %68%\16.0\Common\InstallRoot /v Path && set nosup=1 REM Office 2016 MSI x86-x64
|
||||
%nul% reg query %86%\16.0\Common\InstallRoot /v Path && set nosup=1 REM Office 2016 MSI x86
|
||||
%nul% reg query %68%\15.0\Common\InstallRoot /v Path && set nosup=1 REM Office 2013 MSI x86-x64
|
||||
%nul% reg query %86%\15.0\Common\InstallRoot /v Path && set nosup=1 REM Office 2013 MSI x86
|
||||
%nul% reg query %68%\14.0\Common\InstallRoot /v Path && set nosup=1 REM Office 2010 MSI x86-x64
|
||||
%nul% reg query %86%\14.0\Common\InstallRoot /v Path && set nosup=1 REM Office 2010 MSI x86
|
||||
%nul% reg query %68%\14.0\CVH /f Click2run /k && set nosup=1 REM Office 2010 C2R x86-x64
|
||||
%nul% reg query %86%\14.0\CVH /f Click2run /k && set nosup=1 REM Office 2010 C2R x86
|
||||
|
||||
if %winbuild% GEQ 10240 reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\msoxmled.exe" %nul% && (
|
||||
dir /b "%ProgramFiles%\WindowsApps\Microsoft.Office.Desktop*" %nul% && set nosup=1 REM Office UWP x86-x64
|
||||
dir /b "%ProgramW6432%\WindowsApps\Microsoft.Office.Desktop*" %nul% && set nosup=1 REM Office UWP x86
|
||||
)
|
||||
|
||||
sc qc osppsvc %nul% && (
|
||||
if %winbuild% LSS 9200 (set _off=Office) else (set _off=Office 2010)
|
||||
echo:
|
||||
echo Skipping rebuilding OSPP tokens for detected '!_off!'
|
||||
)
|
||||
|
||||
echo:
|
||||
if defined nosup (
|
||||
echo Detected Office may not be able to repair itself, hence skipping SPP tokens rebuilding...
|
||||
goto :at_back
|
||||
)
|
||||
|
||||
net start sppsvc /y %nul%
|
||||
|
||||
call :at_permcheck Office
|
||||
if defined _perm (
|
||||
echo Office is permanently activated, token rebuilding may deactivate it, hence skipping...
|
||||
goto :at_back
|
||||
)
|
||||
|
||||
if %winbuild% LSS 10240 (
|
||||
call :at_permcheck Windows
|
||||
if defined _perm (
|
||||
echo Windows is permanently activated, token rebuilding may deactivate it, hence skipping...
|
||||
goto :at_back
|
||||
)
|
||||
)
|
||||
|
||||
set token=
|
||||
for %%# in (
|
||||
%Systemdrive%\Windows\System32\spp\store_test\2.0\tokens.dat
|
||||
%Systemdrive%\Windows\System32\spp\store\tokens.dat
|
||||
%Systemdrive%\Windows\System32\spp\store\2.0\tokens.dat
|
||||
%Systemdrive%\Windows\ServiceProfiles\NetworkService\AppData\Roaming\Microsoft\SoftwareProtectionPlatform\tokens.dat
|
||||
) do if exist %%# set token=%%#
|
||||
|
||||
echo %line%
|
||||
echo:
|
||||
call :_color %Gray% "Rebuilding SoftwareProtectionPlatform tokens.dat"
|
||||
echo %line%
|
||||
echo:
|
||||
|
||||
if not exist "%token%" (
|
||||
%eline%
|
||||
echo tokens.dat file not found.
|
||||
echo Restart the system and try again.
|
||||
goto :at_back
|
||||
) else (
|
||||
echo Detected tokens.dat file [%token%]
|
||||
)
|
||||
|
||||
echo Stopping sppsvc service...
|
||||
call :_stopservice sppsvc
|
||||
|
||||
:: data.dat and cache files are not deleted since doing that may corrupt the office license in a way that only reinstallation can fix
|
||||
|
||||
del /f /q %token% %nul%
|
||||
if exist %token% (
|
||||
call :_stopservice sppsvc
|
||||
del /f /q %token% %nul%
|
||||
)
|
||||
|
||||
echo:
|
||||
if exist %token% (
|
||||
call :_color %Red% "Failed to delete the tokens.dat file."
|
||||
) else (
|
||||
echo tokens.dat file was successfully deleted.
|
||||
)
|
||||
|
||||
echo:
|
||||
echo Reinstalling System Licenses [slmgr /rilc]...
|
||||
cscript //nologo %windir%\system32\slmgr.vbs /rilc %nul% && (
|
||||
echo [Successful]
|
||||
) || (
|
||||
call :_color %Red% "[Failed]"
|
||||
)
|
||||
|
||||
echo:
|
||||
if exist %token% (
|
||||
call :_color %Green% "tokens.dat file was rebuilt successfully."
|
||||
) else (
|
||||
call :_color %Red% "Failed to rebuilt tokens.dat file."
|
||||
)
|
||||
|
||||
goto :at_back
|
||||
|
||||
:at_permcheck
|
||||
|
||||
set _perm=
|
||||
if %winbuild% LSS 22483 wmic path %slp% where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name /value 2>nul | findstr /i "%1" 1>nul && set _perm=1||set _perm=
|
||||
if %winbuild% GEQ 22483 %_psc% "(([WMISEARCHER]'SELECT Name FROM %slp% WHERE LicenseStatus=1 AND GracePeriodRemaining=0 AND PartialProductKey IS NOT NULL').Get()).Name | %% {echo ('Name='+$_)}" 2>nul | findstr /i "%1" 1>nul && set _perm=1||set _perm=
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:cleanclipsvc
|
||||
|
||||
cls
|
||||
mode 98, 30
|
||||
title Clean ClipSVC Licences
|
||||
|
||||
if %winbuild% LSS 10240 (
|
||||
%eline%
|
||||
echo Unsupported OS version Detected.
|
||||
echo This command is supported only for Windows 10/11 and their Server equivalent..
|
||||
goto :at_back
|
||||
)
|
||||
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
echo Notes:
|
||||
echo:
|
||||
echo - Cleaning ClipSVC Licences helps in troubleshooting HWID-KMS38 activation issues.
|
||||
echo:
|
||||
call :_color2 %_White% " - " %Gray% "All installed HWID-KMS38 licences will be cleaned from the system."
|
||||
echo This will remove KMS38 license from the system but HWID license can't be removed.
|
||||
echo:
|
||||
echo - System restart is recommended after applying it.
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
choice /C:29 /N /M "> [9] Continue [2] Go back : "
|
||||
if %errorlevel%==1 goto at_menu
|
||||
|
||||
cls
|
||||
echo:
|
||||
|
||||
echo Stopping ClipSVC service...
|
||||
call :_stopservice ClipSVC
|
||||
timeout /t 2 %nul%
|
||||
|
||||
:: Thanks to @mspaintmsi for informing this command info
|
||||
|
||||
echo:
|
||||
echo Applying the command to Clean ClipSVC Licences...
|
||||
echo rundll32 clipc.dll,ClipCleanUpState
|
||||
|
||||
rundll32 clipc.dll,ClipCleanUpState
|
||||
|
||||
if exist "%ProgramData%\Microsoft\Windows\ClipSVC\*.dat" del /f /q "%ProgramData%\Microsoft\Windows\ClipSVC\*.dat" %nul%
|
||||
|
||||
if exist "%ProgramData%\Microsoft\Windows\ClipSVC\tokens.dat" (
|
||||
call :_color %Red% "[Failed]"
|
||||
) else (
|
||||
call :_color %Green% "[Successful]"
|
||||
)
|
||||
|
||||
:: Below registry key (Volatile & Protected) gets created after the ClipSVC License cleanup command, and gets automatically deleted after
|
||||
:: system restart. It needs to be deleted to activate the system without restart.
|
||||
|
||||
set "RegKey=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ClipSVC\Volatile\PersistedSystemState"
|
||||
|
||||
call :regown "%RegKey%" %nul%
|
||||
reg delete "%RegKey%" /f %nul%
|
||||
|
||||
echo:
|
||||
echo Deleting a Volatile ^& Protected Registry Key...
|
||||
echo [%RegKey%]
|
||||
reg query "%RegKey%" %nul% && (
|
||||
call :_color %Red% "[Failed]"
|
||||
echo Restart the system, that will delete this registry key automatically.
|
||||
) || (
|
||||
call :_color %Green% "[Successful]"
|
||||
)
|
||||
|
||||
echo:
|
||||
echo Restarting [ClipSVC wlidsvc LicenseManager sppsvc] services...
|
||||
for %%# in (ClipSVC wlidsvc LicenseManager sppsvc) do (net stop %%# /y %nul% & net start %%# /y %nul%)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:at_back
|
||||
|
||||
echo:
|
||||
echo %line%
|
||||
echo:
|
||||
call :_color %_Yellow% "Press any key to go back..."
|
||||
pause >nul
|
||||
goto :at_menu
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:at_done
|
||||
|
||||
echo:
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:_stopservice
|
||||
|
||||
for %%# in (%1) do (
|
||||
sc query %%# | find /i "STOPPED" %nul% || net stop %%# /y %nul%
|
||||
sc query %%# | find /i "STOPPED" %nul% || sc stop %%# %nul%
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================\
|
||||
|
||||
:: A lean and mean snippet to set registry ownership and permission recursively
|
||||
:: Written by @AveYo aka @BAU
|
||||
:: pastebin.com/XTPt0JSC
|
||||
|
||||
:: Modified by @abbodi1406 to make it work in ARM64 Windows 10 (builds older than 21277) where only x86 version of PowerShell is installed.
|
||||
|
||||
:regown
|
||||
|
||||
%_psc% $A='%~1','%~2','%~3','%~4','%~5','%~6';iex(([io.file]::ReadAllText('!_batp!')-split':Own1\:.*')[1])&exit/b:Own1:
|
||||
$D1=[uri].module.gettype('System.Diagnostics.Process')."GetM`ethods"(42) |where {$_.Name -eq 'SetPrivilege'} #`:no-ev-warn
|
||||
'SeSecurityPrivilege','SeTakeOwnershipPrivilege','SeBackupPrivilege','SeRestorePrivilege'|foreach {$D1.Invoke($null, @("$_",2))}
|
||||
$path=$A[0]; $rk=$path-split'\\',2; switch -regex ($rk[0]){'[mM]'{$hv=2147483650};'[uU]'{$hv=2147483649};default{$hv=2147483648};}
|
||||
$HK=[Microsoft.Win32.RegistryKey]::OpenBaseKey($hv, 256); $s=$A[1]; $sps=[Security.Principal.SecurityIdentifier]
|
||||
$u=($A[2],'S-1-5-32-544')[!$A[2]];$o=($A[3],$u)[!$A[3]];$w=$u,$o |% {new-object $sps($_)}; $old=!$A[3];$own=!$old; $y=$s-eq'all'
|
||||
$rar=new-object Security.AccessControl.RegistryAccessRule( $w[0], ($A[5],'FullControl')[!$A[5]], 1, 0, ($A[4],'Allow')[!$A[4]] )
|
||||
$x=$s-eq'none';function Own1($k){$t=$HK.OpenSubKey($k,2,'TakeOwnership');if($t){0,4|%{try{$o=$t.GetAccessControl($_)}catch{$old=0}
|
||||
};if($old){$own=1;$w[1]=$o.GetOwner($sps)};$o.SetOwner($w[0]);$t.SetAccessControl($o); $c=$HK.OpenSubKey($k,2,'ChangePermissions')
|
||||
$p=$c.GetAccessControl(2);if($y){$p.SetAccessRuleProtection(1,1)};$p.ResetAccessRule($rar);if($x){$p.RemoveAccessRuleAll($rar)}
|
||||
$c.SetAccessControl($p);if($own){$o.SetOwner($w[1]);$t.SetAccessControl($o)};if($s){$($subkeys=$HK.OpenSubKey($k).GetSubKeyNames()) 2>$null;
|
||||
foreach($n in $subkeys){Own1 "$k\$n"}}}};Own1 $rk[1];if($env:VO){get-acl Registry::$path|fl} #:Own1: lean & mean snippet by AveYo
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:_color
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[0m
|
||||
) else (
|
||||
call :batcol %~1 "%~2"
|
||||
)
|
||||
exit /b
|
||||
|
||||
:_color2
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[%~3%~4%esc%[0m
|
||||
) else (
|
||||
call :batcol %~1 "%~2" %~3 "%~4"
|
||||
)
|
||||
exit /b
|
||||
|
||||
::=======================================
|
||||
|
||||
:: Colored text with pure batch method
|
||||
:: Thanks to @dbenham and @jeb
|
||||
:: stackoverflow.com/a/10407642
|
||||
|
||||
:batcol
|
||||
|
||||
pushd %_coltemp%
|
||||
if not exist "'" (<nul >"'" set /p "=.")
|
||||
setlocal
|
||||
set "s=%~2"
|
||||
set "t=%~4"
|
||||
call :_batcol %1 s %3 t
|
||||
del /f /q "'"
|
||||
del /f /q "`.txt"
|
||||
popd
|
||||
exit /b
|
||||
|
||||
:_batcol
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
set "s=!%~2!"
|
||||
set "t=!%~4!"
|
||||
for /f delims^=^ eol^= %%i in ("!s!") do (
|
||||
if "!" equ "" setlocal DisableDelayedExpansion
|
||||
>`.txt (echo %%i\..\')
|
||||
findstr /a:%~1 /f:`.txt "."
|
||||
<nul set /p "=%_BS%%_BS%%_BS%%_BS%%_BS%%_BS%%_BS%"
|
||||
)
|
||||
if "%~4"=="" echo(&exit /b
|
||||
setlocal EnableDelayedExpansion
|
||||
for /f delims^=^ eol^= %%i in ("!t!") do (
|
||||
if "!" equ "" setlocal DisableDelayedExpansion
|
||||
>`.txt (echo %%i\..\')
|
||||
findstr /a:%~3 /f:`.txt "."
|
||||
<nul set /p "=%_BS%%_BS%%_BS%%_BS%%_BS%%_BS%%_BS%"
|
||||
)
|
||||
echo(
|
||||
exit /b
|
||||
|
||||
::=======================================
|
||||
|
||||
:_colorprep
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
for /F %%a in ('echo prompt $E ^| cmd') do set "esc=%%a"
|
||||
|
||||
set "Red="41;97m""
|
||||
set "Gray="100;97m""
|
||||
set "Black="30m""
|
||||
set "Green="42;97m""
|
||||
set "Blue="44;97m""
|
||||
set "Yellow="43;97m""
|
||||
set "Magenta="45;97m""
|
||||
|
||||
set "_Red="40;91m""
|
||||
set "_Green="40;92m""
|
||||
set "_Blue="40;94m""
|
||||
set "_White="40;37m""
|
||||
set "_Yellow="40;93m""
|
||||
|
||||
exit /b
|
||||
)
|
||||
|
||||
for /f %%A in ('"prompt $H&for %%B in (1) do rem"') do set "_BS=%%A %%A"
|
||||
set "_coltemp=%SystemRoot%\Temp"
|
||||
|
||||
set "Red="CF""
|
||||
set "Gray="8F""
|
||||
set "Black="00""
|
||||
set "Green="2F""
|
||||
set "Blue="1F""
|
||||
set "Yellow="6F""
|
||||
set "Magenta="5F""
|
||||
|
||||
set "_Red="0C""
|
||||
set "_Green="0A""
|
||||
set "_Blue="09""
|
||||
set "_White="07""
|
||||
set "_Yellow="0E""
|
||||
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,434 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' (MAS) project.
|
||||
::
|
||||
:: Homepage: windowsaddict.ml
|
||||
:: Email: windowsaddict@protonmail.com
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||
:: or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\Sysnative\cmd.exe (
|
||||
set "_cmdf=%~f0"
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" %*"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Re-launch the script with ARM32 process if it was initiated by x64 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\SysArm32\cmd.exe if %PROCESSOR_ARCHITECTURE%==AMD64 (
|
||||
set "_cmdf=%~f0"
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" %*"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Set Path variable, it helps if it is misconfigured in the system
|
||||
|
||||
set "SysPath=%SystemRoot%\System32"
|
||||
if exist "%SystemRoot%\Sysnative\reg.exe" (set "SysPath=%SystemRoot%\Sysnative")
|
||||
set "Path=%SysPath%;%SystemRoot%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Change Windows 10-11 Edition
|
||||
|
||||
set _elev=
|
||||
if /i "%~1"=="-el" set _elev=1
|
||||
|
||||
set winbuild=1
|
||||
set "nul=>nul 2>&1"
|
||||
set "_psc=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe"
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
set _NCS=1
|
||||
if %winbuild% LSS 10586 set _NCS=0
|
||||
if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 2>nul | find /i "0x0" 1>nul && (set _NCS=0)
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
for /F %%a in ('echo prompt $E ^| cmd') do set "esc=%%a"
|
||||
set "Red="41;97m""
|
||||
set "Gray="100;97m""
|
||||
set "Green="42;97m""
|
||||
set "Magenta="45;97m""
|
||||
set "_White="40;37m""
|
||||
set "_Green="40;92m""
|
||||
set "_Yellow="40;93m""
|
||||
) else (
|
||||
set "Red="Red" "white""
|
||||
set "Gray="Darkgray" "white""
|
||||
set "Green="DarkGreen" "white""
|
||||
set "Magenta="Darkmagenta" "white""
|
||||
set "_White="Black" "Gray""
|
||||
set "_Green="Black" "Green""
|
||||
set "_Yellow="Black" "Yellow""
|
||||
)
|
||||
|
||||
set "nceline=echo: &echo ==== ERROR ==== &echo:"
|
||||
set "eline=echo: &call :dk_color %Red% "==== ERROR ====" &echo:"
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set "line=echo ___________________________________________________________________________________________"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 10240 (
|
||||
%eline%
|
||||
echo Unsupported OS version detected.
|
||||
echo Project is supported for Windows 10/11.
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
if %winbuild% GEQ 22483 if not exist %_psc% (
|
||||
%nceline%
|
||||
echo Powershell is not installed in the system.
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
set "_PSarg="""%~f0""" -el %_args%"
|
||||
|
||||
set "_ttemp=%temp%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" 1>nul && (
|
||||
%eline%
|
||||
echo Script is launched from the temp folder,
|
||||
echo Most likely you are running the script directly from the archive file.
|
||||
echo:
|
||||
echo Extract the archive file and launch the script from the extracted folder.
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 || (
|
||||
if not defined _elev %nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%eline%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode 98, 30
|
||||
echo:
|
||||
echo Initializing...
|
||||
|
||||
:: Check WMI and sppsvc Errors
|
||||
|
||||
set applist=
|
||||
net start sppsvc /y %nul%
|
||||
if %winbuild% LSS 22483 set "chkapp=for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%') get ID /VALUE" 2^>nul')"
|
||||
if %winbuild% GEQ 22483 set "chkapp=for /f "tokens=2 delims==" %%a in ('%_psc% "(([WMISEARCHER]'SELECT ID FROM %slp% WHERE ApplicationID=''%wApp%''').Get()).ID ^| %% {echo ('ID='+$_)}" 2^>nul')"
|
||||
%chkapp% do (if defined applist (call set "applist=!applist! %%a") else (call set "applist=%%a"))
|
||||
|
||||
if not defined applist (
|
||||
%eline%
|
||||
echo Failed running WMI query check, verify that these services are working correctly
|
||||
echo Windows Management Instrumentation [WinMgmt], Software Protection [sppsvc]
|
||||
echo:
|
||||
echo Script will try to enable these services.
|
||||
echo:
|
||||
call :dk_color %_Yellow% "Press any key to continue..."
|
||||
pause >nul
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query HKLM\SYSTEM\CurrentControlSet\Services\WinMgmt /v Start 2^>nul') do if /i %%b equ 0x4 (sc config WinMgmt start= auto %nul%)
|
||||
net start WinMgmt /y %nul%
|
||||
net stop sppsvc /y %nul%
|
||||
net start sppsvc /y %nul%
|
||||
cls
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Server version
|
||||
|
||||
if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-Server*Edition~*.mum" (
|
||||
%eline%
|
||||
echo Windows Server version is not supported.
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
:: Refresh license status, it helps to get correct product name in Windows 17134 and later builds
|
||||
|
||||
call :dk_refresh
|
||||
|
||||
:: Check Windows Edition
|
||||
|
||||
set 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
|
||||
)
|
||||
|
||||
:: Check product name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do set "winos=%%b"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set _target=
|
||||
for /f "tokens=4" %%a in ('dism /online /english /Get-TargetEditions ^| findstr /i /c:"Target Edition : "') do (if defined _target (set "_target=!_target! %%a") else (set "_target=%%a"))
|
||||
|
||||
if not defined _target (
|
||||
%line%
|
||||
echo:
|
||||
call :dk_color %Gray% "Target Edition not found."
|
||||
echo Current Edition [%osedition% ^| %winbuild%] can not be changed to any other Edition.
|
||||
%line%
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
%line%
|
||||
echo:
|
||||
call :dk_color %Gray% "You can change the Current Edition [%osedition%] to one of the following."
|
||||
%line%
|
||||
echo:
|
||||
for %%# in (%_target%) do echo %%#
|
||||
%line%
|
||||
echo:
|
||||
call :dk_color %_Green% "Press [1] to Continue or [2] to Exit"
|
||||
choice /C:21 /N
|
||||
|
||||
if %errorlevel%==1 exit /b
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
%line%
|
||||
echo:
|
||||
call :dk_color %Gray% "Current Edition - [%osedition%]"
|
||||
echo:
|
||||
for %%# in (%_target%) do (
|
||||
choice /C:NY /N /M "Do you want to change to the [%%#] edition? [Y,N] : "
|
||||
if [!errorlevel!]==[2] (
|
||||
set targetedition=%%#
|
||||
goto ced_change
|
||||
)
|
||||
)
|
||||
|
||||
%line%
|
||||
goto ced_done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ced_change
|
||||
|
||||
cls
|
||||
set key=
|
||||
set _changepk=1
|
||||
|
||||
call :changeeditiondata
|
||||
|
||||
if not defined key (
|
||||
%eline%
|
||||
echo [%targetedition% ^| %winbuild%]
|
||||
echo Unable to find this product key in the supported product list.
|
||||
if %winbuild% GTR 19044 echo Make sure you are using updated version of the script
|
||||
goto ced_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
%line%
|
||||
|
||||
:: Changing from Core to Non-Core & Changing editions in Windows build older than 17134 requires "changepk /productkey" method and restart
|
||||
:: In other cases, editions can be changed instantly with "slmgr /ipk"
|
||||
|
||||
if %_changepk%==1 (
|
||||
echo %_chan% | find /i "OEM" >NUL && (
|
||||
%eline%
|
||||
echo [%osedition%] can not be changed to [%targetedition%] Edition due to lack of non OEM keys.
|
||||
echo Non-OEM keys are required to change from Core to Non-Core Editions.
|
||||
goto ced_done
|
||||
)
|
||||
for %%a in (dns.msftncsi.com,www.microsoft.com,one.one.one.one,resolver1.opendns.com) do (
|
||||
for /f "delims=[] tokens=2" %%# in ('ping -n 1 %%a') do (
|
||||
if not [%%#]==[] (
|
||||
%eline%
|
||||
echo Disconnect the Internet and then try again.
|
||||
goto ced_done
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
echo:
|
||||
echo The system will automatically reboot to complete the process.
|
||||
echo:
|
||||
call :dk_color %Gray% "If the upgrade Window shows an error then you can safely ignore it."
|
||||
call :dk_color %Gray% "However you will need to manually reboot the system in that case."
|
||||
echo:
|
||||
call :dk_color %Magenta% "Important - Save your work before continue."
|
||||
echo:
|
||||
choice /C:21 /N /M "[1] Continue [2] Exit : "
|
||||
if !errorlevel!==1 exit /b
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo:
|
||||
echo Changing the Current Edition [%osedition%] to [%targetedition%]
|
||||
echo:
|
||||
|
||||
if %_changepk%==0 (
|
||||
echo Installing %_chan% Key [%key%]
|
||||
echo:
|
||||
if %winbuild% LSS 22483 wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul%
|
||||
if %winbuild% GEQ 22483 %_psc% "(([WMISEARCHER]'SELECT Version FROM %sls%').Get()).InstallProductKey('%key%')" %nul%
|
||||
if not !errorlevel!==0 cscript //nologo %windir%\system32\slmgr.vbs /ipk %key% %nul%
|
||||
|
||||
if !errorlevel!==0 (
|
||||
call :dk_refresh
|
||||
call :dk_color %Green% "[Successful]"
|
||||
echo:
|
||||
call :dk_color %Gray% "Reboot is required to properly change the Edition."
|
||||
) else (
|
||||
%eline%
|
||||
echo [Unsuccessful]
|
||||
)
|
||||
)
|
||||
|
||||
if %_changepk%==1 (
|
||||
echo Applying the command with %_chan% Key
|
||||
echo start changepk /productkey %key%
|
||||
start changepk /productkey %key%
|
||||
)
|
||||
%line%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ced_done
|
||||
|
||||
echo:
|
||||
call :dk_color %_Yellow% "Press any key to exit..."
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Refresh license status
|
||||
|
||||
:dk_refresh
|
||||
|
||||
if %winbuild% LSS 22483 wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
if %winbuild% GEQ 22483 %_psc% "$null=(([WMICLASS]'%sls%').GetInstances()).RefreshLicenseStatus()" %nul%
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:dk_color
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[0m
|
||||
) else (
|
||||
if not exist %_psc% (echo %~3) else (%_psc% write-host -back '%1' -fore '%2' '%3')
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: 1st column = Activation ID
|
||||
:: 2nd column = Generic Retail/OEM/MAK/GVLK Key
|
||||
:: 3rd column = SKU ID
|
||||
:: 4th column = 1 = activation is not working (at the time of writing this), 0 = activation is working
|
||||
:: 5th column = Key Type
|
||||
:: 6th column = WMI Edition ID
|
||||
:: 7th column = Version name incase same Edition ID is used in different OS versions with different key
|
||||
:: Separator = _
|
||||
|
||||
:: Key preference is in the following order. Retail > Volume:MAK > Volume:GVLK > OEM:NONSLP > OEM:DM
|
||||
:: OEM keys are in last because they can't be used in edition change if "changepk /productkey" method is needed instead of "slmgr /ipk"
|
||||
:: OEM keys are listed here because we don't have other keys for that edition
|
||||
|
||||
:changeeditiondata
|
||||
|
||||
for %%# in (
|
||||
2ffd8952-423e-4903-b993-72a1aa44cf82_44NYX-TKR9D-CCM2D-V6B8F-HQWWR___4_0_Volume:MAK_Enterprise
|
||||
23505d51-32d6-41f0-8ca7-e78ad0f16e71_D6RD9-D4N8T-RT9QX-YW6YT-FCWWJ__11_1_____Retail_Starter
|
||||
c83cef07-6b72-4bbc-a28f-a00386872839_3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT__27_0_Volume:MAK_EnterpriseN
|
||||
211b80cc-7f64-482c-89e9-4ba21ff827ad_3NFXW-2T27M-2BDW6-4GHRV-68XRX__47_1_____Retail_StarterN
|
||||
4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c_VK7JG-NPHTM-C97JM-9MPGT-3V66T__48_0_____Retail_Professional
|
||||
9fbaf5d6-4d83-4422-870d-fdda6e5858aa_2B87N-8KFHP-DKV6R-Y2C8J-PKCKT__49_0_____Retail_ProfessionalN
|
||||
f742e4ff-909d-4fe9-aacb-3231d24a0c58_4CPRK-NM3K3-X6XXQ-RXX86-WXCHW__98_0_____Retail_CoreN
|
||||
1d1bac85-7365-4fea-949a-96978ec91ae0_N2434-X9D7W-8PF6X-8DV9T-8TYMD__99_0_____Retail_CoreCountrySpecific
|
||||
3ae2cc14-ab2d-41f4-972f-5e20142771dc_BT79Q-G7N6G-PGBYW-4YWX6-6F4BT_100_0_____Retail_CoreSingleLanguage
|
||||
2b1f36bb-c1cd-4306-bf5c-a0367c2d97d8_YTMG3-N6DKC-DKB77-7M9GH-8HVX7_101_0_____Retail_Core
|
||||
2a6137f3-75c0-4f26-8e3e-d83d802865a4_XKCNC-J26Q9-KFHD2-FKTHY-KD72Y_119_0_OEM:NONSLP_PPIPro
|
||||
e558417a-5123-4f6f-91e7-385c1c7ca9d4_YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY_121_0_____Retail_Education
|
||||
c5198a66-e435-4432-89cf-ec777c9d0352_84NGF-MHBT6-FXBX8-QWJK7-DRR8H_122_0_____Retail_EducationN
|
||||
cce9d2de-98ee-4ce2-8113-222620c64a27_KCNVH-YKWX8-GJJB9-H9FDT-6F7W2_125_1_Volume:MAK_EnterpriseS_2021
|
||||
97348f2f-bebc-4653-a4bd-18a895d316d9_VBX36-N7DDY-M9H62-83BMJ-CPR42_125_0_Volume:MAK_EnterpriseS_2019
|
||||
2782d615-3249-495b-8260-15a4c2295448_PN3KR-JXM7T-46HM4-MCQGK-7XPJQ_125_0_Volume:MAK_EnterpriseS_2016
|
||||
6366a32b-72e4-4212-bf11-c22b0e98a435_DVWKN-3GCMV-Q2XF4-DDPGM-VQWWY_125_0_Volume:MAK_EnterpriseS_2015
|
||||
2c060131-0e43-4e01-adc1-cf5ad1100da8_RQFNW-9TPM3-JQ73T-QV4VQ-DV9PT_126_1_Volume:MAK_EnterpriseSN_2021
|
||||
e8f74caa-03fb-4839-8bcc-2e442b317e53_M33WV-NHY3C-R7FPM-BQGPT-239PG_126_1_Volume:MAK_EnterpriseSN_2019
|
||||
3d1022d8-969f-4222-b54b-327f5a5af4c9_2DBW3-N2PJG-MVHW3-G7TDK-9HKR4_126_0_Volume:MAK_EnterpriseSN_2016
|
||||
60c243e1-f90b-4a1b-ba89-387294948fb6_NTX6B-BRYC2-K6786-F6MVQ-M7V2X_126_0_Volume:MAK_EnterpriseSN_2015
|
||||
a48938aa-62fa-4966-9d44-9f04da3f72f2_G3KNM-CHG6T-R36X3-9QDG6-8M8K9_138_1_____Retail_ProfessionalSingleLanguage
|
||||
f7af7d09-40e4-419c-a49b-eae366689ebd_HNGCC-Y38KG-QVK8D-WMWRK-X86VK_139_1_____Retail_ProfessionalCountrySpecific
|
||||
eb6d346f-1c60-4643-b960-40ec31596c45_DXG7C-N36C4-C4HTG-X4T3X-2YV77_161_0_____Retail_ProfessionalWorkstation
|
||||
89e87510-ba92-45f6-8329-3afa905e3e83_WYPNQ-8C467-V2W6J-TX4WX-WT2RQ_162_0_____Retail_ProfessionalWorkstationN
|
||||
62f0c100-9c53-4e02-b886-a3528ddfe7f6_8PTT6-RNW4C-6V7J2-C2D3X-MHBPB_164_0_____Retail_ProfessionalEducation
|
||||
13a38698-4a49-4b9e-8e83-98fe51110953_GJTYN-HDMQY-FRR76-HVGC7-QPF8P_165_0_____Retail_ProfessionalEducationN
|
||||
5f87a508-7e1c-4fab-9d45-2356c6002081_C4NTJ-CX6Q2-VXDMR-XVKGM-F9DJC_171_1_Volume:MAK_EnterpriseG
|
||||
1681ae34-3080-4bfa-a1b5-6d792342e692_46PN6-R9BK9-CVHKB-HWQ9V-MBJY8_172_1_Volume:MAK_EnterpriseGN
|
||||
df96023b-dcd9-4be2-afa0-c6c871159ebe_NJCF7-PW8QT-3324D-688JX-2YV66_175_0_____Retail_ServerRdsh
|
||||
d4ef7282-3d2c-4cf0-9976-8854e64a8d1e_V3WVW-N2PV2-CGWC3-34QGF-VMJ2C_178_0_____Retail_Cloud
|
||||
af5c9381-9240-417d-8d35-eb40cd03e484_NH9J3-68WK7-6FB93-4K3DF-DJ4F6_179_0_____Retail_CloudN
|
||||
c7051f63-3a76-4992-bce5-731ec0b1e825_2HN6V-HGTM8-6C97C-RK67V-JQPFD_183_1_____Retail_CloudE
|
||||
8ab9bdd1-1f67-4997-82d9-8878520837d9_XQQYW-NFFMW-XJPBH-K8732-CKFFD_188_0_____OEM:DM_IoTEnterprise
|
||||
ed655016-a9e8-4434-95d9-4345352c2552_QPM6N-7J2WJ-P88HH-P3YRH-YY74H_191_0_OEM:NONSLP_IoTEnterpriseS
|
||||
d4bdc678-0a4b-4a32-a5b3-aaa24c3b0f24_K9VKN-3BGWV-Y624W-MCRMQ-BHDCD_202_0_____Retail_CloudEditionN
|
||||
92fb8726-92a8-4ffc-94ce-f82e07444653_KY7PN-VR6RX-83W6Y-6DDYQ-T6R4W_203_0_____Retail_CloudEdition
|
||||
) do (
|
||||
for /f "tokens=1-7 delims=_" %%A in ("%%#") do if /i %targetedition%==%%F (
|
||||
|
||||
if not defined key (
|
||||
set 7th=%%G
|
||||
if not defined 7th (
|
||||
set "key=%%B" & set "_chan=%%E"
|
||||
echo "!applist!" | find /i "%%A" 1>nul && set _changepk=0
|
||||
) else (
|
||||
echo "%winos%" | find "%%G" 1>nul && (set "key=%%B" & set "_chan=%%E" & echo "!applist!" | find /i "%%A" 1>nul && set _changepk=0)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,698 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' (MAS) project.
|
||||
::
|
||||
:: Homepage: windowsaddict.ml
|
||||
:: Email: windowsaddict@protonmail.com
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||
:: or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\Sysnative\cmd.exe (
|
||||
set "_cmdf=%~f0"
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" %*"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Re-launch the script with ARM32 process if it was initiated by x64 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\SysArm32\cmd.exe if %PROCESSOR_ARCHITECTURE%==AMD64 (
|
||||
set "_cmdf=%~f0"
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" %*"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Set Path variable, it helps if it is misconfigured in the system
|
||||
|
||||
set "SysPath=%SystemRoot%\System32"
|
||||
if exist "%SystemRoot%\Sysnative\reg.exe" (set "SysPath=%SystemRoot%\Sysnative")
|
||||
set "Path=%SysPath%;%SystemRoot%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Extract $OEM$ Folder
|
||||
|
||||
set winbuild=1
|
||||
set "nul=>nul 2>&1"
|
||||
set "_psc=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe"
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
set _NCS=1
|
||||
if %winbuild% LSS 10586 set _NCS=0
|
||||
if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 2>nul | find /i "0x0" 1>nul && (set _NCS=0)
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
for /F %%a in ('echo prompt $E ^| cmd') do set "esc=%%a"
|
||||
set "Red="41;97m""
|
||||
set "Green="42;97m""
|
||||
set "Magenta="45;97m""
|
||||
set "_White="40;37m""
|
||||
set "_Green="40;92m""
|
||||
set "_Yellow="40;93m""
|
||||
) else (
|
||||
set "Red="Red" "white""
|
||||
set "Green="DarkGreen" "white""
|
||||
set "Magenta="Darkmagenta" "white""
|
||||
set "_White="Black" "Gray""
|
||||
set "_Green="Black" "Green""
|
||||
set "_Yellow="Black" "Yellow""
|
||||
)
|
||||
|
||||
set "nceline=echo: &echo ==== ERROR ==== &echo:"
|
||||
set "eline=echo: &call :ex_color %Red% "==== ERROR ====" &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%nceline%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10/11 and their Server equivalent.
|
||||
goto done2
|
||||
)
|
||||
|
||||
if not exist "%_psc%" (
|
||||
%nceline%
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check desktop location
|
||||
|
||||
set desktop=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop') do call set "desktop=%%b"
|
||||
if not defined desktop for /f "delims=" %%a in ('%_psc% "& {write-host $([Environment]::GetFolderPath('Desktop'))}"') do call set "desktop=%%a"
|
||||
|
||||
if not defined desktop (
|
||||
%eline%
|
||||
echo Desktop location was not detected, aborting...
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
set "_pdesk=%desktop:'=''%"
|
||||
|
||||
set "_ttemp=%temp%"
|
||||
|
||||
set "_dir=%desktop%\$OEM$\$$\Setup\Scripts"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" 1>nul && (
|
||||
%eline%
|
||||
echo Script is launched from the temp folder,
|
||||
echo Most likely you are running the script directly from the archive file.
|
||||
echo:
|
||||
echo Extract the archive file and launch the script from the extracted folder.
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode 66, 25
|
||||
|
||||
if exist "!desktop!\$OEM$\" (
|
||||
echo _____________________________________________________
|
||||
%eline%
|
||||
echo $OEM$ folder already exists on the Desktop.
|
||||
echo _____________________________________________________
|
||||
goto done2
|
||||
)
|
||||
|
||||
set HWID_Activation.cmd=Activators\HWID-KMS38_Activation\HWID_Activation.cmd
|
||||
set KMS38_Activation.cmd=Activators\HWID-KMS38_Activation\KMS38_Activation.cmd
|
||||
set ClipUp.exe=Activators\HWID-KMS38_Activation\BIN\ClipUp.exe
|
||||
set gatherosstate.exe=Activators\HWID-KMS38_Activation\BIN\gatherosstate.exe
|
||||
set slc.dll=Activators\HWID-KMS38_Activation\BIN\slc.dll
|
||||
set arm64_gatherosstate.exe=Activators\HWID-KMS38_Activation\BIN\arm64_gatherosstate.exe
|
||||
set arm64_slc.dll=Activators\HWID-KMS38_Activation\BIN\arm64_slc.dll
|
||||
|
||||
set Activate.cmd=Activators\Online_KMS_Activation\Activate.cmd
|
||||
set cleanosppx64.exe=Activators\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
set cleanosppx86.exe=Activators\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
|
||||
pushd "!_work!"
|
||||
pushd ..
|
||||
pushd ..
|
||||
|
||||
set _nofile=
|
||||
for %%# in (
|
||||
%HWID_Activation.cmd%
|
||||
%KMS38_Activation.cmd%
|
||||
%ClipUp.exe%
|
||||
%gatherosstate.exe%
|
||||
%slc.dll%
|
||||
%arm64_gatherosstate.exe%
|
||||
%arm64_slc.dll%
|
||||
%Activate.cmd%
|
||||
%cleanosppx64.exe%
|
||||
%cleanosppx86.exe%
|
||||
) do (
|
||||
if not exist "%%#" set _nofile=1
|
||||
)
|
||||
|
||||
popd
|
||||
popd
|
||||
popd
|
||||
|
||||
if defined _nofile (
|
||||
echo _____________________________________________________
|
||||
%eline%
|
||||
echo Some files are missing in the 'Activators' folder.
|
||||
echo _____________________________________________________
|
||||
goto done2
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:Menu
|
||||
|
||||
cls
|
||||
echo:
|
||||
echo:
|
||||
echo: Extract $OEM$ folder on the desktop
|
||||
echo: For more details use Read me
|
||||
echo: Here ^> means Fallback to
|
||||
echo: ________________________________________________________
|
||||
echo:
|
||||
echo: [1] HWID
|
||||
echo: [2] KMS38
|
||||
echo: [3] Online KMS
|
||||
echo:
|
||||
echo: [4] HWID ^> KMS38
|
||||
echo: [5] HWID ^> Online KMS
|
||||
echo: [6] KMS38 ^> Online KMS
|
||||
echo: [7] HWID ^> KMS38 ^> Online KMS
|
||||
echo:
|
||||
echo: [8] Exit
|
||||
echo: ________________________________________________________
|
||||
echo:
|
||||
call :ex_color2 %_White% " " %_Green% "Enter a menu option in the Keyboard [1,2,3,4,5,6,7,8]"
|
||||
choice /C:12345678 /N
|
||||
set _erl=%errorlevel%
|
||||
|
||||
if %_erl%==8 exit /b
|
||||
if %_erl%==7 goto:hwid_kms38_kms
|
||||
if %_erl%==6 goto:kms38_kms
|
||||
if %_erl%==5 goto:hwid_kms
|
||||
if %_erl%==4 goto:hwid_kms38
|
||||
if %_erl%==3 goto:kms
|
||||
if %_erl%==2 goto:kms38
|
||||
if %_erl%==1 goto:hwid
|
||||
goto :Menu
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:hwid
|
||||
|
||||
cls
|
||||
call :prep
|
||||
call :hwidprep
|
||||
call :pop_d
|
||||
call :export hwid_setup
|
||||
call :hwidprep2
|
||||
|
||||
if defined _error goto errorfound
|
||||
set "_oem=HWID"
|
||||
goto done
|
||||
|
||||
:hwid_setup:
|
||||
@echo off
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /a
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:hwid_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:kms38
|
||||
|
||||
cls
|
||||
call :prep
|
||||
call :kms38prep
|
||||
call :pop_d
|
||||
call :export kms38_setup
|
||||
call :kms38prep2
|
||||
|
||||
if defined _error goto errorfound
|
||||
set "_oem=KMS38"
|
||||
goto done
|
||||
|
||||
:kms38_setup:
|
||||
@echo off
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /a
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:kms38_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:kms
|
||||
|
||||
cls
|
||||
call :prep
|
||||
call :kmsprep
|
||||
call :pop_d
|
||||
call :export kms_setup
|
||||
call :kmsprep2
|
||||
|
||||
if defined _kerror goto errorfound
|
||||
set "_oem=Online KMS"
|
||||
goto done
|
||||
|
||||
:kms_setup:
|
||||
@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 || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0Activate.cmd" /wo
|
||||
if %Renewal_And_Activation_Task% EQU 1 start /b /wait cmd /c "%~dp0Activate.cmd" /rat
|
||||
if %Desktop_context_menu% EQU 1 start /b /wait cmd /c "%~dp0Activate.cmd" /dcm
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:kms_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:hwid_kms38
|
||||
|
||||
cls
|
||||
call :prep
|
||||
copy /y /b "%HWID_Activation.cmd%" "!_dir!\HWID_Activation.cmd" %nul%
|
||||
call :kms38prep
|
||||
call :pop_d
|
||||
call :export hwid_kms38_setup
|
||||
call :kms38prep2
|
||||
If not exist "!_dir!\HWID_Activation.cmd" set _error=1
|
||||
|
||||
if defined _error goto errorfound
|
||||
set "_oem=HWID [Fallback to] KMS38"
|
||||
goto done
|
||||
|
||||
:hwid_kms38_setup:
|
||||
@echo off
|
||||
|
||||
reg query HKU\S-1-5-19 1>nul 2>nul || exit /b
|
||||
|
||||
set KMS38=
|
||||
set osSKU=0
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do set "winos=%%b"
|
||||
for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do set "osSKU=%%a"
|
||||
|
||||
:: Check Windows Server version
|
||||
if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-Server*Edition~*.mum" set KMS38=1
|
||||
|
||||
:: 171=EnterpriseG, 172=EnterpriseGN, 183=CloudE
|
||||
for %%# in (171 172 183) do (if %osSKU%==%%# set KMS38=1)
|
||||
|
||||
:: Check Enterprise LTSC 2019/2021 N
|
||||
if %osSKU%==126 (echo %winos% | findstr /i "2019 2021" 1>nul && set KMS38=1)
|
||||
|
||||
if defined KMS38 (
|
||||
start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /a
|
||||
) else (
|
||||
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /a
|
||||
)
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:hwid_kms38_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:hwid_kms
|
||||
|
||||
cls
|
||||
call :prep
|
||||
call :hwidprep
|
||||
call :kmsprep
|
||||
call :pop_d
|
||||
call :export hwid_kms_setup
|
||||
call :hwidprep2
|
||||
call :kmsprep2
|
||||
|
||||
if defined _error goto errorfound
|
||||
if defined _kerror goto errorfound
|
||||
set "_oem=HWID [Fallback to] Online KMS"
|
||||
goto done
|
||||
|
||||
:hwid_kms_setup:
|
||||
@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 || exit /b
|
||||
|
||||
set KMS=
|
||||
set osSKU=0
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do set "winos=%%b"
|
||||
for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do set "osSKU=%%a"
|
||||
|
||||
:: Check Windows 10 install
|
||||
if %winbuild% LSS 10240 set KMS=1
|
||||
|
||||
:: Check Windows Server version
|
||||
if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-Server*Edition~*.mum" set KMS=1
|
||||
|
||||
:: 171=EnterpriseG, 172=EnterpriseGN, 183=CloudE
|
||||
for %%# in (171 172 183) do (if %osSKU%==%%# set KMS=1)
|
||||
|
||||
:: Check Enterprise LTSC 2019/2021 N
|
||||
if %osSKU%==126 (echo %winos% | findstr /i "2019 2021" 1>nul && set KMS=1)
|
||||
|
||||
if defined KMS (
|
||||
start /b /wait cmd /c "%~dp0Activate.cmd" /wo
|
||||
) else (
|
||||
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /a
|
||||
start /b /wait cmd /c "%~dp0Activate.cmd" /o
|
||||
)
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 start /b /wait cmd /c "%~dp0Activate.cmd" /rat
|
||||
if %Desktop_context_menu% EQU 1 start /b /wait cmd /c "%~dp0Activate.cmd" /dcm
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:hwid_kms_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:kms38_kms
|
||||
|
||||
cls
|
||||
call :prep
|
||||
call :kms38prep
|
||||
call :kmsprep
|
||||
call :pop_d
|
||||
call :export kms38_kms_setup
|
||||
call :kms38prep2
|
||||
call :kmsprep2
|
||||
|
||||
if defined _error goto errorfound
|
||||
if defined _kerror goto errorfound
|
||||
set "_oem=KMS38 [Fallback to] Online KMS"
|
||||
goto done
|
||||
|
||||
:kms38_kms_setup:
|
||||
@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 || exit /b
|
||||
|
||||
start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /a
|
||||
|
||||
start /b /wait cmd /c "%~dp0Activate.cmd" /wo
|
||||
if %Renewal_And_Activation_Task% EQU 1 start /b /wait cmd /c "%~dp0Activate.cmd" /rat
|
||||
if %Desktop_context_menu% EQU 1 start /b /wait cmd /c "%~dp0Activate.cmd" /dcm
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:kms38_kms_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:hwid_kms38_kms
|
||||
|
||||
cls
|
||||
call :prep
|
||||
copy /y /b "%HWID_Activation.cmd%" "!_dir!\HWID_Activation.cmd" %nul%
|
||||
call :kms38prep
|
||||
call :kmsprep
|
||||
call :pop_d
|
||||
call :export hwid_kms38_kms_setup
|
||||
|
||||
call :kms38prep2
|
||||
call :kmsprep2
|
||||
If not exist "!_dir!\HWID_Activation.cmd" set _error=1
|
||||
|
||||
if defined _error goto errorfound
|
||||
if defined _kerror goto errorfound
|
||||
set "_oem=HWID [Fallback to] KMS38 [Fallback to] Online KMS"
|
||||
goto done
|
||||
|
||||
:hwid_kms38_kms_setup:
|
||||
@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 || exit /b
|
||||
|
||||
set KMS=
|
||||
set KMS38=
|
||||
set osSKU=0
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do set "winos=%%b"
|
||||
for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do set "osSKU=%%a"
|
||||
|
||||
:: Check Windows 10 install
|
||||
if %winbuild% LSS 10240 set KMS=1
|
||||
|
||||
:: Check Windows Server version
|
||||
if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-Server*Edition~*.mum" set KMS38=1
|
||||
|
||||
:: 171=EnterpriseG, 172=EnterpriseGN, 183=CloudE
|
||||
for %%# in (171 172 183) do (if %osSKU%==%%# set KMS38=1)
|
||||
|
||||
:: Check Enterprise LTSC 2019/2021 N
|
||||
if %osSKU%==126 (echo %winos% | findstr /i "2019 2021" 1>nul && set KMS38=1)
|
||||
|
||||
if defined KMS38 set KMS=1
|
||||
|
||||
if defined KMS (
|
||||
if defined KMS38 (start /b /wait cmd /c "%~dp0KMS38_Activation.cmd" /a)
|
||||
start /b /wait cmd /c "%~dp0Activate.cmd" /wo
|
||||
) else (
|
||||
start /b /wait cmd /c "%~dp0HWID_Activation.cmd" /a
|
||||
start /b /wait cmd /c "%~dp0Activate.cmd" /o
|
||||
)
|
||||
|
||||
if %Renewal_And_Activation_Task% EQU 1 start /b /wait cmd /c "%~dp0Activate.cmd" /rat
|
||||
if %Desktop_context_menu% EQU 1 start /b /wait cmd /c "%~dp0Activate.cmd" /dcm
|
||||
|
||||
cd \
|
||||
(goto) 2>nul & (if "%~dp0"=="%SystemRoot%\Setup\Scripts\" rd /s /q "%~dp0")
|
||||
:hwid_kms38_kms_setup:
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:errorfound
|
||||
|
||||
%eline%
|
||||
echo $OEM$ Folder was not created successfully...
|
||||
goto :done2
|
||||
|
||||
:done
|
||||
|
||||
echo _______________________________________________________
|
||||
echo:
|
||||
call :ex_color %Magenta% "%_oem%"
|
||||
call :ex_color %Green% "$OEM$ folder is successfully created on the Desktop."
|
||||
echo _______________________________________________________
|
||||
|
||||
:done2
|
||||
|
||||
echo:
|
||||
call :ex_color %_Yellow% "Press any key to exit..."
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:prep
|
||||
|
||||
pushd "!desktop!"
|
||||
md "!desktop!\$OEM$\$$\Setup\Scripts\BIN"
|
||||
pushd "!_work!"
|
||||
pushd ..
|
||||
pushd ..
|
||||
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 "%cleanosppx64.exe%" "!_dir!\BIN\cleanosppx64.exe" %nul%
|
||||
copy /y /b "%cleanosppx86.exe%" "!_dir!\BIN\cleanosppx86.exe" %nul%
|
||||
exit /b
|
||||
|
||||
:hwidprep2
|
||||
|
||||
set _error=
|
||||
pushd "!_dir!\"
|
||||
|
||||
for %%# in (
|
||||
HWID_Activation.cmd
|
||||
BIN\gatherosstate.exe
|
||||
BIN\slc.dll
|
||||
BIN\arm64_gatherosstate.exe
|
||||
BIN\arm64_slc.dll
|
||||
SetupComplete.cmd
|
||||
) do (
|
||||
if not exist "%%#" set _error=1
|
||||
)
|
||||
popd
|
||||
exit /b
|
||||
|
||||
:kms38prep2
|
||||
|
||||
set _error=
|
||||
pushd "!_dir!\"
|
||||
|
||||
for %%# in (
|
||||
KMS38_Activation.cmd
|
||||
BIN\ClipUp.exe
|
||||
BIN\gatherosstate.exe
|
||||
BIN\slc.dll
|
||||
BIN\arm64_gatherosstate.exe
|
||||
BIN\arm64_slc.dll
|
||||
SetupComplete.cmd
|
||||
) do (
|
||||
if not exist "%%#" set _error=1
|
||||
)
|
||||
popd
|
||||
exit /b
|
||||
|
||||
:kmsprep2
|
||||
|
||||
set _kerror=
|
||||
pushd "!_dir!\"
|
||||
|
||||
for %%# in (
|
||||
Activate.cmd
|
||||
BIN\cleanosppx64.exe
|
||||
BIN\cleanosppx86.exe
|
||||
SetupComplete.cmd
|
||||
) do (
|
||||
if not exist "%%#" set _kerror=1
|
||||
)
|
||||
popd
|
||||
exit /b
|
||||
|
||||
:pop_d
|
||||
|
||||
popd
|
||||
popd
|
||||
popd
|
||||
popd
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Extract the text from batch script without character and file encoding issue
|
||||
|
||||
:export
|
||||
|
||||
%nul% %_psc% "$f=[io.file]::ReadAllText('!_batp!') -split \":%~1\:.*`r`n\"; [io.file]::WriteAllText('!_pdesk!\$OEM$\$$\Setup\Scripts\SetupComplete.cmd',$f[1].Trim(),[System.Text.Encoding]::ASCII);"
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ex_color
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[0m
|
||||
) else (
|
||||
if not exist %_psc% (echo %~3) else (%_psc% write-host -back '%1' -fore '%2' '%3')
|
||||
)
|
||||
exit /b
|
||||
|
||||
:ex_color2
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[%~3%~4%esc%[0m
|
||||
) else (
|
||||
if not exist %_psc% (echo %~3%~6) else (%_psc% write-host -back '%1' -fore '%2' '%3' -NoNewline; write-host -back '%4' -fore '%5' '%6')
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
@ -1,3 +0,0 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://windowsaddict.ml/readme-oem-folder.html">
|
||||
</html>
|
@ -1,3 +0,0 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://windowsaddict.ml/">
|
||||
</html>
|
@ -0,0 +1,925 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' (MAS) project.
|
||||
::
|
||||
:: Homepage: massgrave.dev
|
||||
:: Email: windowsaddict@protonmail.com
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
|
||||
|
||||
:: To activate, run the script with "/HWID" parameter or change 0 to 1 in below line
|
||||
set _act=0
|
||||
|
||||
:: To disable changing edition if current edition doesn't support HWID activation, change the value to 1 from 0 or run the script with "/HWID-NoEditionChange" parameter
|
||||
set _NoEditionChange=0
|
||||
|
||||
:: If value is changed in above lines or parameter is used then script will run in unattended mode
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||
:: or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows
|
||||
|
||||
set "_cmdf=%~f0"
|
||||
for %%# in (%*) do (
|
||||
if /i "%%#"=="r1" set r1=1
|
||||
if /i "%%#"=="r2" set r2=1
|
||||
)
|
||||
|
||||
if exist %SystemRoot%\Sysnative\cmd.exe if not defined r1 (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" %* r1"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Re-launch the script with ARM32 process if it was initiated by x64 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\SysArm32\cmd.exe if %PROCESSOR_ARCHITECTURE%==AMD64 if not defined r2 (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" %* r2"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Set Path variable, it helps if it is misconfigured in the system
|
||||
|
||||
set "PATH=%SystemRoot%\System32;%SystemRoot%\System32\wbem;%SystemRoot%\System32\WindowsPowerShell\v1.0\"
|
||||
if exist "%SystemRoot%\Sysnative\reg.exe" (
|
||||
set "PATH=%SystemRoot%\Sysnative;%SystemRoot%\Sysnative\wbem;%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\;%PATH%"
|
||||
)
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /rxc:".*" "%~nx0"
|
||||
if not %errorlevel%==0 (
|
||||
echo:
|
||||
echo Error: This is not a correct file. It has LF line ending issue.
|
||||
echo:
|
||||
ping 127.0.0.1 -n 6 > nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
color 07
|
||||
title HWID Activation
|
||||
|
||||
set _args=
|
||||
set _elev=
|
||||
set _unattended=0
|
||||
|
||||
set _args=%*
|
||||
if defined _args set _args=%_args:"=%
|
||||
if defined _args (
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="/HWID" set _act=1
|
||||
if /i "%%A"=="/HWID-NoEditionChange" set _NoEditionChange=1
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
)
|
||||
)
|
||||
|
||||
for %%A in (%_act% %_NoEditionChange%) do (if "%%A"=="1" set _unattended=1)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set winbuild=1
|
||||
set "nul=>nul 2>&1"
|
||||
set psc=powershell.exe
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
set _NCS=1
|
||||
if %winbuild% LSS 10586 set _NCS=0
|
||||
if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 2>nul | find /i "0x0" 1>nul && (set _NCS=0)
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
for /F %%a in ('echo prompt $E ^| cmd') do set "esc=%%a"
|
||||
set "Red="41;97m""
|
||||
set "Gray="100;97m""
|
||||
set "Green="42;97m""
|
||||
set "Magenta="45;97m""
|
||||
set "_White="40;37m""
|
||||
set "_Green="40;92m""
|
||||
set "_Yellow="40;93m""
|
||||
) else (
|
||||
set "Red="Red" "white""
|
||||
set "Gray="Darkgray" "white""
|
||||
set "Green="DarkGreen" "white""
|
||||
set "Magenta="Darkmagenta" "white""
|
||||
set "_White="Black" "Gray""
|
||||
set "_Green="Black" "Green""
|
||||
set "_Yellow="Black" "Yellow""
|
||||
)
|
||||
|
||||
set "nceline=echo: &echo ==== ERROR ==== &echo:"
|
||||
set "eline=echo: &call :dk_color %Red% "==== ERROR ====" &echo:"
|
||||
if %~z0 GEQ 200000 (set "_exitmsg=Go back") else (set "_exitmsg=Exit")
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 10240 (
|
||||
%eline%
|
||||
echo Unsupported OS version detected.
|
||||
echo Project is supported for Windows 10/11.
|
||||
goto dk_done
|
||||
)
|
||||
|
||||
if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-Server*Edition~*.mum" (
|
||||
%eline%
|
||||
echo HWID Activation is not supported for Windows Server.
|
||||
echo Use KMS38 or KMS Activation.
|
||||
goto dk_done
|
||||
)
|
||||
|
||||
for %%# in (powershell.exe) do @if "%%~$PATH:#"=="" (
|
||||
%nceline%
|
||||
echo Unable to find powershell.exe in the system.
|
||||
goto dk_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
|
||||
set "_ttemp=%temp%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" 1>nul && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%eline%
|
||||
echo Script is launched from the temp folder,
|
||||
echo Most likely you are running the script directly from the archive file.
|
||||
echo:
|
||||
echo Extract the archive file and launch the script from the extracted folder.
|
||||
goto dk_done
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
|
||||
>nul fltmc || (
|
||||
if not defined _elev %nul% %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%eline%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto dk_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
mode 102, 33
|
||||
title HWID Activation
|
||||
|
||||
echo:
|
||||
echo Initializing...
|
||||
call :dk_product
|
||||
call :dk_ckeckwmic
|
||||
|
||||
:: Show info for potential script stuck scenario
|
||||
|
||||
sc start sppsvc %nul%
|
||||
if %errorlevel% NEQ 1056 if %errorlevel% NEQ 0 (
|
||||
echo:
|
||||
echo Error code: %errorlevel%
|
||||
call :dk_color %Red% "Failed to start [sppsvc] service, rest of the process may take a long time..."
|
||||
echo:
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check if system is permanently activated or not
|
||||
|
||||
call :dk_checkperm
|
||||
if defined _perm (
|
||||
cls
|
||||
echo ___________________________________________________________________________________________
|
||||
echo:
|
||||
call :dk_color2 %_White% " " %Green% "Checking: %winos% is Permanently Activated."
|
||||
call :dk_color2 %_White% " " %Gray% "Activation is not required."
|
||||
echo ___________________________________________________________________________________________
|
||||
if %_unattended%==1 goto dk_done
|
||||
echo:
|
||||
choice /C:10 /N /M "> [1] Activate [0] %_exitmsg% : "
|
||||
if errorlevel 2 exit /b
|
||||
)
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Evaluation version
|
||||
|
||||
if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID 2>nul | find /i "Eval" 1>nul && (
|
||||
%eline%
|
||||
echo [%winos% ^| %winbuild%]
|
||||
echo Evaluation Editions cannot be activated. Download ^& Install full version of Windows OS.
|
||||
echo:
|
||||
echo https://massgrave.dev/
|
||||
goto dk_done
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value / Check in multiple places to find Edition change corruption
|
||||
|
||||
set osSKU=
|
||||
set regSKU=
|
||||
set wmiSKU=
|
||||
|
||||
for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do set "regSKU=%%a"
|
||||
if %_wmic% EQU 1 for /f "tokens=2 delims==" %%a in ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 set "wmiSKU=%%a"
|
||||
if %_wmic% EQU 0 for /f "tokens=1" %%a in ('%psc% "([WMI]'Win32_OperatingSystem=@').OperatingSystemSKU" 2^>nul') do if not errorlevel 1 set "wmiSKU=%%a"
|
||||
|
||||
set osSKU=%wmiSKU%
|
||||
if not defined osSKU set osSKU=%regSKU%
|
||||
|
||||
if not defined osSKU (
|
||||
%eline%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto dk_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set error=
|
||||
|
||||
:: Check Internet connection
|
||||
|
||||
cls
|
||||
echo:
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v PROCESSOR_ARCHITECTURE') do set arch=%%b
|
||||
echo Checking OS Info [%winos% ^| %winbuild% ^| %arch%]
|
||||
|
||||
set _intcon=
|
||||
for /f "delims=[] tokens=2" %%# in ('ping -n 1 licensing.mp.microsoft.com') do if not [%%#]==[] set _intcon=1
|
||||
|
||||
%psc% "$t = New-Object Net.Sockets.TcpClient;try{$t.Connect("""licensing.mp.microsoft.com""", 443)}catch{};$t.Connected" | findstr /i true 1>nul
|
||||
if %errorlevel% EQU 0 (
|
||||
echo Checking Internet Connection [Connected]
|
||||
) else (
|
||||
set error=1
|
||||
if defined _intcon (
|
||||
call :dk_color %Red% "Checking Internet Connection [Internet Found But Cant Connect licensing.mp.microsoft.com]"
|
||||
call :dk_color %Magenta% "Make sure restricted Internet [Office/College] is not connected and URL is not blocked in the system"
|
||||
) else (
|
||||
call :dk_color %Red% "Checking Internet Connection [Not Connected]"
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check Windows Script Host
|
||||
|
||||
set _WSH=1
|
||||
reg query "HKCU\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled 2>nul | find /i "0x0" 1>nul && (set _WSH=0)
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled 2>nul | find /i "0x0" 1>nul && (set _WSH=0)
|
||||
|
||||
if %_WSH% EQU 0 (
|
||||
reg add "HKLM\Software\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 1 /f %nul%
|
||||
reg add "HKCU\Software\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 1 /f %nul%
|
||||
if not "%arch%"=="x86" reg add "HKLM\Software\Microsoft\Windows Script Host\Settings" /v Enabled /t REG_DWORD /d 1 /f /reg:32 %nul%
|
||||
echo Enabling Windows Script Host [Successful]
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo Initiating Diagnostic Tests...
|
||||
|
||||
set "_serv=ClipSVC wlidsvc sppsvc LicenseManager Winmgmt wuauserv"
|
||||
|
||||
:: Client License Service (ClipSVC)
|
||||
:: Microsoft Account Sign-in Assistant
|
||||
:: Software Protection
|
||||
:: Windows License Manager Service
|
||||
:: Windows Management Instrumentation
|
||||
:: Windows Update
|
||||
|
||||
call :dk_errorcheck
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Detect Key
|
||||
|
||||
set key=
|
||||
set altkey=
|
||||
set changekey=
|
||||
set curedition=
|
||||
set altedition=
|
||||
set notworking=
|
||||
set actidnotfound=
|
||||
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v BuildBranch 2^>nul') do set "branch=%%b"
|
||||
|
||||
if defined applist call :hwiddata key attempt1
|
||||
if not defined key call :hwiddata key attempt2
|
||||
|
||||
if defined notworking call :hwidfallback
|
||||
if not defined key call :hwidfallback
|
||||
|
||||
if defined altkey (set key=%altkey%&set changekey=1&set notworking=)
|
||||
|
||||
if defined notworking if defined notfoundaltactID (
|
||||
call :dk_color %Red% "Checking Alternate Edition For HWID [%altedition% Activation ID Not Found]"
|
||||
if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
||||
call :dk_color %Magenta% "Evaluation Windows Found. Install Full version of Windows. https://massgrave.dev/"
|
||||
)
|
||||
)
|
||||
|
||||
if not defined key (
|
||||
%eline%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%]
|
||||
echo Unable to find this product in the supported product list.
|
||||
echo Make sure you are using updated version of the script.
|
||||
echo https://massgrave.dev
|
||||
echo:
|
||||
goto dk_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Install key
|
||||
|
||||
echo:
|
||||
if defined changekey (
|
||||
call :dk_color %Magenta% "[%altedition%] Edition product key will be used to enable HWID activation."
|
||||
echo:
|
||||
)
|
||||
|
||||
if %_wmic% EQU 1 wmic path SoftwareLicensingService where __CLASS='SoftwareLicensingService' call InstallProductKey ProductKey="%key%" %nul%
|
||||
if %_wmic% EQU 0 %psc% "(([WMISEARCHER]'SELECT Version FROM SoftwareLicensingService').Get()).InstallProductKey('%key%')" %nul%
|
||||
if not %errorlevel%==0 cscript //nologo %windir%\system32\slmgr.vbs /ipk %key% %nul%
|
||||
set errorcode=%errorlevel%
|
||||
cmd /c exit /b %errorcode%
|
||||
if %errorcode% NEQ 0 set "errorcode=[0x%=ExitCode%]"
|
||||
|
||||
if %errorcode% EQU 0 (
|
||||
call :dk_refresh
|
||||
echo Installing Generic Product Key [%key%] [Successful]
|
||||
) else (
|
||||
set error=1
|
||||
call :dk_color %Red% "Installing Generic Product Key [%key%] [Failed] %errorcode%"
|
||||
if defined applist if defined actidnotfound call :dk_color %Red% "Activation ID not found for this key. Make sure you are using updated version of MAS."
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Change Windows region to USA to avoid activation issues as Windows store license is not available in many countries
|
||||
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKCU\Control Panel\International\Geo" /v Name 2^>nul') do set "name=%%b"
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKCU\Control Panel\International\Geo" /v Nation 2^>nul') do set "nation=%%b"
|
||||
|
||||
set regionchange=
|
||||
if not "%name%"=="US" (
|
||||
set regionchange=1
|
||||
%psc% Set-WinHomeLocation -GeoId 244
|
||||
if !errorlevel! EQU 0 (
|
||||
echo Changing Windows Region To USA [Successful]
|
||||
) else (
|
||||
call :dk_color %Red% "Changing Windows Region To USA [Failed]"
|
||||
)
|
||||
)
|
||||
|
||||
::==========================================================================================================================================
|
||||
|
||||
:: Generate GenuineTicket.xml and apply
|
||||
:: Most correct way to apply a ticket is by restarting ClipSVC service but we can not check the log details in this way
|
||||
:: To get the log details and also to correctly apply ticket, script will install tickets two times (service restart + clipup -v -o)
|
||||
|
||||
set "tdir=%ProgramData%\Microsoft\Windows\ClipSVC\GenuineTicket"
|
||||
if not exist "%tdir%\" md "%tdir%\" %nul%
|
||||
|
||||
if exist "%tdir%\Genuine*" del /f /q "%tdir%\Genuine*" %nul%
|
||||
if exist "%tdir%\*.xml" del /f /q "%tdir%\*.xml" %nul%
|
||||
|
||||
call :hwiddata ticket
|
||||
|
||||
copy /y /b "%tdir%\GenuineTicket" "%tdir%\GenuineTicket.xml" %nul%
|
||||
|
||||
if not exist "%tdir%\GenuineTicket.xml" (
|
||||
call :dk_color %Red% "Generating GenuineTicket.xml [Failed]"
|
||||
echo [%encoded%]
|
||||
if exist "%tdir%\Genuine*" del /f /q "%tdir%\Genuine*" %nul%
|
||||
goto :dl_final
|
||||
) else (
|
||||
echo Generating GenuineTicket.xml [Successful]
|
||||
)
|
||||
|
||||
set "_xmlexist=if exist "%tdir%\GenuineTicket.xml""
|
||||
|
||||
%_xmlexist% (
|
||||
net stop ClipSVC /y %nul%
|
||||
net start ClipSVC /y %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
%_xmlexist% timeout /t 2 %nul%
|
||||
|
||||
%_xmlexist% (
|
||||
if exist "%tdir%\*.xml" del /f /q "%tdir%\*.xml" %nul%
|
||||
call :dk_color %Red% "Installing GenuineTicket.xml [Failed With ClipSVC Service Restart, Wait...]"
|
||||
)
|
||||
)
|
||||
|
||||
copy /y /b "%tdir%\GenuineTicket" "%tdir%\GenuineTicket.xml" %nul%
|
||||
clipup -v -o
|
||||
if exist "%tdir%\Genuine*" del /f /q "%tdir%\Genuine*" %nul%
|
||||
|
||||
::==========================================================================================================================================
|
||||
|
||||
call :dk_product
|
||||
|
||||
echo:
|
||||
echo Activating...
|
||||
echo:
|
||||
|
||||
call :dk_act
|
||||
call :dk_checkperm
|
||||
if defined _perm (
|
||||
call :dk_color %Green% "%winos% is permanently activated."
|
||||
goto :dl_final
|
||||
)
|
||||
|
||||
|
||||
if not defined error (
|
||||
|
||||
REM Clear store ID related registry to fix activation incase if there is any corruption
|
||||
|
||||
set "_ident=HKU\S-1-5-19\SOFTWARE\Microsoft\IdentityCRL"
|
||||
reg delete "!_ident!" /f %nul%
|
||||
reg query "!_ident!" %nul% && (
|
||||
call :dk_color %Red% "Deleting a Registry [Failed] [!_ident!]"
|
||||
) || (
|
||||
echo Deleting a Registry [Successful] [!_ident!]
|
||||
)
|
||||
|
||||
REM Refresh some services and license status
|
||||
|
||||
for %%# in (wlidsvc LicenseManager sppsvc) do (net stop %%# /y %nul% & net start %%# /y %nul%)
|
||||
call :dk_refresh
|
||||
call :dk_act
|
||||
call :dk_checkperm
|
||||
)
|
||||
|
||||
if defined _perm (
|
||||
call :dk_color %Green% "%winos% is permanently activated."
|
||||
) else (
|
||||
call :dk_color %Red% "Activation Failed %error_code%"
|
||||
if defined notworking (
|
||||
call :dk_color %Magenta% "At the time of writing this, HWID Activation was not supported for this product."
|
||||
) else (
|
||||
call :dk_color2 %Magenta% "Check this page for help" %_Yellow% " https://massgrave.dev/troubleshoot"
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:dl_final
|
||||
|
||||
echo:
|
||||
|
||||
if defined regionchange (
|
||||
%psc% Set-WinHomeLocation -GeoId %nation%
|
||||
if !errorlevel! EQU 0 (
|
||||
echo Restoring Windows Region [Successful]
|
||||
) else (
|
||||
call :dk_color %Red% "Restoring Windows Region [Failed] [%name%-%nation%]"
|
||||
)
|
||||
)
|
||||
|
||||
if %osSKU%==175 call :dk_color %Red% "ServerRdsh Editon does not officially support activation on non-azure platforms."
|
||||
|
||||
goto :dk_done
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Get Windows permanent activation status
|
||||
|
||||
:dk_checkperm
|
||||
|
||||
if %_wmic% EQU 1 wmic path SoftwareLicensingProduct where (LicenseStatus='1' and GracePeriodRemaining='0' and PartialProductKey is not NULL) get Name /value 2>nul | findstr /i "Windows" 1>nul && set _perm=1||set _perm=
|
||||
if %_wmic% EQU 0 %psc% "(([WMISEARCHER]'SELECT Name FROM SoftwareLicensingProduct WHERE LicenseStatus=1 AND GracePeriodRemaining=0 AND PartialProductKey IS NOT NULL').Get()).Name | %% {echo ('Name='+$_)}" 2>nul | findstr /i "Windows" 1>nul && set _perm=1||set _perm=
|
||||
exit /b
|
||||
|
||||
:: Refresh license status
|
||||
|
||||
:dk_refresh
|
||||
|
||||
if %_wmic% EQU 1 wmic path SoftwareLicensingService where __CLASS='SoftwareLicensingService' call RefreshLicenseStatus %nul%
|
||||
if %_wmic% EQU 0 %psc% "$null=(([WMICLASS]'SoftwareLicensingService').GetInstances()).RefreshLicenseStatus()" %nul%
|
||||
exit /b
|
||||
|
||||
:: Activation command
|
||||
|
||||
:dk_act
|
||||
|
||||
set error_code=
|
||||
if %_wmic% EQU 1 wmic path SoftwareLicensingProduct where "ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f' and PartialProductKey<>null" call Activate %nul%
|
||||
if %_wmic% EQU 0 %psc% "(([WMISEARCHER]'SELECT ID FROM SoftwareLicensingProduct WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f'' AND PartialProductKey IS NOT NULL').Get()).Activate()" %nul%
|
||||
if not %errorlevel%==0 cscript //nologo %windir%\system32\slmgr.vbs /ato %nul%
|
||||
set error_code=%errorlevel%
|
||||
cmd /c exit /b %error_code%
|
||||
if %error_code% NEQ 0 (set "error_code=[Error Code: 0x%=ExitCode%]") else (set error_code=)
|
||||
exit /b
|
||||
|
||||
:: Get Windows Activation IDs
|
||||
|
||||
:dk_actids
|
||||
|
||||
set applist=
|
||||
if %_wmic% EQU 1 set "chkapp=for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f') get ID /VALUE" 2^>nul')"
|
||||
if %_wmic% EQU 0 set "chkapp=for /f "tokens=2 delims==" %%a in ('%psc% "(([WMISEARCHER]'SELECT ID FROM SoftwareLicensingProduct WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f''').Get()).ID ^| %% {echo ('ID='+$_)}" 2^>nul')"
|
||||
%chkapp% do (if defined applist (call set "applist=!applist! %%a") else (call set "applist=%%a"))
|
||||
exit /b
|
||||
|
||||
:: Get Product name (WMI/REG methods are not reliable in all conditions, hence winbrand.dll method is used)
|
||||
|
||||
:dk_product
|
||||
|
||||
set winos=
|
||||
set d1=[DllImport(\"winbrand\",CharSet=CharSet.Unicode)]public static extern string BrandingFormatString(string s);
|
||||
set d2=$AP=Add-Type -Member '%d1%' -Name D1 -PassThru; $AP::BrandingFormatString('%%WINDOWS_LONG%%')
|
||||
for /f "delims=" %%s in ('"%psc% %d2%"') do if not errorlevel 1 (set winos=%%s)
|
||||
echo "%winos%" | find /i "Windows" 1>nul || (
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do set "winos=%%b"
|
||||
if %winbuild% GEQ 22000 (
|
||||
set winos=!winos:Windows 10=Windows 11!
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:: Check wmic.exe
|
||||
|
||||
:dk_ckeckwmic
|
||||
|
||||
set _wmic=0
|
||||
for %%# in (wmic.exe) do @if not "%%~$PATH:#"=="" (
|
||||
wmic path Win32_ComputerSystem get CreationClassName /value 2>nul | find /i "computersystem" 1>nul && set _wmic=1
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:dk_errorcheck
|
||||
|
||||
:: Check disabled services
|
||||
|
||||
set serv_ste=
|
||||
for %%# in (%_serv%) do (
|
||||
set serv_dis=
|
||||
reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v Start %nul% || set serv_dis=1
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query HKLM\SYSTEM\CurrentControlSet\Services\%%# /v Start 2^>nul') do if /i %%b equ 0x4 set serv_dis=1
|
||||
if defined serv_dis (if defined serv_ste (set "serv_ste=!serv_ste! %%#") else (set "serv_ste=%%#"))
|
||||
)
|
||||
|
||||
:: Change disabled services startup type to default
|
||||
|
||||
set serv_csts=
|
||||
set serv_cste=
|
||||
|
||||
if defined serv_ste (
|
||||
for %%# in (%serv_ste%) do (
|
||||
if /i %%#==ClipSVC (reg add "HKLM\SYSTEM\CurrentControlSet\Services\%%#" /v "Start" /t REG_DWORD /d "3" /f %nul% & sc config %%# start= demand %nul%)
|
||||
if /i %%#==wlidsvc sc config %%# start= demand %nul%
|
||||
if /i %%#==sppsvc (reg add "HKLM\SYSTEM\CurrentControlSet\Services\%%#" /v "Start" /t REG_DWORD /d "2" /f %nul% & sc config %%# start= delayed-auto %nul%)
|
||||
if /i %%#==LicenseManager sc config %%# start= demand %nul%
|
||||
if /i %%#==Winmgmt sc config %%# start= auto %nul%
|
||||
if /i %%#==wuauserv sc config %%# start= demand %nul%
|
||||
if !errorlevel!==0 (
|
||||
if defined serv_csts (set "serv_csts=!serv_csts! %%#") else (set "serv_csts=%%#")
|
||||
) else (
|
||||
set error=1
|
||||
if defined serv_cste (set "serv_cste=!serv_cste! %%#") else (set "serv_cste=%%#")
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
if defined serv_csts echo Enabling Disabled Services [Successful] [%serv_csts%]
|
||||
|
||||
if defined serv_cste (
|
||||
echo %serv_cste% | findstr /i "ClipSVC sppsvc" %nul% && (
|
||||
call :dk_color %Red% "Enabling Disabled Services [Failed] [%serv_cste%] [Restart System]"
|
||||
) || (
|
||||
call :dk_color %Red% "Enabling Disabled Services [Failed] [%serv_cste%]"
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check if the services are able to run or not
|
||||
:: Workarounds are added to get correct status and error code because sc query doesn't output correct results in some conditions
|
||||
|
||||
set serv_e=
|
||||
for %%# in (%_serv%) do (
|
||||
set errorcode=
|
||||
set checkerror=
|
||||
net start %%# /y %nul%
|
||||
sc query %%# | find /i "4 RUNNING" %nul% || set checkerror=1
|
||||
|
||||
sc start %%# %nul%
|
||||
set errorcode=!errorlevel!
|
||||
if !errorcode! NEQ 1056 if !errorcode! NEQ 0 set checkerror=1
|
||||
if defined checkerror if defined serv_e (set "serv_e=!serv_e!, %%#-!errorcode!") else (set "serv_e=%%#-!errorcode!")
|
||||
)
|
||||
|
||||
if defined serv_e (
|
||||
set error=1
|
||||
call :dk_color %Red% "Starting Services [Failed] [%serv_e%]"
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Various error checks
|
||||
|
||||
for %%# in (wmic.exe) do @if "%%~$PATH:#"=="" (
|
||||
call :dk_color %Gray% "Checking WMIC.exe [Not Found]"
|
||||
)
|
||||
|
||||
|
||||
%psc% $ExecutionContext.SessionState.LanguageMode 2>nul | find /i "Full" 1>nul || (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking Powershell [Not Responding]"
|
||||
)
|
||||
|
||||
|
||||
if %_wmic% EQU 1 wmic path Win32_ComputerSystem get CreationClassName /value 2>nul | find /i "computersystem" 1>nul
|
||||
if %_wmic% EQU 0 %psc% "Get-CIMInstance -Class Win32_ComputerSystem | Select-Object -Property CreationClassName" 2>nul | find /i "computersystem" 1>nul
|
||||
if %errorlevel% NEQ 0 (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking WMI [Not Responding] %_wmic%"
|
||||
)
|
||||
|
||||
|
||||
if not "%regSKU%"=="%wmiSKU%" (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking WMI/REG SKU [Difference Found - WMI:%wmiSKU% Reg:%regSKU%]"
|
||||
)
|
||||
|
||||
|
||||
DISM /English /Online /Get-CurrentEdition %nul%
|
||||
set error_code=%errorlevel%
|
||||
cmd /c exit /b %error_code%
|
||||
if %error_code% NEQ 0 set "error_code=[0x%=ExitCode%]"
|
||||
if %error_code% NEQ 0 (
|
||||
call :dk_color %Red% "Checking DISM [Not Responding] %error_code%"
|
||||
)
|
||||
|
||||
|
||||
if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-*EvalEdition~*.mum" (
|
||||
call :dk_color %Red% "Checking Eval Packages [Non-Eval Licenses are installed in Eval Windows]"
|
||||
)
|
||||
|
||||
|
||||
cscript //nologo %windir%\system32\slmgr.vbs /dlv %nul%
|
||||
set error_code=%errorlevel%
|
||||
cmd /c exit /b %error_code%
|
||||
if %error_code% NEQ 0 set "error_code=0x%=ExitCode%"
|
||||
if %error_code% NEQ 0 (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking slmgr /dlv [Not Responding] %error_code%"
|
||||
)
|
||||
|
||||
|
||||
reg query "HKU\S-1-5-20\Software\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\PersistedTSReArmed" %nul% && (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking Rearm [System Restart Is Required]"
|
||||
)
|
||||
|
||||
|
||||
reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ClipSVC\Volatile\PersistedSystemState" %nul% && (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking ClipSVC [System Restart Is Required]"
|
||||
)
|
||||
|
||||
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "SkipRearm" 2^>nul') do if /i %%b NEQ 0x0 (
|
||||
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform" /v "SkipRearm" /t REG_DWORD /d "0" /f %nul%
|
||||
call :dk_color %Red% "Checking SkipRearm [Default 0 Value Not Found, Changing To 0]"
|
||||
net stop sppsvc /y %nul%
|
||||
net start sppsvc /y %nul%
|
||||
set error=1
|
||||
)
|
||||
|
||||
|
||||
call :dk_actids
|
||||
if not defined applist (
|
||||
net stop sppsvc /y %nul%
|
||||
cscript //nologo %windir%\system32\slmgr.vbs /rilc %nul%
|
||||
if !errorlevel! NEQ 0 cscript //nologo %windir%\system32\slmgr.vbs /rilc %nul%
|
||||
call :dk_refresh
|
||||
call :dk_actids
|
||||
if not defined applist (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking Activation IDs [Not Found]"
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
set token=0
|
||||
if exist %Systemdrive%\Windows\System32\spp\store\2.0\tokens.dat set token=1
|
||||
if exist %Systemdrive%\Windows\System32\spp\store_test\2.0\tokens.dat set token=1
|
||||
if %token%==0 (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking SPP tokens.dat [Not Found]"
|
||||
)
|
||||
|
||||
if not exist %SystemRoot%\system32\sppsvc.exe (
|
||||
set error=1
|
||||
call :dk_color %Red% "Checking sppsvc.exe File [Not Found]"
|
||||
)
|
||||
|
||||
if /i %error_code% EQU 0xc0000022 (
|
||||
echo "%serv_e%" | find /i "sppsvc" %nul% && (
|
||||
call :dk_color %Magenta% "Looks like you may have used a Gaming spoofer. Check Activation Troubleshoot option in MAS."
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:dk_color
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[0m
|
||||
) else (
|
||||
%psc% write-host -back '%1' -fore '%2' '%3'
|
||||
)
|
||||
exit /b
|
||||
|
||||
:dk_color2
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[%~3%~4%esc%[0m
|
||||
) else (
|
||||
%psc% write-host -back '%1' -fore '%2' '%3' -NoNewline; write-host -back '%4' -fore '%5' '%6'
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:dk_done
|
||||
|
||||
echo:
|
||||
if %_unattended%==1 timeout /t 2 & exit /b
|
||||
call :dk_color %_Yellow% "Press any key to %_exitmsg%..."
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: 1st column = Activation ID
|
||||
:: 2nd column = Generic Retail/OEM/MAK Key
|
||||
:: 3rd column = SKU ID
|
||||
:: 4th column = Key part number
|
||||
:: 5th column = Ticket signature value. It's as it is, it's not encoded. (Check https://massgrave.dev/hwid.html#Manual_Activation to see how it's generated)
|
||||
:: 6th column = 1 = activation is not working (at the time of writing this), 0 = activation is working
|
||||
:: 7th column = Key Type
|
||||
:: 8th column = WMI Edition ID
|
||||
:: 9th column = Version name incase same Edition ID is used in different OS versions with different key
|
||||
:: Separator = _
|
||||
|
||||
|
||||
:hwiddata
|
||||
|
||||
for %%# in (
|
||||
8b351c9c-f398-4515-9900-09df49427262_XGVPP-NMH47-7TTHJ-W3FW7-8HV2C___4_X19-99683_X9J5T0gPQprYpz2euPvoJGlkurIO9h6N8ypE0KWYVpy0nbCKYnqSUCD7u8ReXAmc085jX2uM5PKurSee9Yq/PxesgiysQHDBsOhr98MXZZiIgy4ssnz2gZF70KB8tO3X7kk9LHwxXfz3rlquYPod9swe90nqvVaJMWCpQK0InUw_0_OEM:NONSLP_Enterprise
|
||||
c83cef07-6b72-4bbc-a28f-a00386872839_3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT__27_X19-98746_WFZBjlVtHQumoaVE28/NHsRvv1lgkkfav6NPHqr6OC2u4vxkjjJkkl9OTF6DpHJu0IFrrQv+HYcdZ/WC5EzhOMqMxcujTBSAN7xLIVEbs72Db0Bi5iDAbOltJpk8QKKe18otQJ6vajW5WOPXjbgSJfDFaZQfiwvIJ1ICXt+stog_0_Volume:MAK_EnterpriseN
|
||||
4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c_VK7JG-NPHTM-C97JM-9MPGT-3V66T__48_X19-98841_K3qev/5gQpX1RK1F9M9beEWWv/di1GsRF7OUcEMGTGDTYnaRenRcJaO8zOHQQvKDc57fon/v77ZpHQHT/jWWhWnLm7Ssory+s8tOs72fPjivVBDwpSPIEC1v+8Vpb4a3XCZet2e/Z5wmpCq9XDkowys3IcxYM0mHWBaNPu8gIe4_0_____Retail_Professional
|
||||
9fbaf5d6-4d83-4422-870d-fdda6e5858aa_2B87N-8KFHP-DKV6R-Y2C8J-PKCKT__49_X19-98859_WcAcor6kQgxgkTRzcoxnb8UIoo5/ueYeaOKqy9/xAzlruHAKxhatXeGtSI58lXcCK5hxXkDmcyrRFwWSwdvg0txwTi7VusYcTNCLdmNWU/62iDrBhzMrCYtuhW9EV/g4+TlbjSm4PBJ0HMlI4YzAEnyJiBgKPDgBQ8Gj9LRbEgU_0_____Retail_ProfessionalN
|
||||
f742e4ff-909d-4fe9-aacb-3231d24a0c58_4CPRK-NM3K3-X6XXQ-RXX86-WXCHW__98_X19-98877_MBDSEqlayxtVVEgIeAl8milgjS/BVHow6+MmpCyh9nweuctlT1+LbEHmDlnqDeLr9FQrN2FpEJtNr26rE0niMdvcAP51MfJsREyhWOEbrWwWyMH0KwDAci2WxWZTJp/SEZnq5HYYT1pPPLMWAkKRHJksJJFtg4zBtoyHvLjc35c_0_____Retail_CoreN
|
||||
1d1bac85-7365-4fea-949a-96978ec91ae0_N2434-X9D7W-8PF6X-8DV9T-8TYMD__99_X19-99652_mpjCoh6soA/rwJutsjekZpA9vDUD8znR20V/c8FwSjuCcSbPhmP6bpJR9rfptAZqpagliMxA/OUZsx0Knt0n/hgOy2mv8pr24gI9uYXK8EfhG74bVdsyvZz1tyA6CaVR02ZahQvbKYzCmXUvsI+Wge3bHbKbVpn9Mvl+itn2a4g_0_____Retail_CoreCountrySpecific
|
||||
3ae2cc14-ab2d-41f4-972f-5e20142771dc_BT79Q-G7N6G-PGBYW-4YWX6-6F4BT_100_X19-99661_KaUs6KwvtthPOsxd3x0tU/baKSv1DWSFOqbq7PbU/uYEY95p0Skzv3y4aXq+xVmfwSt8STL/4vSfFIAlsaRh7Vnq6Y/Ael8joeqI8hBN461fykoHxSELRMJ+eed50T0cJUS79ol6OTBOCCVeHgmtGVbHuL88TMWW69fGNdIMM3U_0_____Retail_CoreSingleLanguage
|
||||
2b1f36bb-c1cd-4306-bf5c-a0367c2d97d8_YTMG3-N6DKC-DKB77-7M9GH-8HVX7_101_X19-98868_NpHxrAtA+GL6kawAP5Z2UdfUVcKFvf9UzEe6FIV/HztZqxpMBDFv2hdxCjD9+T8PKcW8j3n04McelOAgr3lD37Fu+wrvJIGX0dG3xEtU/MG9L9X5baBS8H6AmC6rq2+w5NUY8EchK9W2oatBflFb8IcfCSeAyOfsJei6bdu4mp8_0_____Retail_Core
|
||||
2a6137f3-75c0-4f26-8e3e-d83d802865a4_XKCNC-J26Q9-KFHD2-FKTHY-KD72Y_119_X19-99606_gtywgqIP3j+bliKdunuseeZWtsOzWhj+DmSBq7nqeNarHutgbWEwvcRiGo+nwxONt9Ak/VyuO76ZWH/db3iRVTk1y61vFv15gVlOy1ovLjVHBvmPVdQXIne2N+pIMb0eBhZWHRX63mYdkZRZ0wg/+bj4xsjJv+qLpWhVCzNMge4_0_OEM:NONSLP_PPIPro
|
||||
e558417a-5123-4f6f-91e7-385c1c7ca9d4_YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY_121_X19-98886_VuBmoSUdF63Cvwm9wNlc2yhD2tP9B72iVVWFNcbAwDGXF6o06oNMsIJ0VqGJDdBzZjVGw2wHokMabxZNDyIl90CO7trwgV8S0lLJVLymxyUaE3ThvN3YUsi9Q3H+5Kr0RpsojCWb+UQd/GY4bSXfyStXFylj6im7yv0db/ZWGbw_0_____Retail_Education
|
||||
c5198a66-e435-4432-89cf-ec777c9d0352_84NGF-MHBT6-FXBX8-QWJK7-DRR8H_122_X19-98892_jQ6S2bbNoVrp/zvi8BEUwCf7fge1nAdspcjXyTeTySUiR+hXPiKQEWgyLqAdZ5Or+X2JGT/LZN1/eZ9P+REmzG/WQotZ+fyyPguoSsES+d312RkfmQoI5gVanEkGjZSU4YohREM/Vyf9MOO7dbH9MMEpFm2mje6OnhyJo2gux0g_0_____Retail_EducationN
|
||||
cce9d2de-98ee-4ce2-8113-222620c64a27_KCNVH-YKWX8-GJJB9-H9FDT-6F7W2_125_X22-66075_wJ/BPDFz+13PVJtBqBo+E4LCm3LoMVALCQUun9kXGBULr7V8FQ5nKUudUGHDLNNVIIicdw9Uh26BKAt0/hnE7BpBkzwdi4qAdZgKXQ1t06Ek4+zXmoT225NvpaHsuhDkE687TtCB1ZWvAulA8G9ehE3HTJSoNm4wCFOQyIQQtqQ_1_Volume:MAK_EnterpriseS_VB
|
||||
d06934ee-5448-4fd1-964a-cd077618aa06_43TBQ-NH92J-XKTM7-KT3KK-P39PB_125_X21-83233_V+y0SFmAnGwRwgNz+0sO0mj+XxSjbdRDpom1Iqx2BJcsf96Q5ittJOcMhKiNswyKuq5suM5vy60tA/AUdb1mrnnrnXfmz7nFam/BIOOfa18GA7vd1aNFufhpmCiMWxoGSewH/T1pnCZrsvGYIj//qC7aiQVKYBngO7UYWGaytgc_0_OEM:NONSLP_EnterpriseS_RS5
|
||||
706e0cfd-23f4-43bb-a9af-1a492b9f1302_NK96Y-D9CD8-W44CQ-R8YTK-DYJWX_125_X21-05035_U2DIv+LAhSGz0rNbTiMQYaP3M41+0+ZioF7vh0COeeJSIruDFCZ3Li7ZM3dSleg6QTCxG04uZ3i3r1bCZv0+WAfU9rG+3BqLAwKlJS/31rETeRWvrxB1UK4mTMHwAJc9txDAc15ureqF+2b9pIIpwLljmFer6fI7z0iI6I/ZuTU_0_OEM:NONSLP_EnterpriseS_RS1
|
||||
faa57748-75c8-40a2-b851-71ce92aa8b45_FWN7H-PF93Q-4GGP8-M8RF3-MDWWW_125_X19-99617_0frpwr4N/wBVRA/nOvAMqkxmRj6Vv9mA+jVNtnurAL1TjkPN/y+6YVUd5MP/Y4As4kddHoHiZXI+2siKHJsaV95ppXoHKR8d7FRVitr1F+82TbB7OVvdCclGrRZymnq25HvtSC3BROHt7ZXTgSCWMyB7MlbLiqHiTymOj5OMX1g_0_OEM:NONSLP_EnterpriseS_TH
|
||||
2c060131-0e43-4e01-adc1-cf5ad1100da8_RQFNW-9TPM3-JQ73T-QV4VQ-DV9PT_126_X22-66108_UeA6O2iIW6zFMJzLMCQjVA7gUHOGRTiFB6LPrgjhgfJEXSZnDjxw8wsR+tp+JQWeaQDsVt06c2byH3z7Ft2wNk8n3gcXUknIjlcCckNjw05WDI64/wCqz+gtf1RajMEoV/mODpBx7rdLtCg03FyV7Z9LOib4/WLSmnxjDPKMG7s_1_Volume:MAK_EnterpriseSN_VB
|
||||
e8f74caa-03fb-4839-8bcc-2e442b317e53_M33WV-NHY3C-R7FPM-BQGPT-239PG_126_X21-83264_NtP6sMWmOTCdABAbgIZfxZzRs8zaqzfaabLeFXQJvfJvQPLQPk2UxMliASJG+7YwwbTD8pyhUoQqUYrlCzJZ6jDSDyUTJkXgo9akR4fBOg6Z5wn5fW8NGAMDcLND5d9XxHl0gWH/HZNIs/GZaPJsCVVqPr7X8bk/y0DeIofxICU_1_Volume:MAK_EnterpriseSN_RS5
|
||||
3d1022d8-969f-4222-b54b-327f5a5af4c9_2DBW3-N2PJG-MVHW3-G7TDK-9HKR4_126_X21-04921_WeNSkuiC3iyNT9tDqlj6KvM17UYMsYjEelyyMEyPEXSAbYA08lYtYJjCzxSE9T30p9dxqPIuj370OwHhAxG8a51/HoLNWR0grj08HmdOXUA8Ap4clEivxKM0zRvwPR6L2M2HQP0nN54c9It7ikzweJ0X2HHOb58oEw9LbMeUM/Y_0_Volume:MAK_EnterpriseSN_RS1
|
||||
60c243e1-f90b-4a1b-ba89-387294948fb6_NTX6B-BRYC2-K6786-F6MVQ-M7V2X_126_X19-98770_QLG40WW/TtUqtir9K6FJCQXU1mfn27uutdOunHJ3gXk6v0Mbxaqu9GKqpg5xFzdFiOPb/8Bmk/ylwceXgoaUx1nKcBGb/Bg+jICiNMEYIbGyMuYiHb0iJeVbjbBLLfWuAAuUPftfnKPH3dAu1YvhaS5nv7a5wICrXdJWeVNpBxk_0_Volume:MAK_EnterpriseSN_TH
|
||||
eb6d346f-1c60-4643-b960-40ec31596c45_DXG7C-N36C4-C4HTG-X4T3X-2YV77_161_X21-43626_vHO/5UEtrsDzGC30A2Ya5DYXlNMs7hVYiLvM7X31xkaFMxogbiy3ZDxBbjRku3VXyW+TYsFX/D/wdJgFmMrhsNrObkxqzYMMRjx+BpwOx2PspKpS2RyzovyRl8v93SvHB5IyoO2/3pm2YqJDK1hXLhms6+DDPuiofQt36q47reQ_0_____Retail_ProfessionalWorkstation
|
||||
89e87510-ba92-45f6-8329-3afa905e3e83_WYPNQ-8C467-V2W6J-TX4WX-WT2RQ_162_X21-43644_phlxNLr+sk8cCCmAVU3k3XrtD6sFDeoaODc+21soKqePbVQbzPHgokS73ccok6/gDfu/u5UKc7omL8pm2IhIhf70oC+8M/FFp0zRFeC/ZFXdF2tL23oKWI9kZbvcaoZBiqaDGc1bNYi5KAZYaJU8wwqw16ZnohQJZ7QR9cgUfFQ_0_____Retail_ProfessionalWorkstationN
|
||||
62f0c100-9c53-4e02-b886-a3528ddfe7f6_8PTT6-RNW4C-6V7J2-C2D3X-MHBPB_164_X21-04955_Px7QWdfy0esrMzQoydKlmIcGdfV0pQvbnumyrh4evDNF9gpENm8OIfZfljIynury0qZAkw4AG3uGyp+5IxZGIh6U3dz41uNVfEcA9NZ34OEBXMtjEOU1ZbJ8wp8JecQKwlORclvsri9OOi0GbGc0TYRanlci2jJL/3x/gSuWXCs_0_____Retail_ProfessionalEducation
|
||||
13a38698-4a49-4b9e-8e83-98fe51110953_GJTYN-HDMQY-FRR76-HVGC7-QPF8P_165_X21-04956_GRSYno4+yqU/JMxHLDKdvdFWRz1uT90n5JkTvSqztDvXMf/mBhSV/OpppJWGo6UL0FwqYcu9oXl+Vx336pLAE5/EDzQHh+QCwOCDJiTKnd3hW/zrGMe6Sb0OAIkNNML9gcOBbr1IHFWhN99r8ZWl5JjpzMs2nPjejB1Ec8NCcpE_0_____Retail_ProfessionalEducationN
|
||||
df96023b-dcd9-4be2-afa0-c6c871159ebe_NJCF7-PW8QT-3324D-688JX-2YV66_175_X21-41295_kkJyX1AwYgDYcGK1eIRdocybkbAfEtQkDxhRUhY89X2i2PSD9jcsGQgHWyD3KUKWb3bzR8QkDS3MTeieOw3EzD0RyAQhHc6lRR+rk18lh5UOVCgrZ6byxn29Ur+jAh0LJXImggC9JMGb2cTYaZckxzm3ICoAKwrmI9JnrzBTVmY_0_____Retail_ServerRdsh
|
||||
d4ef7282-3d2c-4cf0-9976-8854e64a8d1e_V3WVW-N2PV2-CGWC3-34QGF-VMJ2C_178_X21-32983_YIMgXu2dZ9x1r1NLs3egTc/8EYc1RndYDvoX7QquQQLnhnhbSNBw3hmlqrQ0zNsTLut3EKpGZK2CwPspJJWE60lecdxI4211K748P6vkuqHPL4uFqXyKxTG3qRrtDIra5nnMn4GqG2fWuguzTXaumu8cJU3H1uTOsR1E/DQnJJ0_0_____Retail_Cloud
|
||||
af5c9381-9240-417d-8d35-eb40cd03e484_NH9J3-68WK7-6FB93-4K3DF-DJ4F6_179_X21-32987_H0qrFdf+FQxcSRJDtEwd8OfwC4iH/25Q01jz3QuB9yhEqB0W1i83u0WDpVK04pvU1EDCCRRI/DhXynbkWpLC0chdTOW4k5jIy+aa0cD3fccz9ChSjVHMzyTg3abEVFAvy9rttUyxcFIOKcINXHTxTRp5cZPwOa393tlJyBiliAo_0_____Retail_CloudN
|
||||
8ab9bdd1-1f67-4997-82d9-8878520837d9_XQQYW-NFFMW-XJPBH-K8732-CKFFD_188_X21-99378_Bwx3E7qmE6M8UR6+KPqLnnavI6ThNHHUO717RJY9di2YI9rzC3O0LceXOHjshSKwfwxosqFsD/p/inrJmabed1yA/ZWwISyGtAIGTtRgpuSE4TAfW6KEW0v7rcr2wwwDq7DHSuz4QN4odEGe9bvtx4zIZKufQzzN4TN2rd/BJkE_0_____OEM:DM_IoTEnterprise
|
||||
ed655016-a9e8-4434-95d9-4345352c2552_QPM6N-7J2WJ-P88HH-P3YRH-YY74H_191_X21-99682_lE8qL1p4m68mv9wcxU2sdKZPIccybtOjr+aMAdV+sLHs9wzE26oz5GiSZ3UzpU7yoYrNMqwGkKX6mrCEGRLh+XR2Ricp7ELA1PkzaGm0FLUqaK2GNVQ00i+s6KcA2XRr/gWOhhGTqSCjpSi9cMiqMbftf9Bo/BJVK3ib9xU4OQw_0_OEM:NONSLP_IoTEnterpriseS_VB
|
||||
d4bdc678-0a4b-4a32-a5b3-aaa24c3b0f24_K9VKN-3BGWV-Y624W-MCRMQ-BHDCD_202_X22-53884_hPcIn0dF9Dq6zlXd3RxBqVDPDnf5sTasTjUqhD6lGc9IkTc8476NHd1PV1Ds++VO34/dw2H2PWk33LT5Es6PnUi32Ypva4POy4QJo5W3qyduiJiHUOM5GS9yAkKfdHFgUXaUVwopYKq+EwmgxFmEvHYdWgREHgIMyNoKAZQK0Ok_0_____Retail_CloudEditionN
|
||||
92fb8726-92a8-4ffc-94ce-f82e07444653_KY7PN-VR6RX-83W6Y-6DDYQ-T6R4W_203_X22-53847_DCP6QzPj+BD1EEmlBelBt7x9AmvQOfd7kdkUB0b0x6/TNHRnZtdyix3pNX2IDQtJbLnNLc2ZlMmupbZQrtyxe3xl8+xlCnHByXZpzFty9sGzq3MozHHA9u9WsJEf5R7tnFDplNM1UitlTVTAyuCGk83brY4zjmz/52pUQyQHzjI_0_____Retail_CloudEdition
|
||||
d4f9b41f-205c-405e-8e08-3d16e88e02be_J7NJW-V6KBM-CC8RW-Y29Y4-HQ2MJ_205_X23-15027_U9eyfIBXrs++lyP6OjHHaF/wjieAxQeSKwzSkGBeTTpyCDcenq8t4cKvqDHnauSZzaVPWNoVcASkMCdlJi3EkR29KSgvx9/K2OB8LVH2PPpqvwjm1ZZdrvLMGhW83A/KRrtN9AOx7bnPC8MNLErnzbRRS9/aOrmp4Uzo8EIVagI_0_OEM:NONSLP_IoTEnterpriseSK
|
||||
) do (
|
||||
for /f "tokens=1-10 delims=_" %%A in ("%%#") do (
|
||||
|
||||
if %1==key if %osSKU%==%%C (
|
||||
|
||||
REM Detect key attempt 1
|
||||
|
||||
if "%2"=="attempt1" if not defined key (
|
||||
echo "!applist!" | find /i "%%A" 1>nul && (
|
||||
if %%F==1 set notworking=1
|
||||
set key=%%B
|
||||
)
|
||||
)
|
||||
|
||||
REM Detect key attempt 2
|
||||
|
||||
if "%2"=="attempt2" if not defined key (
|
||||
set actidnotfound=1
|
||||
set 9th=%%I
|
||||
if not defined 9th (
|
||||
if %%F==1 set notworking=1
|
||||
set key=%%B
|
||||
) else (
|
||||
echo "%branch%" | find /i "%%I" 1>nul && (
|
||||
if %%F==1 set notworking=1
|
||||
set key=%%B
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
REM Generate ticket
|
||||
|
||||
if %1==ticket if "%key%"=="%%B" (
|
||||
set _nil=
|
||||
set "string=OSMajorVersion=5;OSMinorVersion=1;OSPlatformId=2;PP=0;Pfn=Microsoft.Windows.%%C.%%D_8wekyb3d8bbwe;DownlevelGenuineState=1;$([char]0)"
|
||||
for /f "tokens=* delims=" %%i in ('powershell [convert]::ToBas!_nil!e64String([Text.Encoding]::Unicode.GetBytes("""!string!"""^)^)') do set "encoded=%%i"
|
||||
echo "!encoded!" | find "AAAA" 1>nul || exit /b
|
||||
|
||||
<nul set /p "=<?xml version="1.0" encoding="utf-8"?><genuineAuthorization xmlns="http://www.microsoft.com/DRM/SL/GenuineAuthorization/1.0"><version>1.0</version><genuineProperties origin="sppclient"><properties>OA3xOriginalProductId=;OA3xOriginalProductKey=;SessionId=!encoded!;TimeStampClient=2022-10-11T12:00:00Z</properties><signatures><signature name="clientLockboxKey" method="rsa-sha256">%%E=</signature></signatures></genuineProperties></genuineAuthorization>" >"%tdir%\GenuineTicket"
|
||||
)
|
||||
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Below code is used to get alternate edition name and key if current edition doesn't support HWID activation
|
||||
|
||||
:: ProfessionalCountrySpecific won't be converted because it's not a good idea to change CountrySpecific editions
|
||||
|
||||
:: 1st column = Current SKU ID
|
||||
:: 2nd column = Current Edition Name
|
||||
:: 3rd column = Current Edition Activation ID
|
||||
:: 4th column = Alternate Edition Activation ID
|
||||
:: 5th column = Alternate Edition HWID Key
|
||||
:: 6th column = Alternate Edition Name
|
||||
:: Separator = _
|
||||
|
||||
|
||||
:hwidfallback
|
||||
|
||||
set notfoundaltactID=
|
||||
if %_NoEditionChange%==1 exit /b
|
||||
|
||||
for %%# in (
|
||||
125_EnterpriseS-2021___________cce9d2de-98ee-4ce2-8113-222620c64a27_ed655016-a9e8-4434-95d9-4345352c2552_QPM6N-7J2WJ-P88HH-P3YRH-YY74H_IoTEnterpriseS-2021
|
||||
191_IoTEnterpriseS-Win11_______59eb965c-9150-42b7-a0ec-22151b9897c5_d4f9b41f-205c-405e-8e08-3d16e88e02be_J7NJW-V6KBM-CC8RW-Y29Y4-HQ2MJ_IoTEnterpriseSK-Win11
|
||||
138_ProfessionalSingleLanguage_a48938aa-62fa-4966-9d44-9f04da3f72f2_4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c_VK7JG-NPHTM-C97JM-9MPGT-3V66T_Professional
|
||||
) do (
|
||||
for /f "tokens=1-6 delims=_" %%A in ("%%#") do if %osSKU%==%%A (
|
||||
echo "!applist!" | find /i "%%C" 1>nul && (
|
||||
echo "!applist!" | find /i "%%D" 1>nul && (
|
||||
set altkey=%%E
|
||||
set curedition=%%B
|
||||
set altedition=%%F
|
||||
) || (
|
||||
set altedition=%%F
|
||||
set notfoundaltactID=1
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
File diff suppressed because it is too large
Load Diff
@ -1,367 +1,426 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' (MAS) project.
|
||||
::
|
||||
:: Homepage: windowsaddict.ml
|
||||
:: Email: windowsaddict@protonmail.com
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
|
||||
|
||||
:: For unattended mode, run the script with /u parameter.
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||
:: or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\Sysnative\cmd.exe (
|
||||
set "_cmdf=%~f0"
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" %*"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Re-launch the script with ARM32 process if it was initiated by x64 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\SysArm32\cmd.exe if %PROCESSOR_ARCHITECTURE%==AMD64 (
|
||||
set "_cmdf=%~f0"
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" %*"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Set Path variable, it helps if it is misconfigured in the system
|
||||
|
||||
set "SysPath=%SystemRoot%\System32"
|
||||
if exist "%SystemRoot%\Sysnative\reg.exe" (set "SysPath=%SystemRoot%\Sysnative")
|
||||
set "Path=%SysPath%;%SystemRoot%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Install Windows 10-11 Retail/MAK/OEM Key
|
||||
|
||||
set _args=
|
||||
set _elev=
|
||||
set _unattended=0
|
||||
|
||||
set _args=%*
|
||||
if defined _args set _args=%_args:"=%
|
||||
if defined _args (
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/u" set _unattended=1
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set winbuild=1
|
||||
set "nul=>nul 2>&1"
|
||||
set "_psc=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe"
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
set _NCS=1
|
||||
if %winbuild% LSS 10586 set _NCS=0
|
||||
if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 2>nul | find /i "0x0" 1>nul && (set _NCS=0)
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
for /F %%a in ('echo prompt $E ^| cmd') do set "esc=%%a"
|
||||
set "Red="41;97m""
|
||||
set "Green="42;97m""
|
||||
set "_Green="40;92m""
|
||||
set "_Yellow="40;93m""
|
||||
) else (
|
||||
set "Red="Red" "white""
|
||||
set "Green="DarkGreen" "white""
|
||||
set "_Green="Black" "Green""
|
||||
set "_Yellow="Black" "Yellow""
|
||||
)
|
||||
|
||||
set "nceline=echo: &echo ==== ERROR ==== &echo:"
|
||||
set "eline=echo: &call :dk_color %Red% "==== ERROR ====" &echo:"
|
||||
set slp=SoftwareLicensingProduct
|
||||
set sls=SoftwareLicensingService
|
||||
set wApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set "line=echo ___________________________________________________________________________________________"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 10240 (
|
||||
%eline%
|
||||
echo Unsupported OS version detected.
|
||||
echo Project is supported for Windows 10/11.
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
if %winbuild% GEQ 22483 if not exist %_psc% (
|
||||
%nceline%
|
||||
echo Powershell is not installed in the system.
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
set "_PSarg="""%~f0""" -el %_args%"
|
||||
|
||||
set "_ttemp=%temp%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" 1>nul && (
|
||||
%eline%
|
||||
echo Script is launched from the temp folder,
|
||||
echo Most likely you are running the script directly from the archive file.
|
||||
echo:
|
||||
echo Extract the archive file and launch the script from the extracted folder.
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
|
||||
%nul% reg query HKU\S-1-5-19 || (
|
||||
if not defined _elev %nul% %_psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%eline%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
mode 98, 30
|
||||
echo:
|
||||
echo Initializing...
|
||||
|
||||
:: Check WMI and sppsvc Errors
|
||||
|
||||
set applist=
|
||||
net start sppsvc /y %nul%
|
||||
if %winbuild% LSS 22483 set "chkapp=for /f "tokens=2 delims==" %%a in ('"wmic path %slp% where (ApplicationID='%wApp%') get ID /VALUE" 2^>nul')"
|
||||
if %winbuild% GEQ 22483 set "chkapp=for /f "tokens=2 delims==" %%a in ('%_psc% "(([WMISEARCHER]'SELECT ID FROM %slp% WHERE ApplicationID=''%wApp%''').Get()).ID ^| %% {echo ('ID='+$_)}" 2^>nul')"
|
||||
%chkapp% do (if defined applist (call set "applist=!applist! %%a") else (call set "applist=%%a"))
|
||||
|
||||
if not defined applist (
|
||||
%eline%
|
||||
echo Failed running WMI query check, verify that these services are working correctly
|
||||
echo Windows Management Instrumentation [WinMgmt], Software Protection [sppsvc]
|
||||
echo:
|
||||
echo Script will try to enable these services.
|
||||
echo:
|
||||
if %_unattended%==0 (
|
||||
call :dk_color %_Yellow% "Press any key to continue..."
|
||||
pause >nul
|
||||
)
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query HKLM\SYSTEM\CurrentControlSet\Services\WinMgmt /v Start 2^>nul') do if /i %%b equ 0x4 (sc config WinMgmt start= auto %nul%)
|
||||
net start WinMgmt /y %nul%
|
||||
net stop sppsvc /y %nul%
|
||||
net start sppsvc /y %nul%
|
||||
cls
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Refresh license status, it helps to get correct product name in Windows 17134 and later builds
|
||||
|
||||
call :dk_refresh
|
||||
|
||||
:: Check product name
|
||||
|
||||
set winos=
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do set "winos=%%b"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value
|
||||
|
||||
set osSKU=
|
||||
for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do set "osSKU=%%a"
|
||||
|
||||
if not defined osSKU (
|
||||
%eline%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Detect key
|
||||
|
||||
set key=
|
||||
set _chan=
|
||||
|
||||
if defined applist call :hwiddata attempt1
|
||||
if not defined key call :hwiddata attempt2
|
||||
|
||||
if not defined key (
|
||||
%eline%
|
||||
echo Unable to find Key for [%winos% ^| SKU:%osSKU% ^| %winbuild%]
|
||||
if %winbuild% GTR 19044 echo Make sure you are using updated version of the script
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %_unattended%==1 goto insertkey
|
||||
|
||||
cls
|
||||
%line%
|
||||
echo:
|
||||
echo Install [%winos% ^| SKU:%osSKU% ^| %winbuild%] %_chan% Key
|
||||
echo [%key%]
|
||||
%line%
|
||||
echo:
|
||||
call :dk_color %_Green% "Press [1] to Continue or [2] to Exit"
|
||||
choice /C:21 /N
|
||||
if %errorlevel%==1 exit /b
|
||||
cls
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:insertkey
|
||||
|
||||
cls
|
||||
%line%
|
||||
|
||||
if %winbuild% LSS 22483 wmic path %sls% where __CLASS='%sls%' call InstallProductKey ProductKey="%key%" %nul%
|
||||
if %winbuild% GEQ 22483 %_psc% "(([WMISEARCHER]'SELECT Version FROM %sls%').Get()).InstallProductKey('%key%')" %nul%
|
||||
if not %errorlevel%==0 cscript //nologo %windir%\system32\slmgr.vbs /ipk %key% %nul%
|
||||
|
||||
if %errorlevel%==0 (
|
||||
call :dk_refresh
|
||||
echo:
|
||||
echo [%winos% ^| SKU:%osSKU% ^| %winbuild%]
|
||||
echo Installing %_chan% Key [%key%]
|
||||
echo:
|
||||
call :dk_color %Green% "[Successful]"
|
||||
) else (
|
||||
%eline%
|
||||
echo [%winos% ^| SKU:%osSKU% ^| %winbuild%]
|
||||
echo Installing %_chan% Key [%key%]
|
||||
echo:
|
||||
call :dk_color %Red% "[Unsuccessful]%actidnotfound%"
|
||||
)
|
||||
%line%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ins_done
|
||||
|
||||
echo:
|
||||
if %_unattended%==1 timeout /t 2 & exit /b
|
||||
call :dk_color %_Yellow% "Press any key to exit..."
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Refresh license status
|
||||
|
||||
:dk_refresh
|
||||
|
||||
if %winbuild% LSS 22483 wmic path %sls% where __CLASS='%sls%' call RefreshLicenseStatus %nul%
|
||||
if %winbuild% GEQ 22483 %_psc% "$null=(([WMICLASS]'%sls%').GetInstances()).RefreshLicenseStatus()" %nul%
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:dk_color
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[0m
|
||||
) else (
|
||||
if not exist %_psc% (echo %~3) else (%_psc% write-host -back '%1' -fore '%2' '%3')
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: 1st column = Activation ID
|
||||
:: 2nd column = Generic Retail/OEM/MAK Key
|
||||
:: 3rd column = SKU ID
|
||||
:: 4th column = 1 = activation is not working (at the time of writing this), 0 = activation is working
|
||||
:: 5th column = Key Type
|
||||
:: 6th column = WMI Edition ID
|
||||
:: 7th column = Version name incase same Edition ID is used in different OS versions with different key
|
||||
:: Separator = _
|
||||
|
||||
:: Key preference is in the following order. Retail > OEM:NONSLP > OEM:DM > Volume:MAK
|
||||
|
||||
:hwiddata
|
||||
|
||||
for %%# in (
|
||||
8b351c9c-f398-4515-9900-09df49427262_XGVPP-NMH47-7TTHJ-W3FW7-8HV2C___4_0_OEM:NONSLP_Enterprise
|
||||
23505d51-32d6-41f0-8ca7-e78ad0f16e71_D6RD9-D4N8T-RT9QX-YW6YT-FCWWJ__11_1_____Retail_Starter
|
||||
c83cef07-6b72-4bbc-a28f-a00386872839_3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT__27_0_Volume:MAK_EnterpriseN
|
||||
211b80cc-7f64-482c-89e9-4ba21ff827ad_3NFXW-2T27M-2BDW6-4GHRV-68XRX__47_1_____Retail_StarterN
|
||||
4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c_VK7JG-NPHTM-C97JM-9MPGT-3V66T__48_0_____Retail_Professional
|
||||
9fbaf5d6-4d83-4422-870d-fdda6e5858aa_2B87N-8KFHP-DKV6R-Y2C8J-PKCKT__49_0_____Retail_ProfessionalN
|
||||
f742e4ff-909d-4fe9-aacb-3231d24a0c58_4CPRK-NM3K3-X6XXQ-RXX86-WXCHW__98_0_____Retail_CoreN
|
||||
1d1bac85-7365-4fea-949a-96978ec91ae0_N2434-X9D7W-8PF6X-8DV9T-8TYMD__99_0_____Retail_CoreCountrySpecific
|
||||
3ae2cc14-ab2d-41f4-972f-5e20142771dc_BT79Q-G7N6G-PGBYW-4YWX6-6F4BT_100_0_____Retail_CoreSingleLanguage
|
||||
2b1f36bb-c1cd-4306-bf5c-a0367c2d97d8_YTMG3-N6DKC-DKB77-7M9GH-8HVX7_101_0_____Retail_Core
|
||||
2a6137f3-75c0-4f26-8e3e-d83d802865a4_XKCNC-J26Q9-KFHD2-FKTHY-KD72Y_119_0_OEM:NONSLP_PPIPro
|
||||
e558417a-5123-4f6f-91e7-385c1c7ca9d4_YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY_121_0_____Retail_Education
|
||||
c5198a66-e435-4432-89cf-ec777c9d0352_84NGF-MHBT6-FXBX8-QWJK7-DRR8H_122_0_____Retail_EducationN
|
||||
cce9d2de-98ee-4ce2-8113-222620c64a27_KCNVH-YKWX8-GJJB9-H9FDT-6F7W2_125_1_Volume:MAK_EnterpriseS_2021
|
||||
d06934ee-5448-4fd1-964a-cd077618aa06_43TBQ-NH92J-XKTM7-KT3KK-P39PB_125_0_OEM:NONSLP_EnterpriseS_2019
|
||||
706e0cfd-23f4-43bb-a9af-1a492b9f1302_NK96Y-D9CD8-W44CQ-R8YTK-DYJWX_125_0_OEM:NONSLP_EnterpriseS_2016
|
||||
faa57748-75c8-40a2-b851-71ce92aa8b45_FWN7H-PF93Q-4GGP8-M8RF3-MDWWW_125_0_OEM:NONSLP_EnterpriseS_2015
|
||||
2c060131-0e43-4e01-adc1-cf5ad1100da8_RQFNW-9TPM3-JQ73T-QV4VQ-DV9PT_126_1_Volume:MAK_EnterpriseSN_2021
|
||||
e8f74caa-03fb-4839-8bcc-2e442b317e53_M33WV-NHY3C-R7FPM-BQGPT-239PG_126_1_Volume:MAK_EnterpriseSN_2019
|
||||
3d1022d8-969f-4222-b54b-327f5a5af4c9_2DBW3-N2PJG-MVHW3-G7TDK-9HKR4_126_0_Volume:MAK_EnterpriseSN_2016
|
||||
60c243e1-f90b-4a1b-ba89-387294948fb6_NTX6B-BRYC2-K6786-F6MVQ-M7V2X_126_0_Volume:MAK_EnterpriseSN_2015
|
||||
a48938aa-62fa-4966-9d44-9f04da3f72f2_G3KNM-CHG6T-R36X3-9QDG6-8M8K9_138_1_____Retail_ProfessionalSingleLanguage
|
||||
f7af7d09-40e4-419c-a49b-eae366689ebd_HNGCC-Y38KG-QVK8D-WMWRK-X86VK_139_1_____Retail_ProfessionalCountrySpecific
|
||||
eb6d346f-1c60-4643-b960-40ec31596c45_DXG7C-N36C4-C4HTG-X4T3X-2YV77_161_0_____Retail_ProfessionalWorkstation
|
||||
89e87510-ba92-45f6-8329-3afa905e3e83_WYPNQ-8C467-V2W6J-TX4WX-WT2RQ_162_0_____Retail_ProfessionalWorkstationN
|
||||
62f0c100-9c53-4e02-b886-a3528ddfe7f6_8PTT6-RNW4C-6V7J2-C2D3X-MHBPB_164_0_____Retail_ProfessionalEducation
|
||||
13a38698-4a49-4b9e-8e83-98fe51110953_GJTYN-HDMQY-FRR76-HVGC7-QPF8P_165_0_____Retail_ProfessionalEducationN
|
||||
1ca0bfa8-d96b-4815-a732-7756f30c29e2_FV469-WGNG4-YQP66-2B2HY-KD8YX_171_1_OEM:NONSLP_EnterpriseG
|
||||
8d6f6ffe-0c30-40ec-9db2-aad7b23bb6e3_FW7NV-4T673-HF4VX-9X4MM-B4H4T_172_1_OEM:NONSLP_EnterpriseGN
|
||||
df96023b-dcd9-4be2-afa0-c6c871159ebe_NJCF7-PW8QT-3324D-688JX-2YV66_175_0_____Retail_ServerRdsh
|
||||
d4ef7282-3d2c-4cf0-9976-8854e64a8d1e_V3WVW-N2PV2-CGWC3-34QGF-VMJ2C_178_0_____Retail_Cloud
|
||||
af5c9381-9240-417d-8d35-eb40cd03e484_NH9J3-68WK7-6FB93-4K3DF-DJ4F6_179_0_____Retail_CloudN
|
||||
c7051f63-3a76-4992-bce5-731ec0b1e825_2HN6V-HGTM8-6C97C-RK67V-JQPFD_183_1_____Retail_CloudE
|
||||
8ab9bdd1-1f67-4997-82d9-8878520837d9_XQQYW-NFFMW-XJPBH-K8732-CKFFD_188_0_____OEM:DM_IoTEnterprise
|
||||
ed655016-a9e8-4434-95d9-4345352c2552_QPM6N-7J2WJ-P88HH-P3YRH-YY74H_191_0_OEM:NONSLP_IoTEnterpriseS
|
||||
d4bdc678-0a4b-4a32-a5b3-aaa24c3b0f24_K9VKN-3BGWV-Y624W-MCRMQ-BHDCD_202_0_____Retail_CloudEditionN
|
||||
92fb8726-92a8-4ffc-94ce-f82e07444653_KY7PN-VR6RX-83W6Y-6DDYQ-T6R4W_203_0_____Retail_CloudEdition
|
||||
) do (
|
||||
for /f "tokens=1-7 delims=_" %%A in ("%%#") do if %osSKU%==%%C (
|
||||
|
||||
if %1==attempt1 if not defined key echo "!applist!" | find /i "%%A" 1>nul && (set "key=%%B" & set "_chan=%%E" & if %%D==1 set notworking=1)
|
||||
|
||||
if %1==attempt2 if not defined key (
|
||||
set "actidnotfound= [Mismatched Act-ID]"
|
||||
set 7th=%%G
|
||||
if not defined 7th (
|
||||
set "key=%%B" & set "_chan=%%E" & if %%D==1 set notworking=1
|
||||
) else (
|
||||
echo "%winos%" | find "%%G" 1>nul && (set "key=%%B" & set "_chan=%%E" & if %%D==1 set notworking=1)
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' (MAS) project.
|
||||
::
|
||||
:: Homepage: massgrave.dev
|
||||
:: Email: windowsaddict@protonmail.com
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
|
||||
|
||||
:: For unattended mode, run the script with "/Insert-HWID-Key" parameter
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||
:: or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows
|
||||
|
||||
set "_cmdf=%~f0"
|
||||
for %%# in (%*) do (
|
||||
if /i "%%#"=="r1" set r1=1
|
||||
if /i "%%#"=="r2" set r2=1
|
||||
)
|
||||
|
||||
if exist %SystemRoot%\Sysnative\cmd.exe if not defined r1 (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" %* r1"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Re-launch the script with ARM32 process if it was initiated by x64 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\SysArm32\cmd.exe if %PROCESSOR_ARCHITECTURE%==AMD64 if not defined r2 (
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" %* r2"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Set Path variable, it helps if it is misconfigured in the system
|
||||
|
||||
set "PATH=%SystemRoot%\System32;%SystemRoot%\System32\wbem;%SystemRoot%\System32\WindowsPowerShell\v1.0\"
|
||||
if exist "%SystemRoot%\Sysnative\reg.exe" (
|
||||
set "PATH=%SystemRoot%\Sysnative;%SystemRoot%\Sysnative\wbem;%SystemRoot%\Sysnative\WindowsPowerShell\v1.0\;%PATH%"
|
||||
)
|
||||
|
||||
:: Check LF line ending
|
||||
|
||||
pushd "%~dp0"
|
||||
>nul findstr /rxc:".*" "%~nx0"
|
||||
if not %errorlevel%==0 (
|
||||
echo:
|
||||
echo Error: This is not a correct file. It has LF line ending issue.
|
||||
echo:
|
||||
ping 127.0.0.1 -n 6 > nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
color 07
|
||||
title Install Windows HWID Key
|
||||
|
||||
set _args=
|
||||
set _elev=
|
||||
set _unattended=0
|
||||
|
||||
set _args=%*
|
||||
if defined _args set _args=%_args:"=%
|
||||
if defined _args (
|
||||
for %%A in (%_args%) do (
|
||||
if /i "%%A"=="-el" set _elev=1
|
||||
if /i "%%A"=="/Insert-HWID-Key" set _unattended=1
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set winbuild=1
|
||||
set "nul=>nul 2>&1"
|
||||
set psc=powershell.exe
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
set _NCS=1
|
||||
if %winbuild% LSS 10586 set _NCS=0
|
||||
if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 2>nul | find /i "0x0" 1>nul && (set _NCS=0)
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
for /F %%a in ('echo prompt $E ^| cmd') do set "esc=%%a"
|
||||
set "Red="41;97m""
|
||||
set "Green="42;97m""
|
||||
set "_Green="40;92m""
|
||||
set "_Yellow="40;93m""
|
||||
) else (
|
||||
set "Red="Red" "white""
|
||||
set "Green="DarkGreen" "white""
|
||||
set "_Green="Black" "Green""
|
||||
set "_Yellow="Black" "Yellow""
|
||||
)
|
||||
|
||||
set "nceline=echo: &echo ==== ERROR ==== &echo:"
|
||||
set "eline=echo: &call :dk_color %Red% "==== ERROR ====" &echo:"
|
||||
set "line=echo ___________________________________________________________________________________________"
|
||||
if %~z0 GEQ 200000 (set "_exitmsg=Go back") else (set "_exitmsg=Exit")
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 10240 (
|
||||
%eline%
|
||||
echo Unsupported OS version detected.
|
||||
echo Project is supported for Windows 10/11.
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
if exist "%SystemRoot%\Servicing\Packages\Microsoft-Windows-Server*Edition~*.mum" (
|
||||
%eline%
|
||||
echo HWID Activation is not supported for Windows Server.
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
for %%# in (powershell.exe) do @if "%%~$PATH:#"=="" (
|
||||
%nceline%
|
||||
echo Unable to find powershell.exe in the system.
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
set _PSarg="""%~f0""" -el %_args%
|
||||
|
||||
set "_ttemp=%temp%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
echo "!_batf!" | find /i "!_ttemp!" 1>nul && (
|
||||
if /i not "!_work!"=="!_ttemp!" (
|
||||
%eline%
|
||||
echo Script is launched from the temp folder,
|
||||
echo Most likely you are running the script directly from the archive file.
|
||||
echo:
|
||||
echo Extract the archive file and launch the script from the extracted folder.
|
||||
goto ins_done
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Elevate script as admin and pass arguments and preventing loop
|
||||
|
||||
>nul fltmc || (
|
||||
if not defined _elev %nul% %psc% "start cmd.exe -arg '/c \"!_PSarg:'=''!\"' -verb runas" && exit /b
|
||||
%eline%
|
||||
echo This script require administrator privileges.
|
||||
echo To do so, right click on this script and select 'Run as administrator'.
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
mode 98, 30
|
||||
echo:
|
||||
echo Initializing...
|
||||
call :dk_product
|
||||
call :dk_ckeckwmic
|
||||
call :dk_actids
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Check SKU value / Check in multiple places to find Edition change corruption
|
||||
|
||||
set osSKU=
|
||||
set regSKU=
|
||||
set wmiSKU=
|
||||
|
||||
for /f "tokens=3 delims=." %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\ProductOptions" /v OSProductPfn 2^>nul') do set "regSKU=%%a"
|
||||
if %_wmic% EQU 1 for /f "tokens=2 delims==" %%a in ('"wmic Path Win32_OperatingSystem Get OperatingSystemSKU /format:LIST" 2^>nul') do if not errorlevel 1 set "wmiSKU=%%a"
|
||||
if %_wmic% EQU 0 for /f "tokens=1" %%a in ('%psc% "([WMI]'Win32_OperatingSystem=@').OperatingSystemSKU" 2^>nul') do if not errorlevel 1 set "wmiSKU=%%a"
|
||||
|
||||
set osSKU=%wmiSKU%
|
||||
if not defined osSKU set osSKU=%regSKU%
|
||||
|
||||
if not defined osSKU (
|
||||
%eline%
|
||||
echo SKU value was not detected properly. Aborting...
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Detect key
|
||||
|
||||
set key=
|
||||
set channel=
|
||||
set actidnotfound=
|
||||
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v BuildBranch 2^>nul') do set "branch=%%b"
|
||||
|
||||
if defined applist call :hwidkey key attempt1
|
||||
if not defined key call :hwidkey key attempt2
|
||||
|
||||
if not defined key (
|
||||
%eline%
|
||||
echo [%winos% ^| %winbuild% ^| SKU:%osSKU%]
|
||||
echo Unable to find this product in the HWID supported product list.
|
||||
echo Make sure you are using updated version of the script.
|
||||
echo https://massgrave.dev
|
||||
goto ins_done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %_unattended%==1 goto insertkey
|
||||
|
||||
cls
|
||||
%line%
|
||||
echo:
|
||||
echo Install [%winos% ^| SKU:%osSKU% ^| %winbuild%] %channel% Key
|
||||
echo [%key%]
|
||||
%line%
|
||||
echo:
|
||||
if not "%regSKU%"=="%wmiSKU%" (
|
||||
echo Note: Difference Found In SKU Value- WMI:%wmiSKU% Reg:%regSKU%
|
||||
echo Restart the system to resolve it
|
||||
echo:
|
||||
)
|
||||
call :dk_color %_Green% "Press [1] to Continue or [0] to %_exitmsg%"
|
||||
choice /C:01 /N
|
||||
if %errorlevel%==1 exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:insertkey
|
||||
|
||||
cls
|
||||
%line%
|
||||
|
||||
if %_wmic% EQU 1 wmic path SoftwareLicensingService where __CLASS='SoftwareLicensingService' call InstallProductKey ProductKey="%key%" %nul%
|
||||
if %_wmic% EQU 0 %psc% "(([WMISEARCHER]'SELECT Version FROM SoftwareLicensingService').Get()).InstallProductKey('%key%')" %nul%
|
||||
if not %errorlevel%==0 cscript //nologo %windir%\system32\slmgr.vbs /ipk %key% %nul%
|
||||
|
||||
set error_code=%errorlevel%
|
||||
cmd /c exit /b %error_code%
|
||||
if %error_code% NEQ 0 set "error_code=[0x%=ExitCode%]"
|
||||
|
||||
echo:
|
||||
echo [%winos% ^| SKU:%osSKU% ^| %winbuild%]
|
||||
echo Installing %channel% [%key%]
|
||||
echo:
|
||||
|
||||
if %error_code% EQU 0 (
|
||||
call :dk_refresh
|
||||
call :dk_color %Green% "[Successful]"
|
||||
) else (
|
||||
call :dk_color %Red% "[Unsuccessful] %error_code%"
|
||||
if defined actidnotfound call :dk_color %Red% "Activation ID not found for this key."
|
||||
)
|
||||
%line%
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:ins_done
|
||||
|
||||
echo:
|
||||
if %_unattended%==1 timeout /t 2 & exit /b
|
||||
call :dk_color %_Yellow% "Press any key to %_exitmsg%..."
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Refresh license status
|
||||
|
||||
:dk_refresh
|
||||
|
||||
if %_wmic% EQU 1 wmic path SoftwareLicensingService where __CLASS='SoftwareLicensingService' call RefreshLicenseStatus %nul%
|
||||
if %_wmic% EQU 0 %psc% "$null=(([WMICLASS]'SoftwareLicensingService').GetInstances()).RefreshLicenseStatus()" %nul%
|
||||
exit /b
|
||||
|
||||
:: Get Windows Activation IDs
|
||||
|
||||
:dk_actids
|
||||
|
||||
set applist=
|
||||
if %_wmic% EQU 1 set "chkapp=for /f "tokens=2 delims==" %%a in ('"wmic path SoftwareLicensingProduct where (ApplicationID='55c92734-d682-4d71-983e-d6ec3f16059f') get ID /VALUE" 2^>nul')"
|
||||
if %_wmic% EQU 0 set "chkapp=for /f "tokens=2 delims==" %%a in ('%psc% "(([WMISEARCHER]'SELECT ID FROM SoftwareLicensingProduct WHERE ApplicationID=''55c92734-d682-4d71-983e-d6ec3f16059f''').Get()).ID ^| %% {echo ('ID='+$_)}" 2^>nul')"
|
||||
%chkapp% do (if defined applist (call set "applist=!applist! %%a") else (call set "applist=%%a"))
|
||||
exit /b
|
||||
|
||||
:: Get Product name (WMI/REG methods are not reliable in all conditions, hence winbrand.dll method is used)
|
||||
|
||||
:dk_product
|
||||
|
||||
set winos=
|
||||
set d1=[DllImport(\"winbrand\",CharSet=CharSet.Unicode)]public static extern string BrandingFormatString(string s);
|
||||
set d2=$AP=Add-Type -Member '%d1%' -Name D1 -PassThru; $AP::BrandingFormatString('%%WINDOWS_LONG%%')
|
||||
for /f "delims=" %%s in ('"%psc% %d2%"') do if not errorlevel 1 (set winos=%%s)
|
||||
echo "%winos%" | find /i "Windows" 1>nul || (
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductName 2^>nul') do set "winos=%%b"
|
||||
if %winbuild% GEQ 22000 (
|
||||
set winos=!winos:Windows 10=Windows 11!
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
:: Check wmic.exe
|
||||
|
||||
:dk_ckeckwmic
|
||||
|
||||
set _wmic=0
|
||||
for %%# in (wmic.exe) do @if not "%%~$PATH:#"=="" (
|
||||
wmic path Win32_ComputerSystem get CreationClassName /value 2>nul | find /i "computersystem" 1>nul && set _wmic=1
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:dk_color
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[0m
|
||||
) else (
|
||||
%psc% write-host -back '%1' -fore '%2' '%3'
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: 1st column = Activation ID
|
||||
:: 2nd column = Generic Retail/OEM/MAK Key
|
||||
:: 3rd column = SKU ID
|
||||
:: 4th column = Key Type
|
||||
:: 5th column = WMI Edition ID
|
||||
:: 6th column = Version name incase same Edition ID is used in different OS versions with different key
|
||||
:: Separator = _
|
||||
|
||||
|
||||
:hwidkey
|
||||
|
||||
for %%# in (
|
||||
8b351c9c-f398-4515-9900-09df49427262_XGVPP-NMH47-7TTHJ-W3FW7-8HV2C___4_OEM:NONSLP_Enterprise
|
||||
c83cef07-6b72-4bbc-a28f-a00386872839_3V6Q6-NQXCX-V8YXR-9QCYV-QPFCT__27_Volume:MAK_EnterpriseN
|
||||
4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c_VK7JG-NPHTM-C97JM-9MPGT-3V66T__48_____Retail_Professional
|
||||
9fbaf5d6-4d83-4422-870d-fdda6e5858aa_2B87N-8KFHP-DKV6R-Y2C8J-PKCKT__49_____Retail_ProfessionalN
|
||||
f742e4ff-909d-4fe9-aacb-3231d24a0c58_4CPRK-NM3K3-X6XXQ-RXX86-WXCHW__98_____Retail_CoreN
|
||||
1d1bac85-7365-4fea-949a-96978ec91ae0_N2434-X9D7W-8PF6X-8DV9T-8TYMD__99_____Retail_CoreCountrySpecific
|
||||
3ae2cc14-ab2d-41f4-972f-5e20142771dc_BT79Q-G7N6G-PGBYW-4YWX6-6F4BT_100_____Retail_CoreSingleLanguage
|
||||
2b1f36bb-c1cd-4306-bf5c-a0367c2d97d8_YTMG3-N6DKC-DKB77-7M9GH-8HVX7_101_____Retail_Core
|
||||
2a6137f3-75c0-4f26-8e3e-d83d802865a4_XKCNC-J26Q9-KFHD2-FKTHY-KD72Y_119_OEM:NONSLP_PPIPro
|
||||
e558417a-5123-4f6f-91e7-385c1c7ca9d4_YNMGQ-8RYV3-4PGQ3-C8XTP-7CFBY_121_____Retail_Education
|
||||
c5198a66-e435-4432-89cf-ec777c9d0352_84NGF-MHBT6-FXBX8-QWJK7-DRR8H_122_____Retail_EducationN
|
||||
cce9d2de-98ee-4ce2-8113-222620c64a27_KCNVH-YKWX8-GJJB9-H9FDT-6F7W2_125_Volume:MAK_EnterpriseS_VB
|
||||
d06934ee-5448-4fd1-964a-cd077618aa06_43TBQ-NH92J-XKTM7-KT3KK-P39PB_125_OEM:NONSLP_EnterpriseS_RS5
|
||||
706e0cfd-23f4-43bb-a9af-1a492b9f1302_NK96Y-D9CD8-W44CQ-R8YTK-DYJWX_125_OEM:NONSLP_EnterpriseS_RS1
|
||||
faa57748-75c8-40a2-b851-71ce92aa8b45_FWN7H-PF93Q-4GGP8-M8RF3-MDWWW_125_OEM:NONSLP_EnterpriseS_TH
|
||||
2c060131-0e43-4e01-adc1-cf5ad1100da8_RQFNW-9TPM3-JQ73T-QV4VQ-DV9PT_126_Volume:MAK_EnterpriseSN_VB
|
||||
e8f74caa-03fb-4839-8bcc-2e442b317e53_M33WV-NHY3C-R7FPM-BQGPT-239PG_126_Volume:MAK_EnterpriseSN_RS5
|
||||
3d1022d8-969f-4222-b54b-327f5a5af4c9_2DBW3-N2PJG-MVHW3-G7TDK-9HKR4_126_Volume:MAK_EnterpriseSN_RS1
|
||||
60c243e1-f90b-4a1b-ba89-387294948fb6_NTX6B-BRYC2-K6786-F6MVQ-M7V2X_126_Volume:MAK_EnterpriseSN_TH
|
||||
eb6d346f-1c60-4643-b960-40ec31596c45_DXG7C-N36C4-C4HTG-X4T3X-2YV77_161_____Retail_ProfessionalWorkstation
|
||||
89e87510-ba92-45f6-8329-3afa905e3e83_WYPNQ-8C467-V2W6J-TX4WX-WT2RQ_162_____Retail_ProfessionalWorkstationN
|
||||
62f0c100-9c53-4e02-b886-a3528ddfe7f6_8PTT6-RNW4C-6V7J2-C2D3X-MHBPB_164_____Retail_ProfessionalEducation
|
||||
13a38698-4a49-4b9e-8e83-98fe51110953_GJTYN-HDMQY-FRR76-HVGC7-QPF8P_165_____Retail_ProfessionalEducationN
|
||||
df96023b-dcd9-4be2-afa0-c6c871159ebe_NJCF7-PW8QT-3324D-688JX-2YV66_175_____Retail_ServerRdsh
|
||||
d4ef7282-3d2c-4cf0-9976-8854e64a8d1e_V3WVW-N2PV2-CGWC3-34QGF-VMJ2C_178_____Retail_Cloud
|
||||
af5c9381-9240-417d-8d35-eb40cd03e484_NH9J3-68WK7-6FB93-4K3DF-DJ4F6_179_____Retail_CloudN
|
||||
8ab9bdd1-1f67-4997-82d9-8878520837d9_XQQYW-NFFMW-XJPBH-K8732-CKFFD_188_____OEM:DM_IoTEnterprise
|
||||
ed655016-a9e8-4434-95d9-4345352c2552_QPM6N-7J2WJ-P88HH-P3YRH-YY74H_191_OEM:NONSLP_IoTEnterpriseS_VB
|
||||
d4bdc678-0a4b-4a32-a5b3-aaa24c3b0f24_K9VKN-3BGWV-Y624W-MCRMQ-BHDCD_202_____Retail_CloudEditionN
|
||||
92fb8726-92a8-4ffc-94ce-f82e07444653_KY7PN-VR6RX-83W6Y-6DDYQ-T6R4W_203_____Retail_CloudEdition
|
||||
d4f9b41f-205c-405e-8e08-3d16e88e02be_J7NJW-V6KBM-CC8RW-Y29Y4-HQ2MJ_205_OEM:NONSLP_IoTEnterpriseSK
|
||||
) do (
|
||||
for /f "tokens=1-6 delims=_" %%A in ("%%#") do (
|
||||
|
||||
if %1==key if %osSKU%==%%C (
|
||||
|
||||
REM Detect key attempt 1
|
||||
|
||||
if "%2"=="attempt1" if not defined key (
|
||||
echo "!applist!" | find /i "%%A" 1>nul && (
|
||||
set key=%%B
|
||||
set channel=%%D
|
||||
)
|
||||
)
|
||||
|
||||
REM Detect key attempt 2
|
||||
|
||||
if "%2"=="attempt2" if not defined key (
|
||||
set actidnotfound=1
|
||||
set 6th=%%F
|
||||
if not defined 6th (
|
||||
set key=%%B
|
||||
set channel=%%D
|
||||
) else (
|
||||
echo "%branch%" | find /i "%%F" 1>nul && (
|
||||
set key=%%B
|
||||
set channel=%%D
|
||||
)
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
)
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,15 @@
|
||||
====================================================================================================
|
||||
File Details:
|
||||
====================================================================================================
|
||||
|
||||
cleanosppx64.exe SHA-1: d30a0e4e5911d3ca705617d17225372731c770e2
|
||||
cleanosppx86.exe SHA-1: 39ed8659e7ca16aaccb86def94ce6cec4c847dd6
|
||||
|
||||
- These files are used in cleaning office license in C2R Retail office to VL conversion process.
|
||||
- These files are taken from the old version of Microsoft official tool 'O15CTRRemove.diagcab'.
|
||||
|
||||
File: O15CTRRemove.diagcab (Digitally Signed)
|
||||
Link: app.box.com/s/n8qpb5ljmv6djp77w5p6fk043dm6s3r1 (Unofficial Link)
|
||||
SHA-1: 56c6ca76993a96cf9a255463b90db96cb9d24464
|
||||
|
||||
====================================================================================================
|
3
MAS/Separate-Files-Version/ReadMe.html
Normal file
3
MAS/Separate-Files-Version/ReadMe.html
Normal file
@ -0,0 +1,3 @@
|
||||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://massgrave.dev/">
|
||||
</html>
|
@ -1,335 +0,0 @@
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft Activation Scripts' (MAS) project.
|
||||
::
|
||||
:: Homepage: windowsaddict.ml
|
||||
:: Email: windowsaddict@protonmail.com
|
||||
::
|
||||
::============================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Re-launch the script with x64 process if it was initiated by x86 process on x64 bit Windows
|
||||
:: or with ARM64 process if it was initiated by x86/ARM32 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\Sysnative\cmd.exe (
|
||||
set "_cmdf=%~f0"
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\Sysnative\cmd.exe /c ""!_cmdf!" %*"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Re-launch the script with ARM32 process if it was initiated by x64 process on ARM64 Windows
|
||||
|
||||
if exist %SystemRoot%\SysArm32\cmd.exe if %PROCESSOR_ARCHITECTURE%==AMD64 (
|
||||
set "_cmdf=%~f0"
|
||||
setlocal EnableDelayedExpansion
|
||||
start %SystemRoot%\SysArm32\cmd.exe /c ""!_cmdf!" %*"
|
||||
exit /b
|
||||
)
|
||||
|
||||
:: Set Path variable, it helps if it is misconfigured in the system
|
||||
|
||||
set "SysPath=%SystemRoot%\System32"
|
||||
if exist "%SystemRoot%\Sysnative\reg.exe" (set "SysPath=%SystemRoot%\Sysnative")
|
||||
set "Path=%SysPath%;%SystemRoot%;%SysPath%\Wbem;%SysPath%\WindowsPowerShell\v1.0\"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
color 07
|
||||
mode con cols=65 lines=12
|
||||
title Verify Files ^& Clear Zone.Identifier
|
||||
|
||||
set winbuild=1
|
||||
set "nul=>nul 2>&1"
|
||||
set "_psc=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe"
|
||||
for /f "tokens=6 delims=[]. " %%G in ('ver') do set winbuild=%%G
|
||||
|
||||
set _NCS=1
|
||||
if %winbuild% LSS 10586 set _NCS=0
|
||||
if %winbuild% GEQ 10586 reg query "HKCU\Console" /v ForceV2 2>nul | find /i "0x0" 1>nul && (set _NCS=0)
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
for /F %%a in ('echo prompt $E ^| cmd') do set "esc=%%a"
|
||||
set "Red="41;97m""
|
||||
set "Green="42;97m""
|
||||
set "_Yellow="40;93m""
|
||||
) else (
|
||||
set "Red="Red" "white""
|
||||
set "Green="DarkGreen" "white""
|
||||
set "_Yellow="Black" "Yellow""
|
||||
)
|
||||
|
||||
set "nceline=echo: &echo ==== ERROR ==== &echo:"
|
||||
set "eline=echo: &call :color %Red% "==== ERROR ====" &echo:"
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Self verification (made sure that script won't crash, if it's in Unix-LF format)
|
||||
|
||||
set "_hash="
|
||||
for /f "skip=1 tokens=* delims=" %%G in ('certutil -hashfile "%~f0" SHA1^|findstr /i /v CertUtil') do set "_hash=%%G"
|
||||
set "_hash=%_hash: =%"
|
||||
set "_hash=%_hash:~-2%"
|
||||
set "_fina=%~n0"
|
||||
set "_fina=%_fina:~-2%"
|
||||
|
||||
if /i not "%_hash%"=="%_fina%" (
|
||||
%nceline%
|
||||
echo File SHA-1 verification failed.
|
||||
echo Make sure that file is not modified / renamed.
|
||||
echo:
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
if %winbuild% LSS 7600 (
|
||||
%nceline%
|
||||
echo Unsupported OS version Detected.
|
||||
echo Project is supported only for Windows 7/8/8.1/10/11 and their Server equivalent.
|
||||
goto done
|
||||
)
|
||||
|
||||
if not exist %_psc% (
|
||||
%nceline%
|
||||
echo Powershell is not installed in the system.
|
||||
echo Aborting...
|
||||
goto done
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Fix for the special characters limitation in path name
|
||||
|
||||
set "_work=%~dp0"
|
||||
if "%_work:~-1%"=="\" set "_work=%_work:~0,-1%"
|
||||
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
|
||||
setlocal EnableDelayedExpansion
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
for %%# in (All-In-One-Version,Separate-Files-Version) do (
|
||||
if not exist "!_work!\%%#" (
|
||||
%eline%
|
||||
echo [%%~#] folder not found in the current directory.
|
||||
goto done
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
set fileM=0
|
||||
set hashM=0
|
||||
|
||||
for %%# in (
|
||||
31e13b31812ea4fb3073c0ef4a0527490be5d9da+Separate-Files-Version\Extras\Change_W10_11_Edition.cmd
|
||||
db4c68bba8a9c9cccfe76d0f1753a2cd922b94f2+Separate-Files-Version\Extras\Extract_OEM_Folder\Extract_OEM_Folder.cmd
|
||||
d047f7b3bb205e8eb9412af11402e32a31b7906f+Separate-Files-Version\Extras\Extract_OEM_Folder\ReadMe.html
|
||||
44a364ac2d6fad784aef03361fd64460fbe7357a+Separate-Files-Version\Extras\Install_W10_11_HWID_Key.cmd
|
||||
89054be4d565ee7f9defa4159b1997d1bdf96d56+Separate-Files-Version\Extras\_Homepage.html
|
||||
236916e59019d183a55ace4f892016d5cd2194bd+ReadMe.html
|
||||
9cc32357cb46a078779e51c14402ec594acf611b+Separate-Files-Version\Activators\Online_KMS_Activation\Activate.cmd
|
||||
fabb5a0fc1e6a372219711152291339af36ed0b5+Separate-Files-Version\Activators\HWID-KMS38_Activation\BIN\gatherosstate.exe
|
||||
d30a0e4e5911d3ca705617d17225372731c770e2+Separate-Files-Version\Activators\Online_KMS_Activation\BIN\cleanosppx64.exe
|
||||
da1afd97d92dd6026e7095ee7442a2144f78ed0b+Separate-Files-Version\Activators\HWID-KMS38_Activation\BIN\slc.dll
|
||||
286f3bb552b6368a347ca74cb7407026624c4eb3+Separate-Files-Version\Activators\HWID-KMS38_Activation\BIN\_Info.html
|
||||
39ed8659e7ca16aaccb86def94ce6cec4c847dd6+Separate-Files-Version\Activators\Online_KMS_Activation\BIN\cleanosppx86.exe
|
||||
836ae2f742e8dbf54762f4ecc2468c68eecff6d9+Separate-Files-Version\Activators\Online_KMS_Activation\BIN\_Info.html
|
||||
6cd44e7186b396016bd97802a7e28d659ac94e78+Separate-Files-Version\Activators\HWID-KMS38_Activation\HWID_Activation.cmd
|
||||
81d25225805b80a5d32906f32b5aa67d00b24b0c+Separate-Files-Version\Activators\Online_KMS_Activation\ReadMe.html
|
||||
5bf7ebbb3c4de976476925053b3a8e6dc689cff5+Separate-Files-Version\Extras\Activation_Troubleshoot.cmd
|
||||
f4d1fa0d085bc17561416946ccbdaf419570b8f9+Separate-Files-Version\Activators\HWID-KMS38_Activation\KMS38_Activation.cmd
|
||||
06ae500b740d90148a951bd7b40ddc8f9ec0a109+Separate-Files-Version\Activators\HWID-KMS38_Activation\ReadMe_HWID.html
|
||||
1f90667b15471d9a74ee3a2839a8b795b623fc86+Separate-Files-Version\Activators\HWID-KMS38_Activation\ReadMe_KMS38.html
|
||||
4d11828cac7728e25f6e2d1e76553d779d4a33ff+All-In-One-Version\MAS_1.5_AIO_CRC32_21D20776.cmd
|
||||
f19d8a19f6a684e87e2421d185d83af3f5c24a70+Separate-Files-Version\Activators\Activations_Summary.html
|
||||
c00cd43aa95e8221b8ee6a9e758eb7b128139997+Separate-Files-Version\Activators\Check-Activation-Status-vbs.cmd
|
||||
27ead0b8d2b8346e55ab54bb682dc3c5afd1ed59+Separate-Files-Version\Activators\Check-Activation-Status-wmi.cmd
|
||||
023d88e8e0a125f5d85ee2d999b512c4886aab29+Separate-Files-Version\Activators\HWID-KMS38_Activation\BIN\arm64_slc.dll
|
||||
7e449ae5549a0d93cf65f4a1bb2aa7d1dc090d2d+Separate-Files-Version\Activators\HWID-KMS38_Activation\BIN\arm64_gatherosstate.exe
|
||||
48d928b1bec25a56fe896c430c2c034b7866aa7a+Separate-Files-Version\Activators\HWID-KMS38_Activation\BIN\ClipUp.exe
|
||||
) do for /f "tokens=1,2* delims=+" %%A in ("%%#") do (
|
||||
if not exist "!_work!\%%B" (
|
||||
set fileM=1
|
||||
set hashM=1
|
||||
) else (
|
||||
set "_hash="
|
||||
for /f "skip=1 tokens=* delims=" %%G in ('certutil -hashfile "!_work!\%%B" SHA1^|findstr /i /v CertUtil') do (
|
||||
set "_hash=%%G"
|
||||
set "_hash=!_hash: =!"
|
||||
if /i not "%%A"=="!_hash!" set hashM=1
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
cls
|
||||
echo:
|
||||
|
||||
set n=0
|
||||
set mn=0
|
||||
set cn=27
|
||||
|
||||
for /f %%a in ('2^>nul dir "!_work!\" /a-d/b/-o/-p/s^|find /v /c ""') do set n=%%a
|
||||
|
||||
if %fileM%==0 (
|
||||
echo Checking Files [Passed]
|
||||
) else (
|
||||
call :color %Red% "Checking Files [Files Are Missing]"
|
||||
)
|
||||
|
||||
if %n% EQU %cn% echo Checking Total Number Of Files [Passed] [%cn%]
|
||||
|
||||
if %n% GTR %cn% (
|
||||
set /a "mn=%n%-%cn%"
|
||||
call :color %Red% "Checking Total Number Of Files [!mn! - Extra Files Found]"
|
||||
)
|
||||
|
||||
if %n% LSS %cn% (
|
||||
set /a "mn=%cn%-%n%"
|
||||
call :color %Red% "Checking Total Number Of Files [!mn! - Less Files Found]"
|
||||
)
|
||||
|
||||
if %hashM%==0 (
|
||||
echo Verifying Files SHA-1 Hash [Passed]
|
||||
) else (
|
||||
call :color %Red% "Verifying Files SHA-1 Hash [Mismatch Found]"
|
||||
)
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: Clear NTFS alternate data streams (Zone.Identifier)
|
||||
:: winitor.com/pdf/NtfsAlternateDataStreams.pdf
|
||||
:: docs.microsoft.com/en-us/archive/blogs/askcore/alternate-data-streams-in-ntfs
|
||||
|
||||
set zone=0
|
||||
pushd "!_work!\"
|
||||
dir /s /r | find ":$DATA" 1>nul && set zone=1
|
||||
|
||||
if %zone%==0 (
|
||||
echo Clearing Zone.Identifier From Files [Already clean]
|
||||
) else (
|
||||
if %winbuild% LSS 9200 (
|
||||
%nul% %_psc% "iex(([io.file]::ReadAllText('!_batp!')-split':unblock\:.*')[1])"
|
||||
) else (
|
||||
%nul% %_psc% "& {gci -recurse | unblock-file}"
|
||||
)
|
||||
dir /s /r | find ":$DATA" 1>nul
|
||||
if [!errorlevel!]==[0] (
|
||||
call :color %Red% "Clearing Zone.Identifier From Files [Failed]
|
||||
) else (
|
||||
echo Clearing Zone.Identifier From Files [Passed]
|
||||
)
|
||||
)
|
||||
popd
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:done
|
||||
|
||||
echo:
|
||||
if not exist "%_psc%" (
|
||||
echo Press any key to exit...
|
||||
) else (
|
||||
call :color %_Yellow% "Press any key to exit..."
|
||||
)
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:color
|
||||
|
||||
if %_NCS% EQU 1 (
|
||||
echo %esc%[%~1%~2%esc%[0m
|
||||
) else (
|
||||
%_psc% write-host -back '%1' -fore '%2' '%3'
|
||||
)
|
||||
exit /b
|
||||
|
||||
::========================================================================================================================================
|
||||
|
||||
:: andyarismendi.blogspot.com/2012/02/unblocking-files-with-powershell.html
|
||||
:: github.com/ellisgeek/Scripts_Windows/blob/master/Powershell/Helper%20Functions/Unblock-File.ps1
|
||||
:: Written by @Andy Arismendi
|
||||
|
||||
:: This code to unblock files is used when PowerShell 2.0 is installed (Windows 7 and equivalent).
|
||||
:: With PowerShell 3.0 (Windows 8 and equivalent) and above, script uses one liner cmdlet 'Unblock-File'
|
||||
|
||||
:unblock:
|
||||
|
||||
function Unblock-File {
|
||||
#Requires -Version 2.0
|
||||
[cmdletbinding(DefaultParameterSetName = "ByName",
|
||||
SupportsShouldProcess = $True)]
|
||||
param (
|
||||
[parameter(Mandatory = $true,
|
||||
ParameterSetName = "ByName",
|
||||
Position = 0)]
|
||||
[string]
|
||||
$Path,
|
||||
[parameter(Mandatory = $true,
|
||||
ParameterSetName = "ByInput",
|
||||
ValueFromPipeline = $true)]
|
||||
$InputObject
|
||||
)
|
||||
begin {
|
||||
Add-Type -Namespace Win32 -Name PInvoke -MemberDefinition @"
|
||||
// msdn.microsoft.com/en-us/library/windows/desktop/aa363915(v=vs.85).aspx
|
||||
[DllImport("kernel32", CharSet = CharSet.Unicode, SetLastError = true)]
|
||||
[return: MarshalAs(UnmanagedType.Bool)]
|
||||
private static extern bool DeleteFile(string name);
|
||||
public static int Win32DeleteFile(string filePath) {
|
||||
bool is_gone = DeleteFile(filePath); return Marshal.GetLastWin32Error();}
|
||||
|
||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||
static extern int GetFileAttributes(string lpFileName);
|
||||
public static bool Win32FileExists(string filePath) {return GetFileAttributes(filePath) != -1;}
|
||||
"@
|
||||
}
|
||||
process {
|
||||
switch ($PSCmdlet.ParameterSetName) {
|
||||
'ByName' {
|
||||
$input_paths = Resolve-Path -Path $Path | ? { [IO.File]::Exists($_.Path) } | `
|
||||
Select -Exp Path
|
||||
}
|
||||
'ByInput' {
|
||||
if ($InputObject -is [System.IO.FileInfo]) {
|
||||
$input_paths = $InputObject.FullName
|
||||
}
|
||||
}
|
||||
}
|
||||
$input_paths | % {
|
||||
if ([Win32.PInvoke]::Win32FileExists($_ + ':Zone.Identifier')) {
|
||||
if ($PSCmdlet.ShouldProcess($_)) {
|
||||
$result_code = [Win32.PInvoke]::Win32DeleteFile($_ + ':Zone.Identifier')
|
||||
if ([Win32.PInvoke]::Win32FileExists($_ + ':Zone.Identifier')) {
|
||||
Write-Error ("Failed to unblock '{0}' the Win32 return code is '{1}'." -f `
|
||||
$_, $result_code)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
gci -recurse | Unblock-File
|
||||
|
||||
:unblock:
|
||||
|
||||
::========================================================================================================================================
|
91
README.md
91
README.md
@ -1,68 +1,45 @@
|
||||
# **[Download Link](https://github.com/massgravel/Microsoft-Activation-Scripts/releases)** <br/>
|
||||
|
||||
**Homepage:** https://windowsaddict.ml/ <br/>
|
||||
**Discussion:** https://discord.gg/gjJEfq7ux8<br/>
|
||||
## Microsoft Activation Scripts (MAS):
|
||||
|
||||
|
||||
**Latest Version: 1.5**<br/>
|
||||
**Release date: 11-Jan-2022**
|
||||
<br/>
|
||||
<hr />
|
||||
A Windows and Office activator using HWID / KMS38 / Online KMS activation methods, with a focus on open-source code and fewer antivirus detections.
|
||||
|
||||
**Microsoft Activation Scripts (MAS):**
|
||||
## Download / How to use it?
|
||||
|
||||
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.
|
||||
|
||||
**Features:**
|
||||
- HWID Activation [Downlevel & Lockbox Method]
|
||||
- KMS38 Activation [With protection & Uninstallation option]
|
||||
- Online KMS Activation [Batch file based, no KMS related .dll .exe required]<br/>
|
||||
- $OEM$ Folder For Preactivation
|
||||
- Activation Troubleshoot
|
||||
- Insert Windows 10-11 HWID Key
|
||||
- Change Windows 10-11 Edition
|
||||
- Available in All In One & Separate Files Version
|
||||
- Fully Open Source
|
||||
### Method 1 - PowerShell
|
||||
|
||||
<br/>
|
||||
- On Windows 10/11, right-click on the windows start menu and select PowerShell or Terminal.
|
||||
- Copy-paste the below code and press enter\
|
||||
`irm https://massgrave.dev/get | iex`
|
||||
- You will see the activation options, and follow onscreen instructions.
|
||||
- That's all.
|
||||
|
||||
### Method 2 - Traditional
|
||||
|
||||
- Download the file named `MAS_1.7_Password_1234.7z` from [here](https://github.com/massgravel/Microsoft-Activation-Scripts/releases)
|
||||
- Extract this file with a 3rd party archive manager, such as [7zip](https://www.7-zip.org/download.html)
|
||||
- Password is `1234`
|
||||
- In the extracted folder, find the folder named `All-In-One-Version`
|
||||
- Run the file named `MAS_AIO.cmd`
|
||||
- You will see the activation options, and follow onscreen instructions.
|
||||
- That's all.
|
||||
|
||||
To run the scripts in unattended mode, check [here](https://massgrave.dev/command_line_switches.html)
|
||||
|
||||
**Activations Summary:**
|
||||
```
|
||||
===========================================================================================
|
||||
Activation Type Supported Product Activation Period
|
||||
===========================================================================================
|
||||
|
||||
HWID - Windows 10-11 - Permanent
|
||||
KMS38 - Windows 10-11-Server - Until the year 2038
|
||||
Online KMS - Windows / Office - For 180 Days, renewal task needs to be
|
||||
created for lifetime auto-activation.
|
||||
|
||||
* For more details, use the respective activations read me.
|
||||
|
||||
===========================================================================================
|
||||
Latest Version: 1.7
|
||||
Release date: 7-Nov-2022
|
||||
```
|
||||
|
||||
# **ReadMe**
|
||||
|
||||
[HWID Activation](https://windowsaddict.ml/readme-hwid.html)<br/>
|
||||
[KMS38 Activation](https://windowsaddict.ml/readme-kms38.html)<br/>
|
||||
[Online KMS Activation](https://windowsaddict.ml/readme-online-kms.html)<br/>
|
||||
<br/>
|
||||
[HWID KMS38 Files Info](https://windowsaddict.ml/readme-hwid-kms38-files.html) <br/>
|
||||
[Online KMS Files Info](https://windowsaddict.ml/readme-online-kms-files.html)<br/>
|
||||
<br/>
|
||||
[Activation FAQ's](https://windowsaddict.ml/readme-activation-faq.html)<br/>
|
||||
[Extract $OEM$ Folder For Preactivation](https://windowsaddict.ml/readme-oem-folder.html)<br/>
|
||||
[Genuine Installation Media Links](https://windowsaddict.ml/readme-genuine-installation-media.html)<br/>
|
||||
[Office License Is Not Genuine Banner](https://windowsaddict.ml/office-license-is-not-genuine.html)<br/>
|
||||
[What are those big blocks of Unreadable Codes In MAS AIO Version](https://windowsaddict.ml/readme-unreadable-codes-in-mas-aio.html)<br/>
|
||||
<br/>
|
||||
[Troubleshoot HWID](https://windowsaddict.ml/readme-troubleshoot-hwid.html)<br/>
|
||||
[Troubleshoot KMS38](https://windowsaddict.ml/readme-troubleshoot-kms38.html)<br/>
|
||||
[Troubleshoot Online KMS](https://windowsaddict.ml/readme-troubleshoot-onlinekms.html)<br/>
|
||||
### For more details, check Homepage: https://massgrave.dev/
|
||||
|
||||
# [Changelog](https://windowsaddict.ml/readme-mas-changelog.html)<br/>
|
||||
# [Credits](https://windowsaddict.ml/readme-mas-credits.html)<br/>
|
||||
### [Download Original Windows & Office](https://massgrave.dev/genuine-installation-media.html)
|
||||
|
||||
<a href="https://discord.gg/gjJEfq7ux8">
|
||||
<img src="https://discordapp.com/api/guilds/746721520931569757/widget.png?style=banner3" />
|
||||
</a>
|
||||
|
||||
|
||||
---
|
||||
|
||||
Made with Love ❤️
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user