From 278034419471144523c7abfb48682a9b45f73e3d Mon Sep 17 00:00:00 2001 From: Kyoko Date: Thu, 10 Sep 2026 17:31:54 -0500 Subject: [PATCH] Disable Office retail activation for RDS hosts --- MAS/All-In-One-Version-KL/MAS_AIO.cmd | 76 +++++++++++++------ .../Activators/Ohook_Activation_AIO.cmd | 38 +++++++--- .../Activators/TSforge_Activation.cmd | 37 ++++++--- 3 files changed, 105 insertions(+), 46 deletions(-) diff --git a/MAS/All-In-One-Version-KL/MAS_AIO.cmd b/MAS/All-In-One-Version-KL/MAS_AIO.cmd index 33513d9..f4f9cd5 100644 --- a/MAS/All-In-One-Version-KL/MAS_AIO.cmd +++ b/MAS/All-In-One-Version-KL/MAS_AIO.cmd @@ -2676,6 +2676,10 @@ if not defined winserver ( reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul2% | find /i "Server" %nul1% && set winserver=1 ) +set rdsh= +for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v TSAppCompat 2^>nul') do set "edid=%%a" +if "%edid%"=="0x1" set "rdsh=1" + ::======================================================================================================================================== :: Check Smart App Control @@ -2725,6 +2729,9 @@ set "_oIntegrator=%_oRoot%\integration\integrator.exe" if /i "%_oArch%"=="x64" (set "_hookPath=%_oRoot%\vfs\System" & set "_hook=sppc64.dll") if /i "%_oArch%"=="x86" (set "_hookPath=%_oRoot%\vfs\SystemX86" & set "_hook=sppc32.dll") +call :oh_checkrdsh +if defined _rdshfail goto :dk_done + call :oh_ppcpath echo: @@ -2783,6 +2790,9 @@ set "_oIntegrator=%_oRoot%\integration\integrator.exe" if /i "%_oArch%"=="x64" (set "_hookPath=%_oRoot%\vfs\System" & set "_hook=sppc64.dll") if /i "%_oArch%"=="x86" (set "_hookPath=%_oRoot%\vfs\SystemX86" & set "_hook=sppc32.dll") +call :oh_checkrdsh +if defined _rdshfail goto :dk_done + call :oh_ppcpath echo: @@ -3126,6 +3136,22 @@ exit /b ::======================================================================================================================================== +:oh_checkrdsh + +set _rdshfail= +if defined winserver if defined rdsh if defined _config if exist "%_oLPath%\Word2019VL_KMS_Client_AE*.xrm-ms" ( +echo %_oIds% | find /i "Retail" %nul1% && ( +set error=1 +call :dk_color %Red% "Retail versions of Office cannot be activated with Ohook when running on a Remote Desktop Services host." +call :dk_color %Blue% "Go back to Main Menu, select Change Office Edition option, and change to Volume." +set _rdshfail=1 +) +) + +exit /b + +::======================================================================================================================================== + :: Some Office Retail to Volume converter tools may edit the ProductReleaseIds to add VL products. This code restores it because it may affect features. :oh_fixprids @@ -3414,19 +3440,6 @@ call :dk_color %_Yellow% "%mas%" ) ) -:: Add SharedComputerLicensing registry key if Retail Office C2R is installed on Windows Server -:: https://learn.microsoft.com/en-us/office/troubleshoot/office-suite-issues/click-to-run-office-on-terminal-server - -if defined winserver if defined _config if exist "%_oLPath%\Word2019VL_KMS_Client_AE*.xrm-ms" ( -echo %_oIds% | find /i "Retail" %nul1% && ( -set scaIsNeeded=1 -reg add %_config% /v SharedComputerLicensing /t REG_SZ /d "1" /f %nul1% -echo Adding SharedComputerLicensing Reg [Successful] [Needed on Server With Retail Office]" -) -) - -exit /b - ::======================================================================================================================================== :oh_processmsi @@ -5249,6 +5262,10 @@ if not defined winserver ( reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul2% | find /i "Server" %nul1% && set winserver=1 ) +set rdsh= +for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v TSAppCompat 2^>nul') do set "edid=%%a" +if "%edid%"=="0x1" set "rdsh=1" + ::======================================================================================================================================== :: Process Office UWP @@ -5317,6 +5334,9 @@ set "_oLPath=%_oRoot%\Licenses" set "pkeypath=%_oRoot%\Office15\pkeyconfig-office.xrm-ms" set "_oIntegrator=%_oRoot%\integration\integrator.exe" +call :ts_checkrdsh +if defined _rdshfail goto :dk_done + echo: echo Processing Office... [C2R ^| %_version% ^| %_oArch%] @@ -5359,6 +5379,9 @@ set "_oLPath=%_oRoot%\Licenses16" set "pkeypath=%_oRoot%\Office16\pkeyconfig-office.xrm-ms" set "_oIntegrator=%_oRoot%\integration\integrator.exe" +call :ts_checkrdsh +if defined _rdshfail goto :dk_done + echo: echo Processing Office... [C2R ^| %_version% %_AudienceData%^| %_oArch%] @@ -5960,6 +5983,22 @@ exit /b ::======================================================================================================================================== +:ts_checkrdsh + +set _rdshfail= +if /i not %tsmethod%==KMS4k if defined rdsh if defined winserver if defined _config if exist "%_oLPath%\Word2019VL_KMS_Client_AE*.xrm-ms" ( +echo %_oIds% | find /i "Retail" %nul1% && ( +set error=1 +call :dk_color %Red% "Retail versions of Office cannot be activated with TSForge when running on a Remote Desktop Services host." +call :dk_color %Blue% "Go back to Main Menu, select Change Office Edition option, and change to Volume." +set _rdshfail=1 +) +) + +exit /b + +::======================================================================================================================================== + :ts_process if not exist "%pkeypath%" ( @@ -6075,17 +6114,6 @@ echo "!allapps!" | find /i "!_actid!" %nul1% || call :oh_installlic ) ) -:: Add SharedComputerLicensing registry key if Retail Office C2R is installed on Windows Server -:: https://learn.microsoft.com/en-us/office/troubleshoot/office-suite-issues/click-to-run-office-on-terminal-server - -if /i not %tsmethod%==KMS4k if defined winserver if defined _config if exist "%_oLPath%\Word2019VL_KMS_Client_AE*.xrm-ms" ( -echo %_oIds% | find /i "Retail" %nul1% && ( -set scaIsNeeded=1 -reg add %_config% /v SharedComputerLicensing /t REG_SZ /d "1" /f %nul1% -echo Adding SharedComputerLicensing Reg [Successful] [Needed on Server With Retail Office]" -) -) - exit /b ::======================================================================================================================================== diff --git a/MAS/Separate-Files-Version/Activators/Ohook_Activation_AIO.cmd b/MAS/Separate-Files-Version/Activators/Ohook_Activation_AIO.cmd index cec64c6..7fc22a6 100644 --- a/MAS/Separate-Files-Version/Activators/Ohook_Activation_AIO.cmd +++ b/MAS/Separate-Files-Version/Activators/Ohook_Activation_AIO.cmd @@ -598,6 +598,10 @@ if not defined winserver ( reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul2% | find /i "Server" %nul1% && set winserver=1 ) +set rdsh= +for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v TSAppCompat 2^>nul') do set "edid=%%a" +if "%edid%"=="0x1" set "rdsh=1" + ::======================================================================================================================================== :: Check Smart App Control @@ -647,6 +651,9 @@ set "_oIntegrator=%_oRoot%\integration\integrator.exe" if /i "%_oArch%"=="x64" (set "_hookPath=%_oRoot%\vfs\System" & set "_hook=sppc64.dll") if /i "%_oArch%"=="x86" (set "_hookPath=%_oRoot%\vfs\SystemX86" & set "_hook=sppc32.dll") +call :oh_checkrdsh +if defined _rdshfail goto :dk_done + call :oh_ppcpath echo: @@ -705,6 +712,9 @@ set "_oIntegrator=%_oRoot%\integration\integrator.exe" if /i "%_oArch%"=="x64" (set "_hookPath=%_oRoot%\vfs\System" & set "_hook=sppc64.dll") if /i "%_oArch%"=="x86" (set "_hookPath=%_oRoot%\vfs\SystemX86" & set "_hook=sppc32.dll") +call :oh_checkrdsh +if defined _rdshfail goto :dk_done + call :oh_ppcpath echo: @@ -1046,6 +1056,23 @@ if defined _osppPath86 set _hook86=sppc32.dll exit /b +::======================================================================================================================================== + +:oh_checkrdsh + +set _rdshfail= +if defined winserver if defined rdsh if defined _config if exist "%_oLPath%\Word2019VL_KMS_Client_AE*.xrm-ms" ( +echo %_oIds% | find /i "Retail" %nul1% && ( +set error=1 +call :dk_color %Red% "Retail versions of Office cannot be activated with Ohook when running on a Remote Desktop Services host." +call :dk_color %Blue% "Go back to Main Menu, select Change Office Edition option, and change to Volume." +set _rdshfail=1 +) +) + +exit /b + + ::======================================================================================================================================== :: Some Office Retail to Volume converter tools may edit the ProductReleaseIds to add VL products. This code restores it because it may affect features. @@ -1336,17 +1363,6 @@ call :dk_color %_Yellow% "%mas%" ) ) -:: Add SharedComputerLicensing registry key if Retail Office C2R is installed on Windows Server -:: https://learn.microsoft.com/en-us/office/troubleshoot/office-suite-issues/click-to-run-office-on-terminal-server - -if defined winserver if defined _config if exist "%_oLPath%\Word2019VL_KMS_Client_AE*.xrm-ms" ( -echo %_oIds% | find /i "Retail" %nul1% && ( -set scaIsNeeded=1 -reg add %_config% /v SharedComputerLicensing /t REG_SZ /d "1" /f %nul1% -echo Adding SharedComputerLicensing Reg [Successful] [Needed on Server With Retail Office]" -) -) - exit /b ::======================================================================================================================================== diff --git a/MAS/Separate-Files-Version/Activators/TSforge_Activation.cmd b/MAS/Separate-Files-Version/Activators/TSforge_Activation.cmd index c44d656..3b767eb9 100644 --- a/MAS/Separate-Files-Version/Activators/TSforge_Activation.cmd +++ b/MAS/Separate-Files-Version/Activators/TSforge_Activation.cmd @@ -1355,6 +1355,10 @@ if not defined winserver ( reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v EditionID %nul2% | find /i "Server" %nul1% && set winserver=1 ) +set rdsh= +for /f "tokens=3" %%a in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v TSAppCompat 2^>nul') do set "edid=%%a" +if "%edid%"=="0x1" set "rdsh=1" + ::======================================================================================================================================== :: Process Office UWP @@ -1423,6 +1427,9 @@ set "_oLPath=%_oRoot%\Licenses" set "pkeypath=%_oRoot%\Office15\pkeyconfig-office.xrm-ms" set "_oIntegrator=%_oRoot%\integration\integrator.exe" +call :ts_checkrdsh +if defined _rdshfail goto :dk_done + echo: echo Processing Office... [C2R ^| %_version% ^| %_oArch%] @@ -1465,6 +1472,9 @@ set "_oLPath=%_oRoot%\Licenses16" set "pkeypath=%_oRoot%\Office16\pkeyconfig-office.xrm-ms" set "_oIntegrator=%_oRoot%\integration\integrator.exe" +call :ts_checkrdsh +if defined _rdshfail goto :dk_done + echo: echo Processing Office... [C2R ^| %_version% %_AudienceData%^| %_oArch%] @@ -2148,6 +2158,22 @@ exit /b ::======================================================================================================================================== +:ts_checkrdsh + +set _rdshfail= +if /i not %tsmethod%==KMS4k if defined rdsh if defined winserver if defined _config if exist "%_oLPath%\Word2019VL_KMS_Client_AE*.xrm-ms" ( +echo %_oIds% | find /i "Retail" %nul1% && ( +set error=1 +call :dk_color %Red% "Retail versions of Office cannot be activated with TSForge when running on a Remote Desktop Services host." +call :dk_color %Blue% "Go back to Main Menu, select Change Office Edition option, and change to Volume." +set _rdshfail=1 +) +) + +exit /b + +::======================================================================================================================================== + :ts_process if not exist "%pkeypath%" ( @@ -2263,17 +2289,6 @@ echo "!allapps!" | find /i "!_actid!" %nul1% || call :oh_installlic ) ) -:: Add SharedComputerLicensing registry key if Retail Office C2R is installed on Windows Server -:: https://learn.microsoft.com/en-us/office/troubleshoot/office-suite-issues/click-to-run-office-on-terminal-server - -if /i not %tsmethod%==KMS4k if defined winserver if defined _config if exist "%_oLPath%\Word2019VL_KMS_Client_AE*.xrm-ms" ( -echo %_oIds% | find /i "Retail" %nul1% && ( -set scaIsNeeded=1 -reg add %_config% /v SharedComputerLicensing /t REG_SZ /d "1" /f %nul1% -echo Adding SharedComputerLicensing Reg [Successful] [Needed on Server With Retail Office]" -) -) - exit /b ::========================================================================================================================================