feat: init
This commit is contained in:
commit
65d2f47915
35 changed files with 23075 additions and 0 deletions
9039
Microsoft-Activation-Scripts/MAS/All-In-One-Version/MAS_AIO.cmd
Normal file
9039
Microsoft-Activation-Scripts/MAS/All-In-One-Version/MAS_AIO.cmd
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
|
@ -0,0 +1,233 @@
|
|||
@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: Script either has LF line ending issue, or it failed to read itself.
|
||||
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
|
||||
|
|
@ -0,0 +1,539 @@
|
|||
<!-- : Begin batch script
|
||||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
:: Check-Activation-Status-wmi.cmd
|
||||
:: Written by @abbodi1406
|
||||
:: forums.mydigitallife.net/posts/838808
|
||||
|
||||
|
||||
|
||||
|
||||
set WMI_VBS=0
|
||||
@cls
|
||||
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 [wmi]
|
||||
set wspp=SoftwareLicensingProduct
|
||||
set wsps=SoftwareLicensingService
|
||||
set ospp=OfficeSoftwareProtectionProduct
|
||||
set osps=OfficeSoftwareProtectionService
|
||||
set winApp=55c92734-d682-4d71-983e-d6ec3f16059f
|
||||
set o14App=59a52881-a989-479d-af46-f275c6370663
|
||||
set o15App=0ff1ce15-a989-479d-af46-f275c6370663
|
||||
for %%# in (spp_get,ospp_get,cW1nd0ws,sppw,c0ff1ce15,sppo,osppsvc,ospp14,ospp15) do set "%%#="
|
||||
for /f "tokens=6 delims=[]. " %%# in ('ver') do set winbuild=%%#
|
||||
set "spp_get=Description, DiscoveredKeyManagementServiceMachineName, DiscoveredKeyManagementServiceMachinePort, EvaluationEndDate, GracePeriodRemaining, ID, KeyManagementServiceMachine, KeyManagementServicePort, KeyManagementServiceProductKeyID, LicenseStatus, LicenseStatusReason, Name, PartialProductKey, ProductKeyID, VLActivationInterval, VLRenewalInterval"
|
||||
set "ospp_get=%spp_get%"
|
||||
if %winbuild% GEQ 9200 set "spp_get=%spp_get%, KeyManagementServiceLookupDomain, VLActivationTypeEnabled"
|
||||
if %winbuild% GEQ 9600 set "spp_get=%spp_get%, DiscoveredKeyManagementServiceMachineIpAddress, ProductKeyChannel"
|
||||
set "_work=%~dp0"
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
set "_Local=%LocalAppData%"
|
||||
set _Identity=0
|
||||
setlocal EnableDelayedExpansion
|
||||
dir /b /s /a:-d "!_Local!\Microsoft\Office\Licenses\*1*" 1>nul 2>nul && set _Identity=1
|
||||
dir /b /s /a:-d "!ProgramData!\Microsoft\Office\Licenses\*1*" 1>nul 2>nul && set _Identity=1
|
||||
pushd "!_work!"
|
||||
setlocal DisableDelayedExpansion
|
||||
if %winbuild% LSS 9200 if not exist "%SystemRoot%\servicing\Packages\Microsoft-Windows-PowerShell-WTR-Package~*.mum" set _Identity=0
|
||||
|
||||
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: Script either has LF line ending issue, or it failed to read itself.
|
||||
echo:
|
||||
ping 127.0.0.1 -n 6 > nul
|
||||
popd
|
||||
exit /b
|
||||
)
|
||||
popd
|
||||
|
||||
set _cwmi=0
|
||||
for %%# in (wmic.exe) do @if not "%%~$PATH:#"=="" (
|
||||
wmic path Win32_ComputerSystem get CreationClassName /value 2>nul | find /i "ComputerSystem" 1>nul && set _cwmi=1
|
||||
)
|
||||
|
||||
if %_cwmi% EQU 0 (
|
||||
echo:
|
||||
echo Error: WMI is not responding in the system.
|
||||
echo:
|
||||
echo In MAS, Goto Troubleshoot and run Fix WMI option.
|
||||
echo:
|
||||
echo Press any key to exit...
|
||||
pause >nul
|
||||
exit /b
|
||||
)
|
||||
|
||||
set "line2=************************************************************"
|
||||
set "line3=____________________________________________________________"
|
||||
set "_psc=powershell"
|
||||
|
||||
set _prsh=1
|
||||
for %%# in (powershell.exe) do @if "%%~$PATH:#"=="" set _prsh=0
|
||||
set "_csg=cscript.exe //NoLogo //Job:WmiMulti "%~nx0?.wsf""
|
||||
set "_csq=cscript.exe //NoLogo //Job:WmiQuery "%~nx0?.wsf""
|
||||
set "_csx=cscript.exe //NoLogo //Job:XPDT "%~nx0?.wsf""
|
||||
if %_cwmi% EQU 0 set WMI_VBS=1
|
||||
if %WMI_VBS% EQU 0 (
|
||||
set "_zz1=wmic path"
|
||||
set "_zz2=where"
|
||||
set "_zz3=get"
|
||||
set "_zz4=/value"
|
||||
set "_zz5=("
|
||||
set "_zz6=)"
|
||||
set "_zz7="wmic path"
|
||||
set "_zz8=/value""
|
||||
) else (
|
||||
set "_zz1=%_csq%"
|
||||
set "_zz2="
|
||||
set "_zz3="
|
||||
set "_zz4="
|
||||
set "_zz5=""
|
||||
set "_zz6=""
|
||||
set "_zz7=%_csq%"
|
||||
set "_zz8="
|
||||
)
|
||||
set _WSH=0
|
||||
set OsppHook=1
|
||||
sc query osppsvc >nul 2>&1
|
||||
if %errorlevel% EQU 1060 set OsppHook=0
|
||||
|
||||
net start sppsvc /y >nul 2>&1
|
||||
call :casWpkey %wspp% %winApp% cW1nd0ws sppw
|
||||
if %winbuild% GEQ 9200 call :casWpkey %wspp% %o15App% c0ff1ce15 sppo
|
||||
if %OsppHook% NEQ 0 (
|
||||
net start osppsvc /y >nul 2>&1
|
||||
call :casWpkey %ospp% %o14App% osppsvc ospp14
|
||||
if %winbuild% LSS 9200 call :casWpkey %ospp% %o15App% osppsvc ospp15
|
||||
)
|
||||
|
||||
echo %line2%
|
||||
echo *** Windows Status ***
|
||||
echo %line2%
|
||||
if not defined cW1nd0ws (
|
||||
echo.
|
||||
echo Error: product key not found.
|
||||
goto :casWcon
|
||||
)
|
||||
set winID=1
|
||||
set "_qr=%_zz7% %wspp% %_zz2% %_zz5%ApplicationID='%winApp%' and PartialProductKey is not null%_zz6% %_zz3% ID %_zz8%"
|
||||
for /f "tokens=2 delims==" %%# in ('%_qr%') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%wspp%" "%wsps%" "%spp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo.
|
||||
)
|
||||
|
||||
:casWcon
|
||||
set winID=0
|
||||
set verbose=1
|
||||
if not defined c0ff1ce15 (
|
||||
if defined osppsvc goto :casWospp
|
||||
goto :casWend
|
||||
)
|
||||
echo %line2%
|
||||
echo *** Office Status ***
|
||||
echo %line2%
|
||||
set "_qr=%_zz7% %wspp% %_zz2% %_zz5%ApplicationID='%o15App%' and PartialProductKey is not null%_zz6% %_zz3% ID %_zz8%"
|
||||
for /f "tokens=2 delims==" %%# in ('%_qr%') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%wspp%" "%wsps%" "%spp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo.
|
||||
)
|
||||
set verbose=0
|
||||
if defined osppsvc goto :casWospp
|
||||
goto :casWend
|
||||
|
||||
:casWospp
|
||||
if %verbose% EQU 1 (
|
||||
echo %line2%
|
||||
echo *** Office Status ***
|
||||
echo %line2%
|
||||
)
|
||||
set "_qr=%_zz7% %ospp% %_zz2% %_zz5%ApplicationID='%o15App%' and PartialProductKey is not null%_zz6% %_zz3% ID %_zz8%"
|
||||
if defined ospp15 for /f "tokens=2 delims==" %%# in ('%_qr%') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%ospp%" "%osps%" "%ospp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo.
|
||||
)
|
||||
set "_qr=%_zz7% %ospp% %_zz2% %_zz5%ApplicationID='%o14App%' and PartialProductKey is not null%_zz6% %_zz3% ID %_zz8%"
|
||||
if defined ospp14 for /f "tokens=2 delims==" %%# in ('%_qr%') do (
|
||||
set "chkID=%%#"
|
||||
call :casWdet "%ospp%" "%osps%" "%ospp_get%"
|
||||
call :casWout
|
||||
echo %line3%
|
||||
echo.
|
||||
)
|
||||
goto :casWend
|
||||
|
||||
:casWpkey
|
||||
set "_qr=%_zz1% %1 %_zz2% %_zz5%ApplicationID='%2' and PartialProductKey is not null%_zz6% %_zz3% ID %_zz4%"
|
||||
%_qr% 2>nul | findstr /i ID 1>nul && (set %3=1&set %4=1)
|
||||
exit /b
|
||||
|
||||
:casWdet
|
||||
for %%# in (%~3) do set "%%#="
|
||||
if /i %~1==%ospp% for %%# in (DiscoveredKeyManagementServiceMachineIpAddress, KeyManagementServiceLookupDomain, ProductKeyChannel, VLActivationTypeEnabled) do set "%%#="
|
||||
set "cKmsClient="
|
||||
set "cTblClient="
|
||||
set "cAvmClient="
|
||||
set "ExpireMsg="
|
||||
set "_xpr="
|
||||
set "_qr="wmic path %~1 where ID='%chkID%' get %~3 /value" ^| findstr ^="
|
||||
if %WMI_VBS% NEQ 0 set "_qr=%_csg% %~1 "ID='%chkID%'" "%~3""
|
||||
for /f "tokens=* delims=" %%# in ('%_qr%') do set "%%#"
|
||||
|
||||
set /a _gpr=(GracePeriodRemaining+1440-1)/1440
|
||||
echo %Description%| findstr /i VOLUME_KMSCLIENT 1>nul && (set cKmsClient=1&set _mTag=Volume)
|
||||
echo %Description%| findstr /i TIMEBASED_ 1>nul && (set cTblClient=1&set _mTag=Timebased)
|
||||
echo %Description%| findstr /i VIRTUAL_MACHINE_ACTIVATION 1>nul && (set cAvmClient=1&set _mTag=Automatic VM)
|
||||
cmd /c exit /b %LicenseStatusReason%
|
||||
set "LicenseReason=%=ExitCode%"
|
||||
set "LicenseMsg=Time remaining: %GracePeriodRemaining% minute(s) (%_gpr% day(s))"
|
||||
if %_gpr% GEQ 1 if %_WSH% EQU 1 (
|
||||
for /f "tokens=* delims=" %%# in ('%_csx% %GracePeriodRemaining%') do set "_xpr=%%#"
|
||||
)
|
||||
if %_gpr% GEQ 1 if %_prsh% EQU 1 if not defined _xpr (
|
||||
for /f "tokens=* delims=" %%# in ('%_psc% "$([DateTime]::Now.addMinutes(%GracePeriodRemaining%)).ToString('yyyy-MM-dd HH:mm:ss')" 2^>nul') do set "_xpr=%%#"
|
||||
title Check Activation Status [wmi]
|
||||
)
|
||||
|
||||
if %LicenseStatus% EQU 0 (
|
||||
set "License=Unlicensed"
|
||||
set "LicenseMsg="
|
||||
)
|
||||
if %LicenseStatus% EQU 1 (
|
||||
set "License=Licensed"
|
||||
set "LicenseMsg="
|
||||
if %GracePeriodRemaining% EQU 0 (
|
||||
if %winID% EQU 1 (set "ExpireMsg=The machine is permanently activated.") else (set "ExpireMsg=The product is permanently activated.")
|
||||
) else (
|
||||
set "LicenseMsg=%_mTag% activation expiration: %GracePeriodRemaining% minute(s) (%_gpr% day(s))"
|
||||
if defined _xpr set "ExpireMsg=%_mTag% activation will expire %_xpr%"
|
||||
)
|
||||
)
|
||||
if %LicenseStatus% EQU 2 (
|
||||
set "License=Initial grace period"
|
||||
if defined _xpr set "ExpireMsg=Initial grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 3 (
|
||||
set "License=Additional grace period (KMS license expired or hardware out of tolerance)"
|
||||
if defined _xpr set "ExpireMsg=Additional grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 4 (
|
||||
set "License=Non-genuine grace period."
|
||||
if defined _xpr set "ExpireMsg=Non-genuine grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 6 (
|
||||
set "License=Extended grace period"
|
||||
if defined _xpr set "ExpireMsg=Extended grace period ends %_xpr%"
|
||||
)
|
||||
if %LicenseStatus% EQU 5 (
|
||||
set "License=Notification"
|
||||
if "%LicenseReason%"=="C004F200" (set "LicenseMsg=Notification Reason: 0xC004F200 (non-genuine)."
|
||||
) else if "%LicenseReason%"=="C004F009" (set "LicenseMsg=Notification Reason: 0xC004F009 (grace time expired)."
|
||||
) else (set "LicenseMsg=Notification Reason: 0x%LicenseReason%"
|
||||
)
|
||||
)
|
||||
if %LicenseStatus% GTR 6 (
|
||||
set "License=Unknown"
|
||||
set "LicenseMsg="
|
||||
)
|
||||
if not defined cKmsClient exit /b
|
||||
|
||||
if %KeyManagementServicePort%==0 set KeyManagementServicePort=1688
|
||||
set "KmsReg=Registered KMS machine name: %KeyManagementServiceMachine%:%KeyManagementServicePort%"
|
||||
if "%KeyManagementServiceMachine%"=="" set "KmsReg=Registered KMS machine name: KMS name not available"
|
||||
|
||||
if %DiscoveredKeyManagementServiceMachinePort%==0 set DiscoveredKeyManagementServiceMachinePort=1688
|
||||
set "KmsDns=KMS machine name from DNS: %DiscoveredKeyManagementServiceMachineName%:%DiscoveredKeyManagementServiceMachinePort%"
|
||||
if "%DiscoveredKeyManagementServiceMachineName%"=="" set "KmsDns=DNS auto-discovery: KMS name not available"
|
||||
|
||||
set "_qr="wmic path %~2 get ClientMachineID, KeyManagementServiceHostCaching /value" ^| findstr ^="
|
||||
if %WMI_VBS% NEQ 0 set "_qr=%_csg% %~2 "ClientMachineID, KeyManagementServiceHostCaching""
|
||||
for /f "tokens=* delims=" %%# in ('%_qr%') do set "%%#"
|
||||
if /i %KeyManagementServiceHostCaching%==True (set KeyManagementServiceHostCaching=Enabled) else (set KeyManagementServiceHostCaching=Disabled)
|
||||
|
||||
if %winbuild% LSS 9200 exit /b
|
||||
if /i %~1==%ospp% exit /b
|
||||
|
||||
if "%KeyManagementServiceLookupDomain%"=="" set "KeyManagementServiceLookupDomain="
|
||||
|
||||
if %VLActivationTypeEnabled% EQU 3 (
|
||||
set VLActivationType=Token
|
||||
) else if %VLActivationTypeEnabled% EQU 2 (
|
||||
set VLActivationType=KMS
|
||||
) else if %VLActivationTypeEnabled% EQU 1 (
|
||||
set VLActivationType=AD
|
||||
) else (
|
||||
set VLActivationType=All
|
||||
)
|
||||
|
||||
if %winbuild% LSS 9600 exit /b
|
||||
if "%DiscoveredKeyManagementServiceMachineIpAddress%"=="" set "DiscoveredKeyManagementServiceMachineIpAddress=not available"
|
||||
exit /b
|
||||
|
||||
:casWout
|
||||
echo.
|
||||
echo Name: %Name%
|
||||
echo Description: %Description%
|
||||
echo Activation ID: %ID%
|
||||
echo Extended PID: %ProductKeyID%
|
||||
if defined ProductKeyChannel echo Product Key Channel: %ProductKeyChannel%
|
||||
echo Partial Product Key: %PartialProductKey%
|
||||
echo License Status: %License%
|
||||
if defined LicenseMsg echo %LicenseMsg%
|
||||
if not %LicenseStatus%==0 if not %EvaluationEndDate:~0,8%==16010101 echo Evaluation End Date: %EvaluationEndDate:~0,4%-%EvaluationEndDate:~4,2%-%EvaluationEndDate:~6,2% %EvaluationEndDate:~8,2%:%EvaluationEndDate:~10,2% UTC
|
||||
if not defined cKmsClient (
|
||||
if defined ExpireMsg echo.&echo. %ExpireMsg%
|
||||
exit /b
|
||||
)
|
||||
if defined VLActivationTypeEnabled echo Configured Activation Type: %VLActivationType%
|
||||
echo.
|
||||
if not %LicenseStatus%==1 (
|
||||
echo Please activate the product in order to update KMS client information values.
|
||||
exit /b
|
||||
)
|
||||
echo Most recent activation information:
|
||||
echo Key Management Service client information
|
||||
echo. Client Machine ID (CMID): %ClientMachineID%
|
||||
echo. %KmsDns%
|
||||
echo. %KmsReg%
|
||||
if defined DiscoveredKeyManagementServiceMachineIpAddress echo. KMS machine IP address: %DiscoveredKeyManagementServiceMachineIpAddress%
|
||||
echo. KMS machine extended PID: %KeyManagementServiceProductKeyID%
|
||||
echo. Activation interval: %VLActivationInterval% minutes
|
||||
echo. Renewal interval: %VLRenewalInterval% minutes
|
||||
echo. KMS host caching: %KeyManagementServiceHostCaching%
|
||||
if defined KeyManagementServiceLookupDomain echo. KMS SRV record lookup domain: %KeyManagementServiceLookupDomain%
|
||||
if defined ExpireMsg echo.&echo. %ExpireMsg%
|
||||
exit /b
|
||||
|
||||
:casWend
|
||||
if %_Identity% EQU 1 if %_prsh% EQU 1 (
|
||||
echo %line2%
|
||||
echo *** Office vNext Status ***
|
||||
echo %line2%
|
||||
setlocal EnableDelayedExpansion
|
||||
%_psc% "$f=[IO.File]::ReadAllText('!_batp!') -split ':vNextDiag\:.*';iex ($f[1])"
|
||||
title Check Activation Status [wmi]
|
||||
echo %line3%
|
||||
echo.
|
||||
)
|
||||
echo.
|
||||
echo Press any key to exit.
|
||||
pause >nul
|
||||
exit /b
|
||||
|
||||
:vNextDiag:
|
||||
function PrintModePerPridFromRegistry
|
||||
{
|
||||
$vNextRegkey = "HKCU:\SOFTWARE\Microsoft\Office\16.0\Common\Licensing\LicensingNext"
|
||||
$vNextPrids = Get-Item -Path $vNextRegkey -ErrorAction Ignore | Select-Object -ExpandProperty 'property' | Where-Object -FilterScript {$_.ToLower() -like "*retail" -or $_.ToLower() -like "*volume"}
|
||||
If ($vNextPrids -Eq $null)
|
||||
{
|
||||
Write-Host "No registry keys found."
|
||||
Return
|
||||
}
|
||||
$vNextPrids | ForEach `
|
||||
{
|
||||
$mode = (Get-ItemProperty -Path $vNextRegkey -Name $_).$_
|
||||
Switch ($mode)
|
||||
{
|
||||
2 { $mode = "vNext"; Break }
|
||||
3 { $mode = "Device"; Break }
|
||||
Default { $mode = "Legacy"; Break }
|
||||
}
|
||||
Write-Host $_ = $mode
|
||||
}
|
||||
}
|
||||
function PrintSharedComputerLicensing
|
||||
{
|
||||
$scaRegKey = "HKLM:\SOFTWARE\Microsoft\Office\ClickToRun\Configuration"
|
||||
$scaValue = Get-ItemProperty -Path $scaRegKey -ErrorAction Ignore | Select-Object -ExpandProperty "SharedComputerLicensing" -ErrorAction Ignore
|
||||
$scaRegKey2 = "HKLM:\SOFTWARE\Microsoft\Office\16.0\Common\Licensing"
|
||||
$scaValue2 = Get-ItemProperty -Path $scaRegKey2 -ErrorAction Ignore | Select-Object -ExpandProperty "SharedComputerLicensing" -ErrorAction Ignore
|
||||
$scaPolicyKey = "HKLM:\SOFTWARE\Policies\Microsoft\Office\16.0\Common\Licensing"
|
||||
$scaPolicyValue = Get-ItemProperty -Path $scaPolicyKey -ErrorAction Ignore | Select-Object -ExpandProperty "SharedComputerLicensing" -ErrorAction Ignore
|
||||
If ($scaValue -Eq $null -And $scaValue2 -Eq $null -And $scaPolicyValue -Eq $null)
|
||||
{
|
||||
Write-Host "No registry keys found."
|
||||
Return
|
||||
}
|
||||
$scaModeValue = $scaValue -Or $scaValue2 -Or $scaPolicyValue
|
||||
If ($scaModeValue -Eq 0)
|
||||
{
|
||||
$scaMode = "Disabled"
|
||||
}
|
||||
If ($scaModeValue -Eq 1)
|
||||
{
|
||||
$scaMode = "Enabled"
|
||||
}
|
||||
Write-Host "SharedComputerLicensing" = $scaMode
|
||||
Write-Host
|
||||
$tokenFiles = $null
|
||||
$tokenPath = "${env:LOCALAPPDATA}\Microsoft\Office\16.0\Licensing"
|
||||
If (Test-Path $tokenPath)
|
||||
{
|
||||
$tokenFiles = Get-ChildItem -Path $tokenPath -Recurse -File -Filter "*authString*"
|
||||
}
|
||||
If ($tokenFiles.length -Eq 0)
|
||||
{
|
||||
Write-Host "No tokens found."
|
||||
Return
|
||||
}
|
||||
$tokenFiles | ForEach `
|
||||
{
|
||||
$tokenParts = (Get-Content -Encoding Unicode -Path $_.FullName).Split('_')
|
||||
$output = [PSCustomObject] `
|
||||
@{
|
||||
ACID = $tokenParts[0];
|
||||
User = $tokenParts[3]
|
||||
NotBefore = $tokenParts[4];
|
||||
NotAfter = $tokenParts[5];
|
||||
} | ConvertTo-Json
|
||||
Write-Host $output
|
||||
}
|
||||
}
|
||||
function PrintLicensesInformation
|
||||
{
|
||||
Param(
|
||||
[ValidateSet("NUL", "Device")]
|
||||
[String]$mode
|
||||
)
|
||||
If ($mode -Eq "NUL")
|
||||
{
|
||||
$licensePath = "${env:LOCALAPPDATA}\Microsoft\Office\Licenses"
|
||||
}
|
||||
ElseIf ($mode -Eq "Device")
|
||||
{
|
||||
$licensePath = "${env:PROGRAMDATA}\Microsoft\Office\Licenses"
|
||||
}
|
||||
$licenseFiles = $null
|
||||
If (Test-Path $licensePath)
|
||||
{
|
||||
$licenseFiles = Get-ChildItem -Path $licensePath -Recurse -File
|
||||
}
|
||||
If ($licenseFiles.length -Eq 0)
|
||||
{
|
||||
Write-Host "No licenses found."
|
||||
Return
|
||||
}
|
||||
$licenseFiles | ForEach `
|
||||
{
|
||||
$license = (Get-Content -Encoding Unicode $_.FullName | ConvertFrom-Json).License
|
||||
$decodedLicense = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($license)) | ConvertFrom-Json
|
||||
$licenseType = $decodedLicense.LicenseType
|
||||
If ($null -Ne $decodedLicense.ExpiresOn)
|
||||
{
|
||||
$expiry = [DateTime]::Parse($decodedLicense.ExpiresOn, $null, 48)
|
||||
}
|
||||
Else
|
||||
{
|
||||
$expiry = New-Object DateTime
|
||||
}
|
||||
$licenseState = $null
|
||||
If ((Get-Date) -Gt (Get-Date $decodedLicense.MetaData.NotAfter))
|
||||
{
|
||||
$licenseState = "RFM"
|
||||
}
|
||||
ElseIf ((Get-Date) -Lt (Get-Date $expiry))
|
||||
{
|
||||
$licenseState = "Licensed"
|
||||
}
|
||||
Else
|
||||
{
|
||||
$licenseState = "Grace"
|
||||
}
|
||||
if ($mode -Eq "NUL")
|
||||
{
|
||||
$output = [PSCustomObject] `
|
||||
@{
|
||||
Version = $_.Directory.Name
|
||||
Type = "User|${licenseType}";
|
||||
Product = $decodedLicense.ProductReleaseId;
|
||||
Acid = $decodedLicense.Acid;
|
||||
LicenseState = $licenseState;
|
||||
EntitlementStatus = $decodedLicense.Status;
|
||||
EntitlementExpiration = $decodedLicense.ExpiresOn;
|
||||
ReasonCode = $decodedLicense.ReasonCode;
|
||||
NotBefore = $decodedLicense.Metadata.NotBefore;
|
||||
NotAfter = $decodedLicense.Metadata.NotAfter;
|
||||
NextRenewal = $decodedLicense.Metadata.RenewAfter;
|
||||
TenantId = $decodedLicense.Metadata.TenantId;
|
||||
} | ConvertTo-Json
|
||||
}
|
||||
ElseIf ($mode -Eq "Device")
|
||||
{
|
||||
$output = [PSCustomObject] `
|
||||
@{
|
||||
Version = $_.Directory.Name
|
||||
Type = "Device|${licenseType}";
|
||||
Product = $decodedLicense.ProductReleaseId;
|
||||
Acid = $decodedLicense.Acid;
|
||||
DeviceId = $decodedLicense.Metadata.DeviceId;
|
||||
LicenseState = $licenseState;
|
||||
EntitlementStatus = $decodedLicense.Status;
|
||||
EntitlementExpiration = $decodedLicense.ExpiresOn;
|
||||
ReasonCode = $decodedLicense.ReasonCode;
|
||||
NotBefore = $decodedLicense.Metadata.NotBefore;
|
||||
NotAfter = $decodedLicense.Metadata.NotAfter;
|
||||
NextRenewal = $decodedLicense.Metadata.RenewAfter;
|
||||
TenantId = $decodedLicense.Metadata.TenantId;
|
||||
} | ConvertTo-Json
|
||||
}
|
||||
Write-Output $output
|
||||
}
|
||||
}
|
||||
Write-Host
|
||||
Write-Host "========== Mode per ProductReleaseId =========="
|
||||
Write-Host
|
||||
PrintModePerPridFromRegistry
|
||||
Write-Host
|
||||
Write-Host "========== Shared Computer Licensing =========="
|
||||
Write-Host
|
||||
PrintSharedComputerLicensing
|
||||
Write-Host
|
||||
Write-Host "========== vNext licenses =========="
|
||||
Write-Host
|
||||
PrintLicensesInformation -Mode "NUL"
|
||||
Write-Host
|
||||
Write-Host "========== Device licenses =========="
|
||||
Write-Host
|
||||
PrintLicensesInformation -Mode "Device"
|
||||
:vNextDiag:
|
||||
::===================================================
|
||||
|
|
@ -0,0 +1,458 @@
|
|||
@setlocal DisableDelayedExpansion
|
||||
@echo off
|
||||
|
||||
|
||||
|
||||
::============================================================================
|
||||
::
|
||||
:: This script is a part of 'Microsoft_Activation_Scripts' (MAS) project.
|
||||
::
|
||||
:: Homepage: mass grave.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: Script either has LF line ending issue, or it failed to read itself.
|
||||
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 con cols=78 lines=30
|
||||
|
||||
if exist "!desktop!\$OEM$\" (
|
||||
echo _____________________________________________________
|
||||
%eline%
|
||||
echo $OEM$ folder already exists on the Desktop.
|
||||
echo _____________________________________________________
|
||||
goto done2
|
||||
)
|
||||
|
||||
set HWID_Activation.cmd=Activators\HWID_Activation.cmd
|
||||
set KMS38_Activation.cmd=Activators\KMS38_Activation.cmd
|
||||
set Online_KMS_Activation.cmd=Activators\Online_KMS_Activation.cmd
|
||||
|
||||
pushd "!_work!"
|
||||
|
||||
set _nofile=
|
||||
for %%# in (
|
||||
%HWID_Activation.cmd%
|
||||
%KMS38_Activation.cmd%
|
||||
%Online_KMS_Activation.cmd%
|
||||
) 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
|
||||
mode con cols=78 lines=30
|
||||
echo:
|
||||
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"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%Online_KMS_Activation.cmd%" "!_dir!\Online_KMS_Activation.cmd" %nul%
|
||||
popd
|
||||
call :export kms_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\Online_KMS_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" 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 "%~dp0Online_KMS_Activation.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"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%HWID_Activation.cmd%" "!_dir!\HWID_Activation.cmd" %nul%
|
||||
copy /y /b "%Online_KMS_Activation.cmd%" "!_dir!\Online_KMS_Activation.cmd" %nul%
|
||||
popd
|
||||
call :export hwid_kms_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\HWID_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Online_KMS_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" 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 "%~dp0Online_KMS_Activation.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"
|
||||
pushd "!_work!"
|
||||
copy /y /b "%KMS38_Activation.cmd%" "!_dir!\KMS38_Activation.cmd" %nul%
|
||||
copy /y /b "%Online_KMS_Activation.cmd%" "!_dir!\Online_KMS_Activation.cmd" %nul%
|
||||
popd
|
||||
call :export kms38_kms_setup
|
||||
|
||||
set _error=
|
||||
if not exist "!_dir!\KMS38_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\Online_KMS_Activation.cmd" set _error=1
|
||||
if not exist "!_dir!\SetupComplete.cmd" 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 "%~dp0Online_KMS_Activation.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
|
||||
|
||||
set -=
|
||||
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://mass%-%grave.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
|
||||
|
||||
::========================================================================================================================================
|
||||
|
|
@ -0,0 +1,439 @@
|
|||
@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: Script either has LF line ending issue, or it failed to read itself.
|
||||
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 This option is supported only 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:
|
||||
)
|
||||
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."
|
||||
echo Check this page for help https://massgrave.dev/troubleshoot
|
||||
)
|
||||
%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
|
||||
|
||||
:: 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
|
||||
|
||||
:: Get Product name (WMI/REG methods are not reliable in all conditions, hence winbrand.dll method is used)
|
||||
|
||||
:dk_product
|
||||
|
||||
call :dk_reflection
|
||||
|
||||
set d1=%ref% $meth = $TypeBuilder.DefinePInvokeMethod('BrandingFormatString', 'winbrand.dll', 'Public, Static', 1, [String], @([String]), 1, 3);
|
||||
set d1=%d1% $meth.SetImplementationFlags(128); $TypeBuilder.CreateType()::BrandingFormatString('%%WINDOWS_LONG%%')
|
||||
|
||||
set winos=
|
||||
for /f "delims=" %%s in ('"%psc% %d1%"') 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
|
||||
|
||||
:: Common lines used in PowerShell reflection code
|
||||
|
||||
:dk_reflection
|
||||
|
||||
set ref=$AssemblyBuilder = [AppDomain]::CurrentDomain.DefineDynamicAssembly(4, 1);
|
||||
set ref=%ref% $ModuleBuilder = $AssemblyBuilder.DefineDynamicModule(2, $False);
|
||||
set ref=%ref% $TypeBuilder = $ModuleBuilder.DefineType(0);
|
||||
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
|
||||
|
||||
set f=
|
||||
for %%# in (
|
||||
8b351c9c-f398-4515-9900-09df49427262_XGV%f%PP-NM%f%H47-7TTH%f%J-W3F%f%W7-8HV%f%2C___4_OEM:NONSLP_Enterprise
|
||||
c83cef07-6b72-4bbc-a28f-a00386872839_3V6%f%Q6-NQ%f%XCX-V8YX%f%R-9QC%f%YV-QPF%f%CT__27_Volume:MAK_EnterpriseN
|
||||
4de7cb65-cdf1-4de9-8ae8-e3cce27b9f2c_VK7%f%JG-NP%f%HTM-C97J%f%M-9MP%f%GT-3V6%f%6T__48_____Retail_Professional
|
||||
9fbaf5d6-4d83-4422-870d-fdda6e5858aa_2B8%f%7N-8K%f%FHP-DKV6%f%R-Y2C%f%8J-PKC%f%KT__49_____Retail_ProfessionalN
|
||||
f742e4ff-909d-4fe9-aacb-3231d24a0c58_4CP%f%RK-NM%f%3K3-X6XX%f%Q-RXX%f%86-WXC%f%HW__98_____Retail_CoreN
|
||||
1d1bac85-7365-4fea-949a-96978ec91ae0_N24%f%34-X9%f%D7W-8PF6%f%X-8DV%f%9T-8TY%f%MD__99_____Retail_CoreCountrySpecific
|
||||
3ae2cc14-ab2d-41f4-972f-5e20142771dc_BT7%f%9Q-G7%f%N6G-PGBY%f%W-4YW%f%X6-6F4%f%BT_100_____Retail_CoreSingleLanguage
|
||||
2b1f36bb-c1cd-4306-bf5c-a0367c2d97d8_YTM%f%G3-N6%f%DKC-DKB7%f%7-7M9%f%GH-8HV%f%X7_101_____Retail_Core
|
||||
2a6137f3-75c0-4f26-8e3e-d83d802865a4_XKC%f%NC-J2%f%6Q9-KFHD%f%2-FKT%f%HY-KD7%f%2Y_119_OEM:NONSLP_PPIPro
|
||||
e558417a-5123-4f6f-91e7-385c1c7ca9d4_YNM%f%GQ-8R%f%YV3-4PGQ%f%3-C8X%f%TP-7CF%f%BY_121_____Retail_Education
|
||||
c5198a66-e435-4432-89cf-ec777c9d0352_84N%f%GF-MH%f%BT6-FXBX%f%8-QWJ%f%K7-DRR%f%8H_122_____Retail_EducationN
|
||||
cce9d2de-98ee-4ce2-8113-222620c64a27_KCN%f%VH-YK%f%WX8-GJJB%f%9-H9F%f%DT-6F7%f%W2_125_Volume:MAK_EnterpriseS_VB
|
||||
d06934ee-5448-4fd1-964a-cd077618aa06_43T%f%BQ-NH%f%92J-XKTM%f%7-KT3%f%KK-P39%f%PB_125_OEM:NONSLP_EnterpriseS_RS5
|
||||
706e0cfd-23f4-43bb-a9af-1a492b9f1302_NK9%f%6Y-D9%f%CD8-W44C%f%Q-R8Y%f%TK-DYJ%f%WX_125_OEM:NONSLP_EnterpriseS_RS1
|
||||
faa57748-75c8-40a2-b851-71ce92aa8b45_FWN%f%7H-PF%f%93Q-4GGP%f%8-M8R%f%F3-MDW%f%WW_125_OEM:NONSLP_EnterpriseS_TH
|
||||
2c060131-0e43-4e01-adc1-cf5ad1100da8_RQF%f%NW-9T%f%PM3-JQ73%f%T-QV4%f%VQ-DV9%f%PT_126_Volume:MAK_EnterpriseSN_VB
|
||||
e8f74caa-03fb-4839-8bcc-2e442b317e53_M33%f%WV-NH%f%Y3C-R7FP%f%M-BQG%f%PT-239%f%PG_126_Volume:MAK_EnterpriseSN_RS5
|
||||
3d1022d8-969f-4222-b54b-327f5a5af4c9_2DB%f%W3-N2%f%PJG-MVHW%f%3-G7T%f%DK-9HK%f%R4_126_Volume:MAK_EnterpriseSN_RS1
|
||||
60c243e1-f90b-4a1b-ba89-387294948fb6_NTX%f%6B-BR%f%YC2-K678%f%6-F6M%f%VQ-M7V%f%2X_126_Volume:MAK_EnterpriseSN_TH
|
||||
eb6d346f-1c60-4643-b960-40ec31596c45_DXG%f%7C-N3%f%6C4-C4HT%f%G-X4T%f%3X-2YV%f%77_161_____Retail_ProfessionalWorkstation
|
||||
89e87510-ba92-45f6-8329-3afa905e3e83_WYP%f%NQ-8C%f%467-V2W6%f%J-TX4%f%WX-WT2%f%RQ_162_____Retail_ProfessionalWorkstationN
|
||||
62f0c100-9c53-4e02-b886-a3528ddfe7f6_8PT%f%T6-RN%f%W4C-6V7J%f%2-C2D%f%3X-MHB%f%PB_164_____Retail_ProfessionalEducation
|
||||
13a38698-4a49-4b9e-8e83-98fe51110953_GJT%f%YN-HD%f%MQY-FRR7%f%6-HVG%f%C7-QPF%f%8P_165_____Retail_ProfessionalEducationN
|
||||
df96023b-dcd9-4be2-afa0-c6c871159ebe_NJC%f%F7-PW%f%8QT-3324%f%D-688%f%JX-2YV%f%66_175_____Retail_ServerRdsh
|
||||
d4ef7282-3d2c-4cf0-9976-8854e64a8d1e_V3W%f%VW-N2%f%PV2-CGWC%f%3-34Q%f%GF-VMJ%f%2C_178_____Retail_Cloud
|
||||
af5c9381-9240-417d-8d35-eb40cd03e484_NH9%f%J3-68%f%WK7-6FB9%f%3-4K3%f%DF-DJ4%f%F6_179_____Retail_CloudN
|
||||
8ab9bdd1-1f67-4997-82d9-8878520837d9_XQQ%f%YW-NF%f%FMW-XJPB%f%H-K87%f%32-CKF%f%FD_188_____OEM:DM_IoTEnterprise
|
||||
ed655016-a9e8-4434-95d9-4345352c2552_QPM%f%6N-7J%f%2WJ-P88H%f%H-P3Y%f%RH-YY7%f%4H_191_OEM:NONSLP_IoTEnterpriseS_VB
|
||||
d4bdc678-0a4b-4a32-a5b3-aaa24c3b0f24_K9V%f%KN-3B%f%GWV-Y624%f%W-MCR%f%MQ-BHD%f%CD_202_____Retail_CloudEditionN
|
||||
92fb8726-92a8-4ffc-94ce-f82e07444653_KY7%f%PN-VR%f%6RX-83W6%f%Y-6DD%f%YQ-T6R%f%4W_203_____Retail_CloudEdition
|
||||
d4f9b41f-205c-405e-8e08-3d16e88e02be_J7N%f%JW-V6%f%KBM-CC8R%f%W-Y29%f%Y4-HQ2%f%MJ_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,3 @@
|
|||
<html>
|
||||
<meta http-equiv="refresh" content="0; url=https://massgrave.dev/">
|
||||
</html>
|
||||
52
Microsoft-Activation-Scripts/README.md
Normal file
52
Microsoft-Activation-Scripts/README.md
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
## Microsoft Activation Scripts (MAS):
|
||||
|
||||
A Windows and Office activator using HWID / KMS38 / Online KMS activation methods, with a focus on open-source code and fewer antivirus detections.
|
||||
|
||||
## Download / How to use it?
|
||||
|
||||
### Method 1 - PowerShell (Recommended)
|
||||
|
||||
- On Windows 8.1/10/11, right-click on the windows start menu and select PowerShell or Terminal (Not CMD).
|
||||
- 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 from [here](https://github.com/massgravel/Microsoft-Activation-Scripts/archive/refs/heads/master.zip)
|
||||
- Right click on the downloaded zip file and extract
|
||||
- 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)
|
||||
|
||||
```
|
||||
Latest Version: 1.8
|
||||
Release date: 16-Mar-2023
|
||||
```
|
||||
|
||||
### [Troubleshooting / Help](https://massgrave.dev/troubleshoot.html)
|
||||
### [Download Original Windows & Office](https://massgrave.dev/genuine-installation-media.html)
|
||||
### Homepage - https://massgrave.dev
|
||||
</br>
|
||||
|
||||
[![1.1]][1]
|
||||
[![1.2]][2]
|
||||
[![1.3]][3]
|
||||
|
||||
[1.1]: https://lookimg.com/images/2023/03/21/QTvjcD.png (Chat with us without signup)
|
||||
[1.2]: https://lookimg.com/images/2023/03/21/QTvLyd.png (Chat with us)
|
||||
[1.3]: https://lookimg.com/images/2023/03/21/QTvXBJ.png (Follow on twitter)
|
||||
|
||||
[1]: https://discord.gg/gjJEfq7ux8
|
||||
[2]: https://t.me/Microsoft_Activation_Scripts
|
||||
[3]: https://twitter.com/massgravel
|
||||
|
||||
---
|
||||
|
||||
Made with Love ❤️
|
||||
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue