mirror of
https://github.com/abbodi1406/KMS_VL_ALL_AIO.git
synced 2026-11-07 02:52:32 -05:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2da8d485e | ||
|
|
8a13e0f0fd |
No files matched your search
+264
-105
@@ -1,6 +1,6 @@
|
||||
<!-- : Begin batch script
|
||||
@setlocal DisableDelayedExpansion
|
||||
@set uivr=v46
|
||||
@set uivr=v48
|
||||
@echo off
|
||||
:: ### Configuration Options ###
|
||||
|
||||
@@ -14,6 +14,9 @@ set ActOffice=1
|
||||
:: change to 0 to turn OFF auto conversion for Office C2R Retail to Volume
|
||||
set AutoR2V=1
|
||||
|
||||
:: change to 0 to keep Office C2R vNext license (subscription or lifetime)
|
||||
set vNextOverride=1
|
||||
|
||||
:: change to 0 to revert Windows 10/11 KMS38 to normal KMS
|
||||
set SkipKMS38=1
|
||||
|
||||
@@ -21,7 +24,7 @@ set SkipKMS38=1
|
||||
|
||||
:: change to 1 and set KMS_IP address to activate via external KMS server unattended
|
||||
set External=0
|
||||
set KMS_IP=0.0.0.0
|
||||
set KMS_IP=172.16.0.2
|
||||
|
||||
:: change to 1 to run Manual activation mode unattended
|
||||
set uManual=0
|
||||
@@ -67,7 +70,7 @@ set WMI_VBS=0
|
||||
|
||||
set KMS_Emulation=1
|
||||
set Unattend=0
|
||||
set _uIP=0.0.0.0
|
||||
set _uIP=172.16.0.2
|
||||
|
||||
set "_Null=1>nul 2>nul"
|
||||
|
||||
@@ -92,6 +95,7 @@ if /i "%%A"=="-elevated" (set _elev=1
|
||||
) else if /i "%%A"=="/o" (set ActOffice=1&set ActWindows=0
|
||||
) else if /i "%%A"=="/w" (set ActOffice=0&set ActWindows=1
|
||||
) else if /i "%%A"=="/c" (set AutoR2V=0
|
||||
) else if /i "%%A"=="/v" (set vNextOverride=0
|
||||
) else if /i "%%A"=="/x" (set SkipKMS38=0
|
||||
) else if /i "%%A"=="/e" (set fAUR=0&set External=1&set uManual=0&set uAutoRenewal=0
|
||||
) else if /i "%%A"=="/m" (set fAUR=0&set External=0&set uAutoRenewal=0
|
||||
@@ -141,6 +145,8 @@ if /i "%PROCESSOR_ARCHITECTURE%"=="x86" if "%PROCESSOR_ARCHITEW6432%"=="" set "x
|
||||
if /i "%PROCESSOR_ARCHITEW6432%"=="amd64" set "xBit=x64"&set "xOS=x64"&set "_orig=%o_x64%"
|
||||
if /i "%PROCESSOR_ARCHITEW6432%"=="arm64" set "xBit=x86"&set "xOS=A64"&set "_orig=%o_arm%"
|
||||
|
||||
reg query HKLM\SYSTEM\CurrentControlSet\Services\WinMgmt /v Start 2>nul | find /i "0x4" 1>nul && (goto :E_WMS)
|
||||
|
||||
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
|
||||
@@ -150,6 +156,10 @@ for %%# in (powershell.exe) do @if "%%~$PATH:#"=="" set _pwsh=0
|
||||
if not exist "%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" set _pwsh=0
|
||||
if %_pwsh% equ 0 goto :E_PS
|
||||
|
||||
set psfull=1
|
||||
2>nul %_psc% $ExecutionContext.SessionState.LanguageMode | find /i "Full" 1>nul || set psfull=0
|
||||
if %psfull% equ 0 goto :E_LM
|
||||
|
||||
set _dllPath=%SystemRoot%\System32
|
||||
if %xOS%==A64 %_psc% $env:PROCESSOR_ARCHITECTURE 2>nul | find /i "x86" 1>nul && set _dllPath=%SystemRoot%\Sysnative
|
||||
set _dllNum=1
|
||||
@@ -181,8 +191,8 @@ set _PSarg=%_PSarg:'=''%
|
||||
if not exist "%SystemRoot%\Temp\" mkdir "%SystemRoot%\Temp" 1>nul 2>nul
|
||||
set "_batf=%~f0"
|
||||
set "_batp=%_batf:'=''%"
|
||||
set "_Local=%LocalAppData%"
|
||||
set "_utemp=%TEMP%"
|
||||
set "_Local=%LocalAppData%"
|
||||
set "_temp=%SystemRoot%\Temp"
|
||||
set "_log=%~dpn0"
|
||||
set "_work=%~dp0"
|
||||
@@ -351,6 +361,12 @@ if %OSType% EQU Win8 reg query "%IFEO%\sppsvc.exe" %_Nul3% && (
|
||||
reg delete "%IFEO%\sppsvc.exe" /f %_Nul3%
|
||||
call :StopService sppsvc
|
||||
)
|
||||
|
||||
set _Identity=0
|
||||
set kNext=HKCU\SOFTWARE\Microsoft\Office\16.0\Common\Licensing\LicensingNext
|
||||
dir /b /s /a:-d "!_Local!\Microsoft\Office\Licenses\*1*" %_Nul3% && set _Identity=1
|
||||
dir /b /s /a:-d "!ProgramData!\Microsoft\Office\Licenses\*1*" %_Nul3% && set _Identity=1
|
||||
|
||||
set _uRI=%KMS_RenewalInterval%
|
||||
set _uAI=%KMS_ActivationInterval%
|
||||
set _dDbg=No
|
||||
@@ -359,6 +375,11 @@ if %_Debug% EQU 1 if not defined fAUR set fAUR=0&set External=0
|
||||
if %Unattend% EQU 1 if not defined fAUR set fAUR=0&set External=0
|
||||
if not defined fAUR if not defined rAUR goto :MainMenu
|
||||
if defined rAUR (set _verb=1&cls&call :RemoveHook&goto :cCache)
|
||||
set sub_next=0
|
||||
set sub_o365=0
|
||||
set sub_proj=0
|
||||
set sub_vsio=0
|
||||
if %_Identity% EQU 1 reg query %kNext% /v MigrationToV5Done %_Nul2% | find /i "0x1" %_Nul1% && call :officeSub
|
||||
set Unattend=1
|
||||
set _ReAR=0
|
||||
set _AUR=0
|
||||
@@ -371,10 +392,15 @@ cls&goto :DoActivate
|
||||
|
||||
:MainMenu
|
||||
cls
|
||||
mode con cols=80 lines=32
|
||||
mode con cols=80 lines=34
|
||||
color 07
|
||||
set "_title=KMS_VL_ALL_AIO %uivr%"
|
||||
title %_title%
|
||||
set sub_next=0
|
||||
set sub_o365=0
|
||||
set sub_proj=0
|
||||
set sub_vsio=0
|
||||
if %_Identity% EQU 1 reg query %kNext% /v MigrationToV5Done %_Nul2% | find /i "0x1" %_Nul1% && call :officeSub
|
||||
set _dMode=Manual
|
||||
set _ReAR=0
|
||||
set _AUR=0
|
||||
@@ -387,6 +413,7 @@ if %ActOffice% EQU 0 (set _dAoff=No) else (set _dAoff=Yes)
|
||||
if %AutoR2V% EQU 0 (set _dArtv=No) else (set _dArtv=Yes)
|
||||
if %SkipKMS38% EQU 0 (set _dWXKMS=No) else (set _dWXKMS=Yes)
|
||||
if %_Debug% EQU 0 (set _dDbg=No) else (set _dDbg=Yes)
|
||||
if %vNextOverride% EQU 0 (set _dNxt=No) else (set _dNxt=Yes)
|
||||
set _el=
|
||||
set _quit=
|
||||
if %preparedcolor%==0 call :colorprep
|
||||
@@ -397,14 +424,14 @@ if not exist "'" (<nul >"'" set /p "=.")
|
||||
echo.
|
||||
echo %line3%
|
||||
echo.
|
||||
if %_AUR% EQU 1 (
|
||||
rem echo [1] Activate [%_dMode% Mode]
|
||||
if %_AUR% EQU 1 (
|
||||
call :Cfgbg %_cWht% " [1] Activate " %_cGrn% "[%_dMode% Mode]"
|
||||
) else (
|
||||
call :Cfgbg %_cWht% " [1] Activate " %_cBlu% "[%_dMode% Mode]"
|
||||
)
|
||||
echo.
|
||||
if %_AUR% EQU 1 (
|
||||
if %_AUR% EQU 1 (
|
||||
call :Cfgbg %_cWht% " [2] Install Activation Auto-Renewal " %_cGrn% "[%_dHook%]"
|
||||
) else (
|
||||
echo [2] Install Activation Auto-Renewal
|
||||
@@ -414,51 +441,67 @@ echo %line4%
|
||||
echo.
|
||||
echo Configuration:
|
||||
echo.
|
||||
if %_dDbg%==No (
|
||||
echo [4] Enable Debug Mode [%_dDbg%]
|
||||
if %_dDbg%==No (
|
||||
echo [4] Enable Debug Mode [%_dDbg%]
|
||||
) else (
|
||||
call :Cfgbg %_cWht% " [4] Enable Debug Mode " %_cRed% "[%_dDbg%]"
|
||||
call :Cfgbg %_cWht% " [4] Enable Debug Mode " %_cRed% "[%_dDbg%]"
|
||||
)
|
||||
if %_dAwin%==Yes (
|
||||
echo [5] Process Windows [%_dAwin%]
|
||||
echo [5] Process Windows [%_dAwin%]
|
||||
) else (
|
||||
call :Cfgbg %_cWht% " [5] Process Windows " %_cYel% "[%_dAwin%]"
|
||||
call :Cfgbg %_cWht% " [5] Process Windows " %_cYel% "[%_dAwin%]"
|
||||
)
|
||||
if %_dAoff%==Yes (
|
||||
echo [6] Process Office [%_dAoff%]
|
||||
echo [6] Process Office [%_dAoff%]
|
||||
) else (
|
||||
call :Cfgbg %_cWht% " [6] Process Office " %_cYel% "[%_dAoff%]"
|
||||
call :Cfgbg %_cWht% " [6] Process Office " %_cYel% "[%_dAoff%]"
|
||||
)
|
||||
if %_dArtv%==Yes (
|
||||
echo [7] Convert Office C2R-R2V [%_dArtv%]
|
||||
echo [7] Convert Office C2R-R2V [%_dArtv%]
|
||||
) else (
|
||||
call :Cfgbg %_cWht% " [7] Convert Office C2R-R2V " %_cYel% "[%_dArtv%]"
|
||||
call :Cfgbg %_cWht% " [7] Convert Office C2R-R2V " %_cYel% "[%_dArtv%]"
|
||||
)
|
||||
if %_dNxt%==No (
|
||||
if %sub_next% EQU 1 (
|
||||
call :Cfgbg %_cYel% " [V] Override Office C2R vNext " %_cYel% "[%_dNxt%]"
|
||||
) else (
|
||||
echo [V] Override Office C2R vNext [%_dNxt%]
|
||||
)
|
||||
) else (
|
||||
if %sub_next% EQU 1 (
|
||||
call :Cfgbg %_cYel% " [V] Override Office C2R vNext " %_cRed% "[%_dNxt%]"
|
||||
) else (
|
||||
echo [V] Override Office C2R vNext [%_dNxt%]
|
||||
)
|
||||
)
|
||||
if %winbuild% GEQ 10240 (
|
||||
if %_dWXKMS%==Yes (
|
||||
echo [X] Skip Windows KMS38 [%_dWXKMS%]
|
||||
echo [X] Skip Windows KMS38 [%_dWXKMS%]
|
||||
) else (
|
||||
call :Cfgbg %_cWht% " [X] Skip Windows KMS38 " %_cYel% "[%_dWXKMS%]"
|
||||
call :Cfgbg %_cWht% " [X] Skip Windows KMS38 " %_cYel% "[%_dWXKMS%]"
|
||||
))
|
||||
echo %line4%
|
||||
echo.
|
||||
echo Miscellaneous:
|
||||
echo.
|
||||
echo [8] Check Activation Status [vbs]
|
||||
echo [9] Check Activation Status [wmi]
|
||||
echo [8] Check Activation Status {vbs}
|
||||
echo [9] Check Activation Status {wmi}
|
||||
echo [S] Create $OEM$ Folder
|
||||
echo [D] Decode Embedded Binary Files
|
||||
echo [R] Read Me
|
||||
echo [E] Activate [External Mode]
|
||||
echo [E] Activate {External Mode}
|
||||
echo %line3%
|
||||
echo.
|
||||
if %_NCS% EQU 0 (
|
||||
popd
|
||||
)
|
||||
choice /c 1234567890ERSX /n /m "> Choose a menu option, or press 0 to Exit: "
|
||||
choice /c 1234567890EDRSVX /n /m "> Choose a menu option, or press 0 to Exit: "
|
||||
set _el=%errorlevel%
|
||||
if %_el%==14 if %winbuild% GEQ 10240 (if %SkipKMS38% EQU 0 (set SkipKMS38=1) else (set SkipKMS38=0))&goto :MainMenu
|
||||
if %_el%==13 (call :CreateOEM)&goto :MainMenu
|
||||
if %_el%==12 (call :CreateReadMe)&goto :MainMenu
|
||||
if %_el%==16 if %winbuild% GEQ 10240 (if %SkipKMS38% EQU 0 (set SkipKMS38=1) else (set SkipKMS38=0))&goto :MainMenu
|
||||
if %_el%==15 (if %vNextOverride% EQU 0 (set vNextOverride=1) else (set vNextOverride=0))&goto :MainMenu
|
||||
if %_el%==14 (call :CreateOEM)&goto :MainMenu
|
||||
if %_el%==13 (call :CreateReadMe)&goto :MainMenu
|
||||
if %_el%==12 (call :CreateBIN)&goto :MainMenu
|
||||
if %_el%==11 goto :E_IP
|
||||
if %_el%==10 (set _quit=1&goto :TheEnd)
|
||||
if %_el%==9 (call :casWm)&goto :MainMenu
|
||||
@@ -544,6 +587,7 @@ if %_dDbg%==Yes (
|
||||
set "_para=/d"
|
||||
if %ActWindows% EQU 0 set "_para=!_para! /o"
|
||||
if %ActOffice% EQU 0 set "_para=!_para! /w"
|
||||
if %vNextOverride% EQU 0 set "_para=!_para! /v"
|
||||
if %SkipKMS38% EQU 0 set "_para=!_para! /x"
|
||||
if %External% EQU 1 set "_para=!_para! /e %KMS_IP%"
|
||||
if %External% EQU 0 if %_AUR% EQU 0 set "_para=!_para! /m"
|
||||
@@ -629,7 +673,7 @@ IF %winbuild% LSS 14393 (
|
||||
)
|
||||
IF NOT "%EditionWMI%"=="" SET "EditionID=%EditionWMI%"
|
||||
IF /I "%EditionID%"=="IoTEnterprise" SET "EditionID=Enterprise"
|
||||
IF /I "%EditionID%"=="IoTEnterpriseS" SET "EditionID=EnterpriseS"
|
||||
IF /I "%EditionID%"=="IoTEnterpriseS" IF %winbuild% LSS 22610 SET "EditionID=EnterpriseS"
|
||||
IF /I "%EditionID%"=="ProfessionalSingleLanguage" SET "EditionID=Professional"
|
||||
IF /I "%EditionID%"=="ProfessionalCountrySpecific" SET "EditionID=Professional"
|
||||
IF /I "%EditionID%"=="EnterpriseG" SET Win10Gov=1
|
||||
@@ -715,7 +759,7 @@ if %ActWindows% EQU 0 (
|
||||
echo.&echo %_winos% %nKMS%
|
||||
if defined _eval echo %nEval%
|
||||
) else (
|
||||
echo.&echo Failed checking KMS Activation ID^(s^) for Windows.&echo Either sppsvc service or SppExtComObjHook.dll is not functional.&echo See Read Me for troubleshooting.
|
||||
echo.&echo Error: Failed checking KMS Activation ID^(s^) for Windows.&echo Either sppsvc service or SppExtComObjHook.dll is not functional.&call :CheckWS
|
||||
exit /b
|
||||
)
|
||||
)
|
||||
@@ -785,9 +829,12 @@ if %winbuild% GEQ 9200 (
|
||||
)
|
||||
if %winbuild% LSS 9200 (if %loc_off14% EQU 0 (echo.&echo No Installed Office %aword% Product Detected...&exit /b))
|
||||
)
|
||||
set sub_O365=0
|
||||
if %vNextOverride% EQU 1 if %AutoR2V% EQU 1 (
|
||||
set sub_o365=0
|
||||
set sub_proj=0
|
||||
set sub_vis=0
|
||||
set sub_vsio=0
|
||||
if %sub_next% EQU 1 reg delete HKCU\SOFTWARE\Microsoft\Office\16.0\Common\Licensing /f %_Nul3%
|
||||
)
|
||||
set Off1ce=1
|
||||
set _sC2R=sppoff
|
||||
set _fC2R=ReturnSPP
|
||||
@@ -836,7 +883,7 @@ if %sub_proj% EQU 0 for %%a in (ProjectPro,ProjectStd) do find /i "Office21%%a20
|
||||
call set /a prr_off21+=1
|
||||
find /i "Office21%%a2021VL" "!_temp!\sppchk.txt" %_Nul1% && call set /a prv_off21+=1
|
||||
)
|
||||
if %sub_vis% EQU 0 for %%a in (VisioPro,VisioStd) do find /i "Office21%%a2021R" "!_temp!\sppchk.txt" %_Nul1% && (
|
||||
if %sub_vsio% EQU 0 for %%a in (VisioPro,VisioStd) do find /i "Office21%%a2021R" "!_temp!\sppchk.txt" %_Nul1% && (
|
||||
call set /a prr_off21+=1
|
||||
find /i "Office21%%a2021VL" "!_temp!\sppchk.txt" %_Nul1% && call set /a prv_off21+=1
|
||||
)
|
||||
@@ -861,7 +908,7 @@ if %sub_proj% EQU 0 for %%a in (ProjectPro,ProjectStd) do find /i "Office19%%a20
|
||||
call set /a prr_off19+=1
|
||||
find /i "Office19%%a2019VL" "!_temp!\sppchk.txt" %_Nul1% && call set /a prv_off19+=1
|
||||
)
|
||||
if %sub_vis% EQU 0 for %%a in (VisioPro,VisioStd) do find /i "Office19%%a2019R" "!_temp!\sppchk.txt" %_Nul1% && (
|
||||
if %sub_vsio% EQU 0 for %%a in (VisioPro,VisioStd) do find /i "Office19%%a2019R" "!_temp!\sppchk.txt" %_Nul1% && (
|
||||
call set /a prr_off19+=1
|
||||
find /i "Office19%%a2019VL" "!_temp!\sppchk.txt" %_Nul1% && call set /a prv_off19+=1
|
||||
)
|
||||
@@ -893,7 +940,7 @@ if %sub_proj% EQU 0 for %%a in (ProjectPro,ProjectStd) do find /i "Office16%%aR"
|
||||
if %vol_off16% EQU 0 if %vol_off21% EQU 1 find /i "Office21%%a2021VL" "!_temp!\sppchk.txt" %_Nul1% && call set /a prv_off16+=1
|
||||
if %vol_off16% EQU 0 if %vol_off19% EQU 1 find /i "Office19%%a2019VL" "!_temp!\sppchk.txt" %_Nul1% && call set /a prv_off16+=1
|
||||
)
|
||||
if %sub_vis% EQU 0 for %%a in (VisioPro,VisioStd) do find /i "Office16%%aR" "!_temp!\sppchk.txt" %_Nul1% && (
|
||||
if %sub_vsio% EQU 0 for %%a in (VisioPro,VisioStd) do find /i "Office16%%aR" "!_temp!\sppchk.txt" %_Nul1% && (
|
||||
call set /a prr_off16+=1
|
||||
if %vol_off16% EQU 1 if %vol_off21% EQU 0 if %vol_off19% EQU 0 find /i "Office16%%aVL" "!_temp!\sppchk.txt" %_Nul1% && call set /a prv_off16+=1
|
||||
if %vol_off16% EQU 0 if %vol_off21% EQU 1 find /i "Office21%%a2021VL" "!_temp!\sppchk.txt" %_Nul1% && call set /a prv_off16+=1
|
||||
@@ -902,7 +949,7 @@ if %sub_vis% EQU 0 for %%a in (VisioPro,VisioStd) do find /i "Office16%%aR" "!_t
|
||||
)
|
||||
if %loc_off16% EQU 1 if %ret_off16% EQU 1 if %_O16MSI% EQU 0 if defined _C16R if %prv_off16% LSS %prr_off16% (set vol_off16=0&set run_off16=1)
|
||||
set "_qr=%_zz1% %spp% %_zz2% %_zz5%ApplicationID='%_oApp%' AND LicenseFamily like 'Office16O365%%' %_zz6% %_zz3% LicenseFamily %_zz4%"
|
||||
if %loc_off16% EQU 1 if %run_off16% EQU 0 if %sub_O365% EQU 0 if defined _C16R %_qr% %_Nul2% | find /i "O365" %_Nul1% && (
|
||||
if %loc_off16% EQU 1 if %run_off16% EQU 0 if %sub_o365% EQU 0 if defined _C16R %_qr% %_Nul2% | find /i "O365" %_Nul1% && (
|
||||
find /i "Office16MondoVL" "!_temp!\sppchk.txt" %_Nul1% || set run_off16=1
|
||||
)
|
||||
set run_off15=0
|
||||
@@ -940,7 +987,7 @@ if %loc_off19% EQU 1 if %vol_off19% EQU 0 (
|
||||
if %aC2R19% EQU 1 (echo.&echo %_mO19a%) else (echo.&echo %_mO19c%)
|
||||
)
|
||||
if %loc_off16% EQU 1 if %vol_off16% EQU 0 (
|
||||
if defined _C16R (if %aC2R16% EQU 1 (echo.&echo %_mO16a%) else (if %sub_O365% EQU 0 echo.&echo %_mO16c%)) else if %_O16MSI% EQU 1 (if %ret_off16% EQU 1 echo.&echo %_mO16m%)
|
||||
if defined _C16R (if %aC2R16% EQU 1 (echo.&echo %_mO16a%) else (if %sub_o365% EQU 0 echo.&echo %_mO16c%)) else if %_O16MSI% EQU 1 (if %ret_off16% EQU 1 echo.&echo %_mO16m%)
|
||||
)
|
||||
if %loc_off15% EQU 1 if %vol_off15% EQU 0 (
|
||||
if defined _C15R (if %aC2R15% EQU 1 (echo.&echo %_mO15a%) else (echo.&echo %_mO15c%)) else if %_O15MSI% EQU 1 (if %ret_off15% EQU 1 echo.&echo %_mO15m%)
|
||||
@@ -1378,6 +1425,20 @@ if not %xOS%==x86 if exist "%ProgramW6432%\Microsoft Office\Office%1\OSPP.VBS" s
|
||||
if not %xOS%==x86 if exist "%ProgramFiles(x86)%\Microsoft Office\Office%1\OSPP.VBS" set loc_off%1=1
|
||||
exit /b
|
||||
|
||||
:officeSub
|
||||
reg query %kNext% | findstr /i /r ".*retail" %_Nul2% | findstr /i /v "project visio" %_Nul2% | find /i "0x2" %_Nul1% && (set sub_o365=1)
|
||||
reg query %kNext% | findstr /i /r ".*retail" %_Nul2% | findstr /i /v "project visio" %_Nul2% | find /i "0x3" %_Nul1% && (set sub_o365=1)
|
||||
reg query %kNext% | findstr /i /r ".*volume" %_Nul2% | findstr /i /v "project visio" %_Nul2% | find /i "0x2" %_Nul1% && (set sub_o365=1)
|
||||
reg query %kNext% | findstr /i /r ".*volume" %_Nul2% | findstr /i /v "project visio" %_Nul2% | find /i "0x3" %_Nul1% && (set sub_o365=1)
|
||||
reg query %kNext% | findstr /i /r "project.*" %_Nul2% | find /i "0x2" %_Nul1% && set sub_proj=1
|
||||
reg query %kNext% | findstr /i /r "project.*" %_Nul2% | find /i "0x3" %_Nul1% && set sub_proj=1
|
||||
reg query %kNext% | findstr /i /r "visio.*" %_Nul2% | find /i "0x2" %_Nul1% && set sub_vsio=1
|
||||
reg query %kNext% | findstr /i /r "visio.*" %_Nul2% | find /i "0x3" %_Nul1% && set sub_vsio=1
|
||||
if %sub_o365% EQU 1 set sub_next=1
|
||||
if %sub_proj% EQU 1 set sub_next=1
|
||||
if %sub_vsio% EQU 1 set sub_next=1
|
||||
exit /b
|
||||
|
||||
:insKey
|
||||
set S_OK=1
|
||||
echo.
|
||||
@@ -1488,12 +1549,13 @@ if %_dDbg%==Yes (
|
||||
set "_para=/d /a"
|
||||
if %ActWindows% EQU 0 set "_para=!_para! /o"
|
||||
if %ActOffice% EQU 0 set "_para=!_para! /w"
|
||||
if %vNextOverride% EQU 0 set "_para=!_para! /v"
|
||||
if %SkipKMS38% EQU 0 set "_para=!_para! /x"
|
||||
goto :DoDebug
|
||||
)
|
||||
if %_verb% EQU 1 (
|
||||
if %Silent% EQU 0 if %_Debug% EQU 0 (
|
||||
mode con cols=100 lines=32
|
||||
mode con cols=100 lines=34
|
||||
%_Nul3% %_psc% "&%_buf%"
|
||||
if %Unattend% EQU 0 title %_title%
|
||||
)
|
||||
@@ -1540,7 +1602,7 @@ if %SSppHook% NEQ 0 if not exist %w7inf% (
|
||||
echo [WTR]
|
||||
echo Name="KMS_VL_ALL"
|
||||
echo.
|
||||
echo [WTR.W8]
|
||||
echo [WTR.*]
|
||||
echo NotifyUser="No"
|
||||
echo.
|
||||
echo [System.Registry]
|
||||
@@ -1566,7 +1628,7 @@ if %winbuild% GEQ 9600 (
|
||||
)
|
||||
if %_verb% EQU 1 (
|
||||
if %Silent% EQU 0 if %_Debug% EQU 0 (
|
||||
mode con cols=100 lines=32
|
||||
mode con cols=100 lines=34
|
||||
%_Nul3% %_psc% "&%_buf%"
|
||||
if %Unattend% EQU 0 title %_title%
|
||||
)
|
||||
@@ -1633,7 +1695,7 @@ if %OsppHook% EQU 0 (
|
||||
reg delete "%IFEO%\%1" /f %_Null%
|
||||
)
|
||||
if %OsppHook% NEQ 0 for %%A in (Debugger,VerifierDlls,VerifierDebug,VerifierFlags,GlobalFlag,KMS_Emulation,KMS_ActivationInterval,KMS_RenewalInterval,Office2010,Office2013,Office2016,Office2019) do reg delete "%IFEO%\%1" /v %%A /f %_Null%
|
||||
reg add "HKLM\%OPPk%" /f /v KeyManagementServiceName /t REG_SZ /d "0.0.0.0" %_Nul3%
|
||||
reg add "HKLM\%OPPk%" /f /v KeyManagementServiceName /t REG_SZ /d "%_uIP%" %_Nul3%
|
||||
reg add "HKLM\%OPPk%" /f /v KeyManagementServicePort /t REG_SZ /d "1688" %_Nul3%
|
||||
goto :eof
|
||||
|
||||
@@ -1705,15 +1767,9 @@ echo.
|
||||
echo Verify that Antivirus protection is OFF or the registry path is excluded.
|
||||
)
|
||||
|
||||
set E_WMI=0
|
||||
for /f "skip=2 tokens=2*" %%a in ('reg query HKLM\SYSTEM\CurrentControlSet\Services\WinMgmt /v Start %_Nul6%') do if /i %%b equ 0x4 set E_WMI=1
|
||||
set "_qr=%_zz1% Win32_ComputerSystem %_zz3% CreationClassName %_zz4%"
|
||||
%_qr% %_Nul2% | find /i "computersystem" %_Nul1%
|
||||
if %errorlevel% NEQ 0 set E_WMI=1
|
||||
set "_qr=%_zz1% SoftwareLicensingService %_zz3% Version %_zz4%"
|
||||
%_qr% %_Nul2% | find /i "." %_Nul1%
|
||||
if %errorlevel% NEQ 0 set E_WMI=1
|
||||
if %E_WMI% EQU 1 (
|
||||
set WMIe=0
|
||||
call :CheckWS
|
||||
if %WMIe% EQU 1 (
|
||||
echo.
|
||||
echo %_err%
|
||||
echo Failed running WMI query check.
|
||||
@@ -1722,25 +1778,38 @@ echo Verify that these services are working correctly:
|
||||
echo Windows Management Instrumentation [WinMgmt]
|
||||
echo Software Protection [sppsvc]
|
||||
)
|
||||
goto :eof
|
||||
|
||||
:CheckWS
|
||||
set "_qrw=%_zz1% Win32_ComputerSystem %_zz3% CreationClassName %_zz4%"
|
||||
set "_qrs=%_zz1% SoftwareLicensingService %_zz3% Version %_zz4%"
|
||||
|
||||
%_qrs% %_Nul2% | findstr /r "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*" %_Nul1% || (
|
||||
set WMIe=1
|
||||
%_qrw% %_Nul2% | find /i "ComputerSystem" %_Nul1% && (
|
||||
echo Error: SPP is not responding
|
||||
) || (
|
||||
echo Error: WMI ^& SPP are not responding
|
||||
)
|
||||
)
|
||||
goto :eof
|
||||
|
||||
:cREG
|
||||
reg add "HKLM\%SPPk%" /f /v KeyManagementServiceName /t REG_SZ /d "0.0.0.0"
|
||||
reg add "HKLM\%SPPk%" /f /v KeyManagementServiceName /t REG_SZ /d "%_uIP%"
|
||||
reg add "HKLM\%SPPk%" /f /v KeyManagementServicePort /t REG_SZ /d "1688"
|
||||
reg delete "HKLM\%SPPk%" /f /v DisableDnsPublishing
|
||||
reg delete "HKLM\%SPPk%" /f /v DisableKeyManagementServiceHostCaching
|
||||
reg delete "HKLM\%SPPk%\%_wApp%" /f
|
||||
if %winbuild% GEQ 9200 (
|
||||
if not %xOS%==x86 (
|
||||
reg add "HKLM\%SPPk%" /f /v KeyManagementServiceName /t REG_SZ /d "0.0.0.0" /reg:32
|
||||
reg add "HKLM\%SPPk%" /f /v KeyManagementServiceName /t REG_SZ /d "%_uIP%" /reg:32
|
||||
reg add "HKLM\%SPPk%" /f /v KeyManagementServicePort /t REG_SZ /d "1688" /reg:32
|
||||
reg delete "HKLM\%SPPk%\%_oApp%" /f /reg:32
|
||||
reg add "HKLM\%SPPk%\%_oApp%" /f /v KeyManagementServiceName /t REG_SZ /d "0.0.0.0" /reg:32
|
||||
reg add "HKLM\%SPPk%\%_oApp%" /f /v KeyManagementServiceName /t REG_SZ /d "%_uIP%" /reg:32
|
||||
reg add "HKLM\%SPPk%\%_oApp%" /f /v KeyManagementServicePort /t REG_SZ /d "1688" /reg:32
|
||||
)
|
||||
reg delete "HKLM\%SPPk%\%_oApp%" /f
|
||||
reg add "HKLM\%SPPk%\%_oApp%" /f /v KeyManagementServiceName /t REG_SZ /d "0.0.0.0"
|
||||
reg add "HKLM\%SPPk%\%_oApp%" /f /v KeyManagementServiceName /t REG_SZ /d "%_uIP%"
|
||||
reg add "HKLM\%SPPk%\%_oApp%" /f /v KeyManagementServicePort /t REG_SZ /d "1688"
|
||||
)
|
||||
if %winbuild% GEQ 9600 (
|
||||
@@ -1750,7 +1819,7 @@ reg delete "HKU\S-1-5-20\%SPPk%\%_oApp%" /f
|
||||
if %OsppHook% EQU 0 (
|
||||
goto :eof
|
||||
)
|
||||
reg add "HKLM\%OPPk%" /f /v KeyManagementServiceName /t REG_SZ /d "0.0.0.0"
|
||||
reg add "HKLM\%OPPk%" /f /v KeyManagementServiceName /t REG_SZ /d "%_uIP%"
|
||||
reg delete "HKLM\%OPPk%" /f /v KeyManagementServicePort
|
||||
reg delete "HKLM\%OPPk%" /f /v DisableDnsPublishing
|
||||
reg delete "HKLM\%OPPk%" /f /v DisableKeyManagementServiceHostCaching
|
||||
@@ -1872,6 +1941,43 @@ echo Press any key to continue...
|
||||
pause >nul
|
||||
goto :eof
|
||||
|
||||
:CreateBIN
|
||||
cls
|
||||
if exist "!_oem!\KMS_VL_ALL_AIO-bin\*.dll" if exist "!_oem!\KMS_VL_ALL_AIO-bin\*.cab" (
|
||||
echo.&echo %line3%&echo.
|
||||
echo Binaries Folder already exist...
|
||||
echo "!_oem!\KMS_VL_ALL_AIO-bin"
|
||||
echo.
|
||||
echo Manually remove it if you wish to create a fresh copy.
|
||||
echo.&echo %line3%&echo.
|
||||
echo Press any key to continue...
|
||||
pause >nul
|
||||
goto :eof
|
||||
)
|
||||
if not exist "!_oem!\KMS_VL_ALL_AIO-bin\*.dll" mkdir "!_oem!\KMS_VL_ALL_AIO-bin"
|
||||
pushd "!_oem!\KMS_VL_ALL_AIO-bin"
|
||||
%_Nul3% rmdir /s /q .
|
||||
setlocal
|
||||
set "TMP=%SystemRoot%\Temp"
|
||||
set "TEMP=%SystemRoot%\Temp"
|
||||
%_Nul3% %_psc% "cd -Lit($env:__CD__); $f=[IO.File]::ReadAllText('!_batp!') -split ':embdbin\:.*'; iex($f[1]); 2..6|%%{[BAT85]::Decode($_, $f[$_])}"
|
||||
endlocal
|
||||
%_Nul3% ren 2 SppExtComObjHook-x86.dll
|
||||
%_Nul3% ren 3 SppExtComObjHook-x64.dll
|
||||
%_Nul3% ren 4 SppExtComObjHook-arm64.dll
|
||||
%_Nul3% ren 5 cleanospp-x86.cab
|
||||
%_Nul3% ren 6 cleanospp-x64.cab
|
||||
popd
|
||||
echo.&echo %line3%&echo.
|
||||
echo Binaries Folder Created...
|
||||
echo.
|
||||
echo "!_oem!\KMS_VL_ALL_AIO-bin"
|
||||
echo.&echo %line3%&echo.
|
||||
echo.
|
||||
echo Press any key to continue...
|
||||
pause >nul
|
||||
goto :eof
|
||||
|
||||
:C2RR2V
|
||||
set RanR2V=1
|
||||
set "_SLMGR=%SysPath%\slmgr.vbs"
|
||||
@@ -1887,6 +1993,7 @@ set error1=%errorlevel%
|
||||
sc query OfficeSvc %_Nul3%
|
||||
set error2=%errorlevel%
|
||||
if %error1% EQU 1060 if %error2% EQU 1060 (
|
||||
echo Error: Office C2R service is not detected
|
||||
goto :%_fC2R%
|
||||
)
|
||||
set _Office16=0
|
||||
@@ -1904,6 +2011,7 @@ for /f "skip=2 tokens=2*" %%a in ('"reg query HKLM\SOFTWARE\WOW6432Node\Microsof
|
||||
set _Office15=1
|
||||
)
|
||||
if %_Office16% EQU 0 if %_Office15% EQU 0 (
|
||||
echo Error: Office C2R InstallPath is not detected
|
||||
goto :%_fC2R%
|
||||
)
|
||||
|
||||
@@ -1933,13 +2041,13 @@ set "_LicensesPath=%_InstallRoot%\Licenses16"
|
||||
set "_Integrator=%_InstallRoot%\integration\integrator.exe"
|
||||
for /f "skip=2 tokens=2*" %%a in ('"reg query %_PRIDs% /v ActiveConfiguration" %_Nul6%') do set "_PRIDs=%_PRIDs%\%%b"
|
||||
if "%_ProductIds%"=="" (
|
||||
if %_Office15% EQU 0 (goto :%_fC2R%) else (goto :Reg15istry)
|
||||
if %_Office15% EQU 0 (echo Error: Office C2R ProductIDs are not detected&goto :%_fC2R%) else (goto :Reg15istry)
|
||||
)
|
||||
if not exist "%_LicensesPath%\ProPlus*.xrm-ms" (
|
||||
if %_Office15% EQU 0 (goto :%_fC2R%) else (goto :Reg15istry)
|
||||
if %_Office15% EQU 0 (echo Error: Office C2R Licenses files are not detected&goto :%_fC2R%) else (goto :Reg15istry)
|
||||
)
|
||||
if not exist "%_Integrator%" (
|
||||
if %_Office15% EQU 0 (goto :%_fC2R%) else (goto :Reg15istry)
|
||||
if %_Office15% EQU 0 (echo Error: Office C2R Licenses Integrator is not detected&goto :%_fC2R%) else (goto :Reg15istry)
|
||||
)
|
||||
if exist "%_LicensesPath%\Word2019VL_KMS_Client_AE*.xrm-ms" (set "_tag=2019"&set "_ons= 2019")
|
||||
if exist "%_LicensesPath%\Word2021VL_KMS_Client_AE*.xrm-ms" (set _LTSC=1)
|
||||
@@ -1990,13 +2098,13 @@ if exist "%ProgramFiles%\Microsoft Office\Office15\OSPP.VBS" (
|
||||
set "_OSPP15VBS=%ProgramFiles(x86)%\Microsoft Office\Office15\OSPP.VBS"
|
||||
)
|
||||
if "%_Product15Ids%"=="" (
|
||||
if %_Office16% EQU 0 (goto :%_fC2R%) else (goto :CheckC2R)
|
||||
if %_Office16% EQU 0 (echo Error: Office 2013 C2R ProductIDs are not detected&goto :%_fC2R%) else (goto :CheckC2R)
|
||||
)
|
||||
if not exist "%_Licenses15Path%\ProPlus*.xrm-ms" (
|
||||
if %_Office16% EQU 0 (goto :%_fC2R%) else (goto :CheckC2R)
|
||||
if %_Office16% EQU 0 (echo Error: Office 2013 C2R Licenses files are not detected&goto :%_fC2R%) else (goto :CheckC2R)
|
||||
)
|
||||
if %winbuild% LSS 9200 if not exist "%_OSPP15VBS%" (
|
||||
if %_Office16% EQU 0 (goto :%_fC2R%) else (goto :CheckC2R)
|
||||
if %_Office16% EQU 0 (echo Error: Office 2013 C2R Licensing tool OSPP.vbs is not detected&goto :%_fC2R%) else (goto :CheckC2R)
|
||||
)
|
||||
|
||||
:CheckC2R
|
||||
@@ -2022,24 +2130,10 @@ set "_wmi="
|
||||
set "_qr=%_zz7% %_sps% %_zz3% Version %_zz8%"
|
||||
for /f "tokens=2 delims==" %%# in ('%_qr%') do set _wmi=%%#
|
||||
if "%_wmi%"=="" (
|
||||
echo Error: %_sps% WMI version is not detected
|
||||
call :CheckWS
|
||||
goto :%_fC2R%
|
||||
)
|
||||
set _Identity=0
|
||||
set _vNext=0
|
||||
dir /b /s /a:-d "!_Local!\Microsoft\Office\Licenses\*1*" %_Nul3% && set _Identity=1
|
||||
dir /b /s /a:-d "!ProgramData!\Microsoft\Office\Licenses\*1*" %_Nul3% && set _Identity=1
|
||||
set kNext=HKCU\SOFTWARE\Microsoft\Office\16.0\Common\Licensing\LicensingNext
|
||||
if %_Identity% EQU 1 reg query %kNext% /v MigrationToV5Done %_Nul2% | find /i "0x1" %_Nul1% && set _vNext=1
|
||||
if %_vNext% EQU 1 (
|
||||
reg query %kNext% | findstr /i /r ".*retail" %_Nul2% | findstr /i /v "project visio" %_Nul2% | find /i "0x2" %_Nul1% && (set sub_O365=1)
|
||||
reg query %kNext% | findstr /i /r ".*retail" %_Nul2% | findstr /i /v "project visio" %_Nul2% | find /i "0x3" %_Nul1% && (set sub_O365=1)
|
||||
reg query %kNext% | findstr /i /r ".*volume" %_Nul2% | findstr /i /v "project visio" %_Nul2% | find /i "0x2" %_Nul1% && (set sub_O365=1)
|
||||
reg query %kNext% | findstr /i /r ".*volume" %_Nul2% | findstr /i /v "project visio" %_Nul2% | find /i "0x3" %_Nul1% && (set sub_O365=1)
|
||||
reg query %kNext% | findstr /i /r "project.*" %_Nul2% | find /i "0x2" %_Nul1% && set sub_proj=1
|
||||
reg query %kNext% | findstr /i /r "project.*" %_Nul2% | find /i "0x3" %_Nul1% && set sub_proj=1
|
||||
reg query %kNext% | findstr /i /r "visio.*" %_Nul2% | find /i "0x2" %_Nul1% && set sub_vis=1
|
||||
reg query %kNext% | findstr /i /r "visio.*" %_Nul2% | find /i "0x3" %_Nul1% && set sub_vis=1
|
||||
)
|
||||
set _Retail=0
|
||||
set "_ocq=ApplicationID='%_oApp%' AND LicenseStatus='1' AND PartialProductKey is not NULL"
|
||||
if %WMI_VBS% EQU 0 wmic path %_spp% where (%_ocq%) get Description %_Nul2% |findstr /V /R "^$" >"!_temp!\crvRetail.txt"
|
||||
@@ -2181,20 +2275,20 @@ find /i "Office16MondoVL_KMS_Client" "!_temp!\crvVolume.txt" %_Nul1% && (
|
||||
for %%a in (O365ProPlus,O365Business,O365SmallBusPrem,O365HomePrem,O365EduCloud) do set _%%a=0
|
||||
)
|
||||
)
|
||||
if %sub_O365% EQU 1 (
|
||||
if %sub_o365% EQU 1 (
|
||||
for %%a in (%_Suites%) do set _%%a=0
|
||||
echo.
|
||||
echo Microsoft Office is activated with a subscription.
|
||||
echo Microsoft Office is activated with a vNext license.
|
||||
)
|
||||
if %sub_proj% EQU 1 (
|
||||
for %%a in (%_PrjSKU%) do set _%%a=0
|
||||
echo.
|
||||
echo Microsoft Project is activated with a subscription.
|
||||
echo Microsoft Project is activated with a vNext license.
|
||||
)
|
||||
if %sub_vis% EQU 1 (
|
||||
if %sub_vsio% EQU 1 (
|
||||
for %%a in (%_VisSKU%) do set _%%a=0
|
||||
echo.
|
||||
echo Microsoft Visio is activated with a subscription.
|
||||
echo Microsoft Visio is activated with a vNext license.
|
||||
)
|
||||
|
||||
for %%a in (%_RetIds%,ProPlus) do if !_%%a! EQU 1 (
|
||||
@@ -2575,7 +2669,7 @@ goto :%_sC2R%
|
||||
|
||||
:casVm
|
||||
cls
|
||||
mode con cols=100 lines=32
|
||||
mode con cols=100 lines=34
|
||||
%_Nul3% %_psc% "&%_buf%"
|
||||
title Check Activation Status [vbs]
|
||||
setlocal
|
||||
@@ -2756,7 +2850,7 @@ goto :eof
|
||||
|
||||
:casWm
|
||||
cls
|
||||
mode con cols=100 lines=32
|
||||
mode con cols=100 lines=34
|
||||
%_Nul3% %_psc% "&%_buf%"
|
||||
title Check Activation Status [wmi]
|
||||
setlocal
|
||||
@@ -2772,12 +2866,11 @@ set "spp_get=Description, DiscoveredKeyManagementServiceMachineName, DiscoveredK
|
||||
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 _Identity=0
|
||||
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
|
||||
if %winbuild% LSS 9200 if not exist "%SystemRoot%\servicing\Packages\Microsoft-Windows-PowerShell-WTR-Package~*.mum" set _Identity=0
|
||||
set _prsh=1
|
||||
for %%# in (powershell.exe) do @if "%%~$PATH:#"=="" set _prsh=0
|
||||
if %winbuild% LSS 9200 if not exist "%SystemRoot%\servicing\Packages\Microsoft-Windows-PowerShell-WTR-Package~*.mum" set _prsh=0
|
||||
|
||||
set OsppHook=1
|
||||
sc query osppsvc >nul 2>&1
|
||||
@@ -2883,7 +2976,7 @@ 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 (
|
||||
if %_gpr% GEQ 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]
|
||||
)
|
||||
@@ -3017,7 +3110,7 @@ goto :eof
|
||||
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 {$_ -Ne 'InstalledGraceKey' -And $_ -Ne 'MigrationToV5Done' -And $_ -Ne 'test' -And $_ -Ne 'unknown'}
|
||||
$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."
|
||||
@@ -3112,15 +3205,20 @@ function PrintLicensesInformation
|
||||
$license = (Get-Content -Encoding Unicode $_.FullName | ConvertFrom-Json).License
|
||||
$decodedLicense = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($license)) | ConvertFrom-Json
|
||||
$licenseType = $decodedLicense.LicenseType
|
||||
$userId = $decodedLicense.Metadata.UserId
|
||||
$identitiesRegkey = Get-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Office\16.0\Common\Identity\Identities\${userId}*" -ErrorAction Ignore
|
||||
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 (($decodedLicense.ExpiresOn -Eq $null) -Or
|
||||
((Get-Date) -Lt (Get-Date $decodedLicense.ExpiresOn)))
|
||||
ElseIf ((Get-Date) -Lt (Get-Date $expiry))
|
||||
{
|
||||
$licenseState = "Licensed"
|
||||
}
|
||||
@@ -3138,11 +3236,11 @@ function PrintLicensesInformation
|
||||
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;
|
||||
Expiration = $decodedLicense.ExpiresOn;
|
||||
TenantId = $decodedLicense.Metadata.TenantId;
|
||||
} | ConvertTo-Json
|
||||
}
|
||||
@@ -3157,11 +3255,11 @@ function PrintLicensesInformation
|
||||
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;
|
||||
Expiration = $decodedLicense.ExpiresOn;
|
||||
TenantId = $decodedLicense.Metadata.TenantId;
|
||||
} | ConvertTo-Json
|
||||
}
|
||||
@@ -3190,6 +3288,11 @@ PrintLicensesInformation -Mode "Device"
|
||||
if "%~1"=="" exit /b
|
||||
goto :%1 %_Nul2%
|
||||
|
||||
:: Windows 11 [Ni]
|
||||
:59eb965c-9150-42b7-a0ec-22151b9897c5
|
||||
set "_key=KBN8V-HFGQ4-MGXVD-347P6-PDQGT" &:: IoT Enterprise LTSC
|
||||
exit /b
|
||||
|
||||
:: Windows 11 [Co]
|
||||
:ca7df2e3-5ea0-47b8-9ac1-b1be4d8edd69
|
||||
set "_key=37D7F-N49CB-WQR8W-TBJ73-FM8RX" &:: SE {Cloud}
|
||||
@@ -3987,6 +4090,23 @@ Add-Type -Language CSharp -TypeDefinition @"
|
||||
private static byte[] n4b(){ return new byte[4]{(byte)(n>>24),(byte)(n>>16),(byte)(n>>8),(byte)n}; } private static long n=0; }
|
||||
"@; function X([int]$r=1){ [BAT85]::Decode($d+"\\SppExtComObjHook.dll", $f[$r+1]) }; function Y([int]$r=1){ $tmp="$r._"; [BAT85]::Decode($tmp, $f[$r+1]); expand $d\$tmp -F:* -R; del $tmp -force }
|
||||
|
||||
<#
|
||||
:: 1st Block (above):
|
||||
:: Powershell code which decode the embedded files
|
||||
:: https://github.com/AveYo/Compressed2TXT
|
||||
::
|
||||
:: 2nd Block:
|
||||
:: SppExtComObjHook-x86.dll SHA-1: da8f931c7f3bc6643e20063e075cd8fa044b53ae
|
||||
:: 3rd Block:
|
||||
:: SppExtComObjHook-x64.dll SHA-1: 684103f5c312ae956e66a02b965d9aad59710745
|
||||
:: 4th Block:
|
||||
:: SppExtComObjHook-arm64.dll SHA-1: 1139ae6243934ca621e6d4ed2e2f34cc130ef88a
|
||||
:: 5th Block:
|
||||
:: cleanospp-x86.cab SHA-1 cab: 77a936d8986fd46e098afe583fd2ebfb6af25031 / EXE: 39ed8659e7ca16aaccb86def94ce6cec4c847dd6
|
||||
:: 6th Block:
|
||||
:: cleanospp-x64.cab SHA-1 cab: 2ead12fea8eaf8f0d71bbcc06db84c7ba1879ca3 / EXE: d30a0e4e5911d3ca705617d17225372731c770e2
|
||||
#>
|
||||
|
||||
:embdbin:
|
||||
::O;Iru0{{R31ONa4|Nj60xBvhE00000KmY($0000000000000000000000000000000000000000$N(HU4j/M?0JI6sA.Dld&]^51X?&ZOa(KpHVQnB|VQy}3bRc47
|
||||
::AaZqXAZczOL{C#7ZEs{{E+5L|Bme,a00000v}wA@[CekK[CekK[CekK;YU#E]9a;N[CenL)FoL=XL{Y5^z2XSXL{C}[d)tLQfXso[CekK00000000000000000000
|
||||
@@ -4835,12 +4955,6 @@ Add-Type -Language CSharp -TypeDefinition @"
|
||||
<li>Some security programs will report infected files due to KMS emulating (see source code near the end),<br />
|
||||
this is false-positive, as long as you download the file from the trusted Home Page.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>wmic.exe tool is removed from Windows 11 starting build 22483, then added as optional feature starting build 22572.
|
||||
<div>In case the tool is not available, KMS_VL_ALL v45 and later incorporate simple VBScripts to query and execute WMI functions.<br />
|
||||
<div>This require Windows Script Host to be working and <u>not disabled</u>.<br />
|
||||
<div>Furthermore, be advised, this may increase the ratio for marking the script(s) as a security threat.</div></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Home Page:<br />
|
||||
<a href="https://forums.mydigitallife.net/posts/838808/" target="_blank">https://forums.mydigitallife.net/posts/838808/</a><br />
|
||||
@@ -4922,8 +5036,10 @@ Add-Type -Language CSharp -TypeDefinition @"
|
||||
<h2 id="Supported">Supported Products</h2>
|
||||
<p>Volume-capable:</p>
|
||||
<ul>
|
||||
<li>Windows 10/11:<br />
|
||||
Enterprise, Enterprise LTSC/LTSB, Enterprise G, Enterprise multi-session, Enterprise, Education, Pro, Pro Workstation, Pro Education, Home, Home Single Language, Home China</li><br />
|
||||
<li>Windows 11:<br />
|
||||
Enterprise, Enterprise LTSC, IoT Enterprise LTSC, Enterprise G, SE (CloudEdition), Education, Pro, Pro Workstation, Pro Education, Home, Home Single Language, Home China</li><br />
|
||||
<li>Windows 10:<br />
|
||||
Enterprise, Enterprise LTSC/LTSB, Enterprise G, Education, Pro, Pro Workstation, Pro Education, Home, Home Single Language, Home China</li><br />
|
||||
<li>Windows 8.1:<br />
|
||||
Enterprise, Pro, Pro with Media Center, Core, Core Single Language, Core China, Pro for Students, Bing, Bing Single Language, Bing China, Embedded Industry Enterprise/Pro/Automotive</li><br />
|
||||
<li>Windows 8:<br />
|
||||
@@ -4951,6 +5067,12 @@ Add-Type -Language CSharp -TypeDefinition @"
|
||||
<ul>
|
||||
<li>Windows 8 Core edition variants, Pro with Media Center</li>
|
||||
</ul>
|
||||
<p>Windows 10/11 Enterprise multi-session:</p>
|
||||
<ul>
|
||||
<li>This edition is officially supported for Azure Virtual Desktop service</li>
|
||||
<li>With 2022 updates, the edition KMS activation will not work without AVD license</li>
|
||||
<li>For more info, see <a href="https://docs.microsoft.com/en-us/azure/virtual-desktop/windows-10-multisession-faq" target="_blank">here</a></li>
|
||||
</ul>
|
||||
<p>Notes:</p>
|
||||
<ul>
|
||||
<li>supported <u>Windows</u> products do not need volume conversion, only the GVLK (KMS key) is needed, which the script will install accordingly.</li>
|
||||
@@ -4964,15 +5086,16 @@ Add-Type -Language CSharp -TypeDefinition @"
|
||||
<li>Windows editions which do not support KMS activation by design:<br />
|
||||
Windows Evaluation Editions<br />
|
||||
Windows 7 (Starter, HomeBasic, HomePremium, Ultimate)<br />
|
||||
Windows 10 (Cloud "S", IoTEnterprise, IoTEnterpriseS, ProfessionalSingleLanguage... etc)<br />
|
||||
Windows Server (Server Foundation, Storage Server, Home Server 2011... etc)</li>
|
||||
Windows 10 (Cloud "S", IoT Enterprise, IoT EnterpriseS, Professional SingleLanguage, Professional China... etc)<br />
|
||||
Windows 11 (IoT Enterprise, Professional SingleLanguage, Professional China... etc)<br />
|
||||
Windows Server (Azure Stack HCI, Server Foundation, Storage Server, Home Server 2011... etc)</li>
|
||||
</ul>
|
||||
<p>______________________________</p>
|
||||
<h3>Office C2R 'Your license isn't genuine' notification banner</h3>
|
||||
<ul>
|
||||
<li>Office Click-to-Run builds (since February 2021) that are activated with KMS checks the existence of the KMS server name in the registry.</li>
|
||||
<li>If KMS server is not present, a banner is shown in Office programs notifying that "Office isn't licensed properly", see <a href="https://i.imgur.com/gLFxssD.png" target="_blank">here</a>.</li>
|
||||
<li>Therefore in manual mode, <code>KeyManagementServiceName</code> value containing a non-existent IP address <strong>0.0.0.0</strong> will be kept in the below registry keys:
|
||||
<li>Therefore in manual mode, <code>KeyManagementServiceName</code> value containing an internal private-network IP address <strong>172.16.0.2</strong> will be kept in the below registry keys:
|
||||
<div><code>HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform</code><br />
|
||||
<code>HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform</code></div></li>
|
||||
<li>This is perfectly fine to keep, and it does not affect Windows or Office activation.</li>
|
||||
@@ -5000,8 +5123,8 @@ Add-Type -Language CSharp -TypeDefinition @"
|
||||
<a href="https://forums.mydigitallife.net/posts/1150042/" target="_blank">Office-C2R-Retail2Volume</a></p>
|
||||
<p>You can also use other tools that can convert licensing:</p>
|
||||
<ul>
|
||||
<li><a href="https://forums.mydigitallife.net/posts/1125229/" target="_blank">OfficeRTool</a> (supports converting and activating Office UWP)</li>
|
||||
<li><a href="https://forums.mydigitallife.net/threads/78950/" target="_blank">Office Tool Plus</a></li>
|
||||
<li><a href="https://forums.mydigitallife.net/posts/1125229/" target="_blank">OfficeRTool</a></li>
|
||||
</ul>
|
||||
<hr />
|
||||
<br />
|
||||
@@ -5126,6 +5249,16 @@ Add-Type -Language CSharp -TypeDefinition @"
|
||||
<ul>
|
||||
<li>from the menu, press <b>7</b> to change the state to <strong>Convert Office C2R-R2V</strong> <b>[No]</b></li>
|
||||
</ul>
|
||||
<p>______________________________</p>
|
||||
|
||||
<h3 id="ConfOVR">Override Office C2R vNext</h3>
|
||||
<p>The script is set by default to override Office C2R vNext license (subscription or lifetime) or its residue.</p>
|
||||
<p>However, if you prefer to turn OFF this function:</p>
|
||||
<ul>
|
||||
<li>from the menu, press letter <b>V</b> to change the state to <strong>Override Office C2R vNext</strong> <b>[No]</b></li>
|
||||
</ul>
|
||||
<p>Notice:<br />
|
||||
If Office vNext license is detected, the option and state will be highlighted, to draw the user attention</p>
|
||||
<p>______________________________</p>
|
||||
|
||||
<h3 id="ConfW10">Skip Windows 10/11 KMS 2038</h3>
|
||||
@@ -5256,6 +5389,9 @@ Add-Type -Language CSharp -TypeDefinition @"
|
||||
<ul>
|
||||
<li>Turn OFF Office C2R-R2V conversion:<br /><code>/c</code></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Do not override Office C2R vNext:<br /><code>/v</code></li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>Do not skip Windows 10/11 KMS38:<br /><code>/x</code></li>
|
||||
</ul>
|
||||
@@ -5278,7 +5414,7 @@ Add-Type -Language CSharp -TypeDefinition @"
|
||||
<li>Uninstall switch <code>/r</code> always takes precedence over Activation switches</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>If these Configuration switches <code>/w /o /c /x</code> are specified without other switches, they only change the corresponding state in Menu.</li>
|
||||
<li>If these Configuration switches <code>/w /o /c /v /x</code> are specified without other switches, they only change the corresponding state in Menu.</li>
|
||||
</ul>
|
||||
<ul>
|
||||
<li>If Process Windows/Office switches <code>/o /w</code> are specified together, the last one takes precedence.</li>
|
||||
@@ -5465,7 +5601,8 @@ reg add HKLM\SOFTWARE\Classes\cmdfile\shell\runas\command /f /v "" /t REG_EXPAND
|
||||
<a href="#ConfDbg">Debug Mode</a><br />
|
||||
<a href="#ConfAct">Activation Choice</a><br />
|
||||
<a href="#ConfC2R">Office C2R-R2V</a><br />
|
||||
<a href="#ConfW10">KMS38 Win10</a><br /><br />
|
||||
<a href="#ConfOVR">Office C2R vNext</a><br />
|
||||
<a href="#ConfW10">KMS38 Win 10/11</a><br /><br />
|
||||
<a href="#OptMisc">Miscellaneous Options</a><br />
|
||||
<a href="#MiscChk">Activation Status</a><br />
|
||||
<a href="#MiscOEM">$OEM$ Folder</a><br /><br />
|
||||
@@ -5511,6 +5648,17 @@ if %Unattend% EQU 1 goto :eof
|
||||
pause >nul
|
||||
goto :eof
|
||||
|
||||
:E_LM
|
||||
echo %_err%
|
||||
echo Windows PowerShell is not properly responding.
|
||||
echo check if it is working, and not locked in Constrained Language Mode.
|
||||
echo.
|
||||
echo Press any key to exit.
|
||||
if %_Debug% EQU 1 goto :eof
|
||||
if %Unattend% EQU 1 goto :eof
|
||||
pause >nul
|
||||
goto :eof
|
||||
|
||||
:E_VBS
|
||||
echo %_err%
|
||||
echo Windows Script Host is disabled.
|
||||
@@ -5522,6 +5670,17 @@ if %Unattend% EQU 1 goto :eof
|
||||
pause >nul
|
||||
goto :eof
|
||||
|
||||
:E_WMS
|
||||
echo %_err%
|
||||
echo Windows Management Instrumentation [WinMgmt] service is disabled.
|
||||
echo It is required for this script to work.
|
||||
echo.
|
||||
echo Press any key to exit.
|
||||
if %_Debug% EQU 1 goto :eof
|
||||
if %Unattend% EQU 1 goto :eof
|
||||
pause >nul
|
||||
goto :eof
|
||||
|
||||
:UnsupportedVersion
|
||||
echo %_err%
|
||||
echo Unsupported OS version Detected.
|
||||
|
||||
Reference in new issue
Block a user