@ -1,4 +1,4 @@
@ set masver = 3.2
@ set masver = 3.3
@ echo off
@ echo off
@ -60,6 +60,8 @@ exit /b
set " blank= "
set " blank= "
set " mas=ht %blank% tps %blank% ://mass %blank% grave.dev/ "
set " mas=ht %blank% tps %blank% ://mass %blank% grave.dev/ "
set " github=ht %blank% tps %blank% ://github.com/massgra %blank% vel/Micro %blank% soft-Acti %blank% vation-Scripts "
set " selfgit=ht %blank% tps %blank% ://git.acti %blank% vated.win/massg %blank% rave/Micr %blank% osoft-Act %blank% ivation-Scripts "
: : Check if Null service is working, it's important for the batch script
: : Check if Null service is working, it's important for the batch script
@ -192,12 +194,14 @@ for /f "delims=" %%a in ('%psc% "if ($PSVersionTable.PSEdition -ne 'Core') {$f=[
if /i not " %tstresult% " == " FullLanguage " (
if /i not " %tstresult% " == " FullLanguage " (
%eline%
%eline%
echo : %tstresult%
for /f " delims= " %% a in ( ' %psc% "$ExecutionContext.SessionState.LanguageMode" %nul6% ' ) do ( set tstresult2 = %% a)
cmd /c " %psc% $ExecutionContext.SessionState.LanguageMode "
echo Test 1 - %tstresult%
echo Test 2 - !tstresult2!
echo :
REM check LanguageMode
REM check LanguageMode
cmd /c " %psc% " $ExecutionContext.SessionState.LanguageMode" " | findstr /i " ConstrainedLanguage RestrictedLanguage NoLanguage " %nul1% && (
echo : !tstresult2! | findstr /i " ConstrainedLanguage RestrictedLanguage NoLanguage " %nul1% && (
echo FullLanguage mode not found in PowerShell. Aborting...
echo FullLanguage mode not found in PowerShell. Aborting...
echo If you have applied restrictions on Powershell then undo those changes.
echo If you have applied restrictions on Powershell then undo those changes.
echo :
echo :
@ -227,7 +231,13 @@ goto dk_done
REM check antivirus and other errors
REM check antivirus and other errors
echo PowerShell is not working properly. Aborting...
echo PowerShell is not working properly. Aborting...
cmd /c " %psc% " " $av = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct; $n = @(); foreach ($i in $av) { if ($i.displayName -notlike '*windows*') { $n += $i.displayName } }; if ($n) { Write-Host ('Installed 3rd party Antivirus might be blocking the script - ' + ($n -join ', ')) -ForegroundColor White -BackgroundColor Blue } " " "
if /i " !tstresult2! " == " FullLanguage " (
echo :
echo Your antivirus software might be blocking the script, or PowerShell on your system might be corrupted.
cmd /c " %psc% " " $av = Get-WmiObject -Namespace root\SecurityCenter2 -Class AntiVirusProduct; $n = @(); foreach ($i in $av) { $n += $i.displayName }; if ($n) { Write-Host ('Installed Antivirus - ' + ($n -join ', '))} " " "
)
echo :
echo :
set fixes = %fixes% %mas% troubleshoot
set fixes = %fixes% %mas% troubleshoot
call : dk_color2 %Blue% " Check this webpage for help - " %_Yellow% " %mas% troubleshoot "
call : dk_color2 %Blue% " Check this webpage for help - " %_Yellow% " %mas% troubleshoot "
@ -309,7 +319,7 @@ echo:
call : dk_color %_Green% " Choose a menu option using your keyboard [1,0] : "
call : dk_color %_Green% " Choose a menu option using your keyboard [1,0] : "
choice /C:10 /N
choice /C:10 /N
if !errorlevel! == 2 rem
if !errorlevel! == 2 rem
if !errorlevel! == 1 ( start %mas% & exit /b)
if !errorlevel! == 1 ( start %selfgit% & start %github% & start % mas% & exit /b)
)
)
)
)
@ -323,15 +333,6 @@ echo:
echo Initializing...
echo Initializing...
echo :
echo :
if not exist %SysPath% \sppsvc.exe (
%eline%
echo [%SysPath% \sppsvc.exe] file is missing. Aborting...
echo :
set fixes = %fixes% %mas% troubleshoot
call : dk_color2 %Blue% " Check this webpage for help - " %_Yellow% " %mas% troubleshoot "
goto dk_done
)
: :========================================================================================================================================
: :========================================================================================================================================
set spp = SoftwareLicensingProduct
set spp = SoftwareLicensingProduct
@ -365,8 +366,7 @@ if %osedition%==0 (
%eline%
%eline%
echo Failed to detect OS Edition. Aborting...
echo Failed to detect OS Edition. Aborting...
echo :
echo :
set fixes = %fixes% %mas% troubleshoot
call : dk_color %Blue% " To fix this issue, activate Windows from the main menu. "
call : dk_color2 %Blue% " Check this webpage for help - " %_Yellow% " %mas% troubleshoot "
goto dk_done
goto dk_done
)
)
@ -415,6 +415,7 @@ _updch
_lang
_lang
_clversion
_clversion
_version
_version
_AudienceData
_oIds
_oIds
_c2rXml
_c2rXml
_c2rExe
_c2rExe
@ -802,8 +803,40 @@ set errorcode=%errorlevel%
timeout /t 10 %nul%
timeout /t 10 %nul%
echo :
echo :
set suggestchannel =
if %errorcode% EQU 0 (
if %errorcode% EQU 0 (
call : dk_color %Gray% " Now run the Office activation option from the main menu. "
if %change% == 1 (
echo %targetedition% | find /i " 2019Volume " %nul% && (
if not defined ltsc19 set suggestchannel = Production::LTSC
if /i not %_AudienceData% == Production::LTSC set suggestchannel = Production::LTSC
if /i not %_updch% == F2E724C1-748F-4B47-8FB8-8E0D210E9208 set suggestchannel = Production::LTSC
)
echo %targetedition% | find /i " 2021Volume " %nul% && (
if not defined ltsc21 set suggestchannel = Production::LTSC2021
if /i not %_AudienceData% == Production::LTSC2021 set suggestchannel = Production::LTSC2021
if /i not %_updch% == 5030841D-C919-4594-8D2D-84AE4F96E58E set suggestchannel = Production::LTSC2021
)
echo %targetedition% | find /i " 2024Volume " %nul% && (
if not defined ltsc24 set suggestchannel = Production::LTSC2024
if /i not %_AudienceData% == Production::LTSC2024 set suggestchannel = Production::LTSC2024
if /i not %_updch% == 7983BAC0-E531-40CF-BE00-FD24FE66619C set suggestchannel = Production::LTSC2024
)
echo %targetedition% | findstr /R " 20.*Volume " %nul% || (
if defined ltscfound set suggestchannel = Production::CC
echo %_AudienceData% | find /i " LTSC " %nul% && set suggestchannel = Production::CC
)
if defined suggestchannel (
call : dk_color %Gray% " Mismatch found in update channel and installed product. "
call : dk_color %Blue% " It is recommended to change the update channel to [!suggestchannel!] from the previous menu. "
)
echo :
)
call : dk_color %Gray% " To activate Office, run the activation option from the main menu. "
) else (
) else (
set fixes = %fixes% %mas% troubleshoot
set fixes = %fixes% %mas% troubleshoot
call : dk_color2 %Blue% " Check this webpage for help - " %_Yellow% " %mas% troubleshoot "
call : dk_color2 %Blue% " Check this webpage for help - " %_Yellow% " %mas% troubleshoot "
@ -980,6 +1013,12 @@ echo Installed Office editions: %_oIds%
echo Unsupported Office edition is installed on your Windows build version %winbuild% .
echo Unsupported Office edition is installed on your Windows build version %winbuild% .
goto : oe_goback
goto : oe_goback
)
)
if defined ltscfound (
%eline%
echo Installed Office update channel: %ltsc19% %ltsc21% %ltsc24%
echo Unsupported Office update channel is installed on your Windows build version %winbuild% .
goto : oe_goback
)
)
)
: :===============
: :===============
@ -988,49 +1027,52 @@ set inpt=
set counter = 0
set counter = 0
set verified = 0
set verified = 0
set targetFFN =
set targetFFN =
set bypassFFN =
set targetchannel =
set targetchannel =
%line%
%line%
echo :
echo :
call : dk_color %Gray% " Installed update channel: %_AudienceData% , %_version% , Client: %_clversion% "
call : dk_color %Gray% " Installed update channel: %_AudienceData% , %_version% , Client: %_clversion% "
call : dk_color %Gray% " Unsupported update channels are excluded from this list. "
call : dk_color %Gray% " Installed Office editions: %_oIds% "
%line%
%line%
echo :
echo :
for %% # in (
for %% # in (
" 5440FD1F-7ECB-4221-8110-145EFAA6372F_Insider Fast [Beta] - Insiders::DevMain "
" 5440fd1f-7ecb-4221-8110-145efaa6372f_Insider Fast [Beta] - Insiders::DevMain - "
" 64256AFE-F5D9-4F86-8936-8840A6A4F5BE_Monthly Preview - Insiders::CC "
" 64256afe-f5d9-4f86-8936-8840a6a4f5be_Monthly Preview - Insiders::CC - "
" 492350F6-3A01-4F97-B9C0-C7C6DDF67D60_Monthly [Current] - Production::CC "
" 492350f6-3a01-4f97-b9c0-c7c6ddf67d60_Monthly [Current] - Production::CC - "
" 55336B82-A18D-4DD6-B5F6-9E5095C314A6_Monthly Enterprise - Production::MEC "
" 55336b82-a18d-4dd6-b5f6-9e5095c314a6_Monthly Enterprise - Production::MEC - "
" B8F9B850-328D-4355-9145-C59439A0C4CF_Semi Annual Preview - Insiders::FRDC "
" b8f9b850-328d-4355-9145-c59439a0c4cf_Semi Annual Preview - Insiders::FRDC - "
" 7FFBC6BF-BC32-4F92-8982-F9DD17FD3114_Semi Annual - Production::DC "
" 7ffbc6bf-bc32-4f92-8982-f9dd17fd3114_Semi Annual - Production::DC - "
" EA4A4090-DE26-49D7-93C1-91BFF9E53FC3_DevMain Channel - Dogfood::DevMain "
" ea4a4090-de26-49d7-93c1-91bff9e53fc3_DevMain Channel - Dogfood::DevMain - "
" B61285DD-D9F7-41F2-9757-8F61CBA4E9C8_Microsoft Elite - Microsoft::DevMain "
" b61285dd-d9f7-41f2-9757-8f61cba4e9c8_Microsoft Elite - Microsoft::DevMain - "
" F2E724C1-748F-4B47-8FB8-8E0D210E9208_Perpetual2019 VL - Production::LTSC "
" f2e724c1-748f-4b47-8fb8-8e0d210e9208_Perpetual2019 VL - Production::LTSC - "
" 1D2D2EA6-1680-4C56-AC58-A441C8C24FF9_Microsoft2019 VL - Microsoft::LTSC "
" 1d2d2ea6-1680-4c56-ac58-a441c8c24ff9_Microsoft2019 VL - Microsoft::LTSC - "
" 5030841D-C919-4594-8D2D-84AE4F96E58E_Perpetual2021 VL - Production::LTSC2021 "
" 5030841d-c919-4594-8d2d-84ae4f96e58e_Perpetual2021 VL - Production::LTSC2021 - "
" 86752282-5841-4120-AC80-DB03AE6B5FDB_Microsoft2021 VL - Microsoft::LTSC2021 "
" 86752282-5841-4120-ac80-db03ae6b5fdb_Microsoft2021 VL - Microsoft::LTSC2021 - "
" 7983BAC0-E531-40CF-BE00-FD24FE66619C_Perpetual2024 VL - Production::LTSC2024 "
" 7983bac0-e531-40cf-be00-fd24fe66619c_Perpetual2024 VL - Production::LTSC2024 - "
" C02D8FE6-5242-4DA8-972F-82EE55E 00671_Microsoft2024 VL - Microsoft::LTSC2024"
" c02d8fe6-5242-4da8-972f-82ee55e 00671_Microsoft2024 VL - Microsoft::LTSC2024 - "
) do (
) do (
for /f " tokens=1-2 delims=_ " %% A in ( " %% ~# " ) do (
for /f " tokens=1-2 delims=_ " %% A in ( " %% ~# " ) do (
set bypass =
set supported =
set supported =
if %winbuild% LSS 10240 ( echo %% B | findstr /i " LTSC DevMain " %nul% || set supported = 1) else ( set supported = 1)
if %winbuild% LSS 10240 ( echo %% B | findstr /i " LTSC DevMain " %nul% || set supported = 1) else ( set supported = 1)
if %winbuild% GEQ 10240 (
if %winbuild% GEQ 10240 (
if defined ltsc19 echo %% B | find /i " 2019 VL " %nul% || set supported =
if defined ltsc19 echo %% B | find /i " 2019 VL " %nul% || set bypass = 1
if defined ltsc21 echo %% B | find /i " 2021 VL " %nul% || set supported =
if defined ltsc21 echo %% B | find /i " 2021 VL " %nul% || set bypass = 1
if defined ltsc24 echo %% B | find /i " 2024 VL " %nul% || set supported =
if defined ltsc24 echo %% B | find /i " 2024 VL " %nul% || set bypass = 1
if not defined ltscfound echo %% B | find /i " LTSC " %nul% && set supported =
if not defined ltscfound echo %% B | find /i " LTSC " %nul% && set bypass = 1
)
)
if defined supported (
if defined supported (
set /a counter += 1
set /a counter += 1
if !counter! LSS 10 (
if !counter! LSS 10 (
echo [!counter!] %% B
if defined bypass ( echo [!counter!] %% B Unofficial change method will be used) else ( echo [!counter!] %% B)
) else (
) else (
echo [!counter!] %% B
if defined bypass ( echo [!counter!] %% B Unofficial change method will be used) else ( echo [!counter!] %% B)
)
)
set targetFFN!counter! = %% A
set targetFFN!counter! = %% A
set targetchannel!counter! = %% B
set targetchannel!counter! = %% B
if defined bypass set bypassFFN = !bypassFFN! %% A
)
)
)
)
)
)
@ -1044,7 +1086,7 @@ call :dk_color %_Green% "Enter an option number using your keyboard and press En
set /p inpt =
set /p inpt =
if " %inpt% " == " " goto : oe_changeupdchnl
if " %inpt% " == " " goto : oe_changeupdchnl
if " %inpt% " == " 0 " goto : oemenu
if " %inpt% " == " 0 " goto : oemenu
if /i " %inpt% " == " R " start https://learn.microsoft.com/microsoft-365-apps/updates/overview-update-channels & goto : oe_changeupdchnl
if /i " %inpt% " == " R " start https://learn.microsoft.com/en-us/ microsoft-365-apps/updates/overview-update-channels & goto : oe_changeupdchnl
for /l %% i in ( 1 ,1 ,%counter% ) do ( if " %inpt% " == " %% i " set verified = 1)
for /l %% i in ( 1 ,1 ,%counter% ) do ( if " %inpt% " == " %% i " set verified = 1)
set targetFFN = !targetFFN%inpt%!
set targetFFN = !targetFFN%inpt%!
set targetchannel = !targetchannel%inpt%!
set targetchannel = !targetchannel%inpt%!
@ -1061,30 +1103,12 @@ set build=
for /f " delims= " %% a in ( ' %psc% "$f=[io.file]::ReadAllText('!_batp!' ) -split ':getbuild\:.*';iex ($f[1])" %nul6% ' ) do ( set build = %% a)
for /f " delims= " %% a in ( ' %psc% "$f=[io.file]::ReadAllText('!_batp!' ) -split ':getbuild\:.*';iex ($f[1])" %nul6% ' ) do ( set build = %% a)
echo " %build% " | find /i " 16. " %nul% || set build =
echo " %build% " | find /i " 16. " %nul% || set build =
: : Cleanup Office update related registries, thanks to @abbodi1406
: : https://techcommunity.microsoft.com/t5/office-365-blog/how-to-manage-office-365-proplus-channels-for-it-pros/ba-p/795813
: : https://learn.microsoft.com/en-us/microsoft-365-apps/updates/change-update-channels#considerations-when-changing-channels
echo :
echo :
for /f " tokens=1 delims=- " %% A in ( " %targetchannel% " ) do ( echo Target update channel: %% A)
for /f " tokens=1 delims=- " %% A in ( " %targetchannel% " ) do ( echo Target update channel: %% A)
echo :
echo Target build number: %build%
echo Cleaning Office update registry keys...
echo : %bypassFFN% | find /i " %targetFFN% " %nul% && goto : oe_changeunoff
echo Adding new update channel to registry keys...
%nul% reg add %o16c2r_reg% \Configuration /v CDNBaseUrl /t REG_SZ /d " https://officecdn.microsoft.com/pr/ %targetFFN% " /f
call : oe_cleanupreg
%nul% reg add %o16c2r_reg% \Configuration /v UpdateChannel /t REG_SZ /d " https://officecdn.microsoft.com/pr/ %targetFFN% " /f
%nul% reg add %o16c2r_reg% \Configuration /v UpdateChannelChanged /t REG_SZ /d " True " /f
%nul% reg delete %o16c2r_reg% \Configuration /v UnmanagedUpdateURL /f
%nul% reg delete %o16c2r_reg% \Configuration /v UpdateUrl /f
%nul% reg delete %o16c2r_reg% \Configuration /v UpdatePath /f
%nul% reg delete %o16c2r_reg% \Configuration /v UpdateToVersion /f
%nul% reg delete %o16c2r_reg% \Updates /v UpdateToVersion /f
%nul% reg delete HKLM\SOFTWARE\Policies\Microsoft\office\16.0\common\officeupdate /f
%nul% reg delete HKLM\SOFTWARE\Policies\Microsoft\office\16.0\common\officeupdate /f /reg:32
%nul% reg delete HKCU\SOFTWARE\Policies\Microsoft\office\16.0\common\officeupdate /f
%nul% reg delete HKLM\SOFTWARE\Policies\Microsoft\cloud\office\16.0\Common\officeupdate /f
%nul% reg delete HKLM\SOFTWARE\Policies\Microsoft\cloud\office\16.0\Common\officeupdate /f /reg:32
%nul% reg delete HKCU\Software\Policies\Microsoft\cloud\office\16.0\Common\officeupdate /f
if not defined build (
if not defined build (
if %winbuild% GEQ 9200 call : dk_color %Gray% " Failed to detect build number for the target FFN. "
if %winbuild% GEQ 9200 call : dk_color %Gray% " Failed to detect build number for the target FFN. "
@ -1100,6 +1124,76 @@ echo:
echo Check this webpage for help - %mas% troubleshoot
echo Check this webpage for help - %mas% troubleshoot
goto : oe_goback
goto : oe_goback
: :=======================
: : Unofficial method to change channel
: oe_changeunoff
set abortchange =
echo %targetchannel% | find /i " 2019 VL " %nul% && ( for %% A in ( %_oIds% ) do ( echo %% A | find /i " 2019Volume " %nul% || set abortchange = 1) )
echo %targetchannel% | find /i " 2021 VL " %nul% && ( for %% A in ( %_oIds% ) do ( echo %% A | find /i " 2021Volume " %nul% || set abortchange = 1) )
echo %targetchannel% | find /i " 2024 VL " %nul% && ( for %% A in ( %_oIds% ) do ( echo %% A | find /i " 2024Volume " %nul% || set abortchange = 1) )
if defined abortchange (
%eline%
echo Mismatch found in installed Office products and target update channel. Aborting...
echo Non-perpetual Office products are not suppported with Perpetual VL update channels.
goto : oe_goback
)
if not defined build (
%eline%
call : dk_color %Red% " Failed to detect build number for the target FFN. "
echo :
set fixes = %fixes% %mas% troubleshoot
call : dk_color2 %Blue% " Check this webpage for help - " %_Yellow% " %mas% troubleshoot "
goto : oe_goback
)
set buildchk = 0
for /f " tokens=3 delims=. " %% a in ( " %build% " ) do set " buildchk= %% a "
set " c2rcommand= " %_c2rExe% " platform= %_oArch% culture= %_lang% productstoadd= %_firstoId% .16_ %_lang% _x-none cdnbaseurl.16=http://officecdn.microsoft.com/pr/ %targetFFN% baseurl.16=http://officecdn.microsoft.com/pr/ %targetFFN% version.16= %build% mediatype.16=CDN sourcetype.16=CDN deliverymechanism= %targetFFN% %_firstoId% .excludedapps.16= %_firstoIdExcludelist% flt.useteamsaddon=disabled flt.usebingaddononinstall=disabled flt.usebingaddononupdate=disabled "
set " c2rclientupdate=!c2rcommand! scenario=CLIENTUPDATE "
if %clverchk% LSS %buildchk% (
echo :
call : dk_color %Blue% " Do not terminate the operation before it completes... "
echo :
echo Updating Office C2R client with the command below, please wait...
echo :
echo %c2rclientupdate%
%c2rclientupdate%
for /l %% i in ( 1 ,1 ,30 ) do ( if !clverchk! LSS %buildchk% ( call : ch_getinfo & timeout /t 10 %nul% ) )
)
if %clverchk% LSS %buildchk% (
echo :
call : dk_color %Red% " Failed to update Office C2R client. Aborting... "
echo :
set fixes = %fixes% %mas% troubleshoot
call : dk_color2 %Blue% " Check this webpage for help - " %_Yellow% " %mas% troubleshoot "
goto : oe_goback
)
call : oe_cleanupreg
echo Running the below command to change update channel, please wait...
echo :
echo %c2rcommand%
%c2rcommand%
set errorcode = %errorlevel%
timeout /t 10 %nul%
echo :
if %errorcode% EQU 0 (
call : dk_color %Gray% " Now run the Office activation option from the main menu. "
) else (
set fixes = %fixes% %mas% troubleshoot
call : dk_color2 %Blue% " Check this webpage for help - " %_Yellow% " %mas% troubleshoot "
)
: :========================================================================================================================================
: :========================================================================================================================================
: oe_goback
: oe_goback
@ -1112,7 +1206,7 @@ call :dk_color %White% "Follow ALL the ABOVE blue lines. "
call : dk_color2 %Blue% " Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore "
call : dk_color2 %Blue% " Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore "
choice /C:10 /N
choice /C:10 /N
if !errorlevel! == 2 goto : oemenu
if !errorlevel! == 2 goto : oemenu
if !errorlevel! == 1 ( for %% # in ( %fixes% ) do ( start %% #) )
if !errorlevel! == 1 ( start %selfgit% & start %github% & for %% # in ( %fixes% ) do ( start %% #) )
)
)
if defined terminal (
if defined terminal (
@ -1126,6 +1220,36 @@ goto :oemenu
: :========================================================================================================================================
: :========================================================================================================================================
: oe_cleanupreg
: : Cleanup Office update related registries, thanks to @abbodi1406
: : https://techcommunity.microsoft.com/t5/office-365-blog/how-to-manage-office-365-proplus-channels-for-it-pros/ba-p/795813
: : https://learn.microsoft.com/en-us/microsoft-365-apps/updates/change-update-channels#considerations-when-changing-channels
echo :
echo Cleaning Office update registry keys...
echo Adding new update channel to registry keys...
echo :
%nul% reg add %o16c2r_reg% \Configuration /v CDNBaseUrl /t REG_SZ /d " https://officecdn.microsoft.com/pr/ %targetFFN% " /f
%nul% reg add %o16c2r_reg% \Configuration /v UpdateChannel /t REG_SZ /d " https://officecdn.microsoft.com/pr/ %targetFFN% " /f
%nul% reg add %o16c2r_reg% \Configuration /v UpdateChannelChanged /t REG_SZ /d " True " /f
%nul% reg delete %o16c2r_reg% \Configuration /v UnmanagedUpdateURL /f
%nul% reg delete %o16c2r_reg% \Configuration /v UpdateUrl /f
%nul% reg delete %o16c2r_reg% \Configuration /v UpdatePath /f
%nul% reg delete %o16c2r_reg% \Configuration /v UpdateToVersion /f
%nul% reg delete %o16c2r_reg% \Updates /v UpdateToVersion /f
%nul% reg delete HKLM\SOFTWARE\Policies\Microsoft\office\16.0\common\officeupdate /f
%nul% reg delete HKLM\SOFTWARE\Policies\Microsoft\office\16.0\common\officeupdate /f /reg:32
%nul% reg delete HKCU\SOFTWARE\Policies\Microsoft\office\16.0\common\officeupdate /f
%nul% reg delete HKLM\SOFTWARE\Policies\Microsoft\cloud\office\16.0\Common\officeupdate /f
%nul% reg delete HKLM\SOFTWARE\Policies\Microsoft\cloud\office\16.0\Common\officeupdate /f /reg:32
%nul% reg delete HKCU\Software\Policies\Microsoft\cloud\office\16.0\Common\officeupdate /f
exit /b
: :========================================================================================================================================
: oe_tempcleanup
: oe_tempcleanup
del /f /q %SystemRoot% \Temp\SingleApps_Volume.txt %nul%
del /f /q %SystemRoot% \Temp\SingleApps_Volume.txt %nul%
@ -1145,6 +1269,7 @@ set _oRoot=
set _oArch =
set _oArch =
set _updch =
set _updch =
set _oIds =
set _oIds =
set _firstoId =
set _lang =
set _lang =
set _cfolder =
set _cfolder =
set _version =
set _version =
@ -1175,9 +1300,13 @@ for /f "tokens=%_tok% delims=\" %%a in ('reg query "%o16c2r_reg%\ProductReleaseI
if defined _oIds ( set " _oIds=!_oIds! %% a " ) else ( set " _oIds= %% a " )
if defined _oIds ( set " _oIds=!_oIds! %% a " ) else ( set " _oIds= %% a " )
)
)
set _oIds = %_oIds:.16=%
set _oIds = %_oIds:.16=%
for /f " tokens=1 " %% A in ( " %_oIds% " ) do set _firstoId = %% A
for /f " skip=2 tokens=2* " %% a in ( '"reg query %o16c2r_reg% \Configuration /v %_firstoId% .ExcludedApps" %nul6% ' ) do ( set " _firstoIdExcludelist= %% b " )
set verchk = 0
set verchk = 0
set clverchk = 0
for /f " tokens=3 delims=. " %% a in ( " %_version% " ) do set " verchk= %% a "
for /f " tokens=3 delims=. " %% a in ( " %_version% " ) do set " verchk= %% a "
for /f " tokens=3 delims=. " %% a in ( " %_clversion% " ) do set " clverchk= %% a "
if exist " %_oRoot% \Licenses16\c2rpridslicensefiles_auto.xml " set " _c2rXml= %_oRoot% \Licenses16\c2rpridslicensefiles_auto.xml "
if exist " %_oRoot% \Licenses16\c2rpridslicensefiles_auto.xml " set " _c2rXml= %_oRoot% \Licenses16\c2rpridslicensefiles_auto.xml "
@ -1193,16 +1322,13 @@ if exist "%_cfolder%\OfficeC2RClient.exe" (
set " _c2rCexe= %_cfolder% \OfficeC2RClient.exe "
set " _c2rCexe= %_cfolder% \OfficeC2RClient.exe "
)
)
set " audidata4= %_AudienceData:~-4% "
: : Check LTSC version files
if /i " %audidata4% " == " LTSC " set ltsc19 = LTSC
echo %_clversion% %_version% | findstr " 16.0.103 16.0.104 16.0.105 " %nul% && set ltsc19 = LTSC
if /i " %audidata4% " == " 2021 " set ltsc21 = LTSC2021
for /f " skip=2 tokens=2* " %% a in ( '"reg query %o16c2r_reg% \ProductReleaseIDs\ %_actconfig% " /s %nul6% ' ) do (
echo %_clversion% %_version% | findstr " 16.0.14332 " %nul% && set ltsc2 1 = LTSC2021
echo " %% b " %nul2% | findstr " 16.0.103 16.0.104 16.0.105 " %nul% && set ltsc19 = LTSC
echo " %% b " %nul2% | findstr " 16.0.14332 " %nul% && set ltsc21 = LTSC2021
if /i " %audidata4% " == " 2024 " set ltsc24 = LTSC2024
echo " %% b " %nul2% | findstr " 16.0.17932 " %nul% && set ltsc24 = LTSC2024
: : LTSC 2024 build is not fixed yet
)
if not " %ltsc19% %ltsc21% %ltsc24% " == " " set ltscfound = 1
if not " %ltsc19% %ltsc21% %ltsc24% " == " " set ltscfound = 1
@ -1477,7 +1603,7 @@ call :dk_color %White% "Follow ALL the ABOVE blue lines. "
call : dk_color2 %Blue% " Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore "
call : dk_color2 %Blue% " Press [1] to Open Support Webpage " %Gray% " Press [0] to Ignore "
choice /C:10 /N
choice /C:10 /N
if !errorlevel! == 2 exit /b
if !errorlevel! == 2 exit /b
if !errorlevel! == 1 ( for %% # in ( %fixes% ) do ( start %% #) )
if !errorlevel! == 1 ( start %selfgit% & start %github% & for %% # in ( %fixes% ) do ( start %% #) )
)
)
if defined terminal (
if defined terminal (