@echo off

echo Pausing Windows Updates for 35 days...
powershell -command "Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\WindowsUpdate\\UX\\Settings' -Name 'PauseFeatureUpdatesEndTime' -Value ((Get-Date).ToUniversalTime().AddDays(35)).ToString('yyyy-MM-ddTHH:mm:ssZ')"
powershell -command "Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\WindowsUpdate\\UX\\Settings' -Name 'PauseFeatureUpdatesStartTime' -Value ((Get-Date).ToUniversalTime()).ToString('yyyy-MM-ddTHH:mm:ssZ')"

powershell -command "Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\WindowsUpdate\\UX\\Settings' -Name 'PauseQualityUpdatesEndTime' -Value ((Get-Date).ToUniversalTime().AddDays(35)).ToString('yyyy-MM-ddTHH:mm:ssZ')"
powershell -command "Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\WindowsUpdate\\UX\\Settings' -Name 'PauseQualityUpdatesStartTime' -Value ((Get-Date).ToUniversalTime()).ToString('yyyy-MM-ddTHH:mm:ssZ')"

powershell -command "Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\WindowsUpdate\\UX\\Settings' -Name 'PauseUpdatesExpiryTime' -Value ((Get-Date).ToUniversalTime().AddDays(35)).ToString('yyyy-MM-ddTHH:mm:ssZ')"
powershell -command "Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\WindowsUpdate\\UX\\Settings' -Name 'PauseUpdatesStartTime' -Value ((Get-Date).ToUniversalTime()).ToString('yyyy-MM-ddTHH:mm:ssZ')"

powershell -command "Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\WindowsUpdate\\UX\\Settings' -Name 'PauseFeatureUpdates' -Value 1"

echo Windows Updates have been paused for 35 days.
echo.

echo Uninstalling Windows Updates (KB5066835, KB5066131, KB5065789)

echo Uninstalling KB5066835...
wusa /uninstall /kb:5066835 /norestart

echo Uninstalling KB5066131...
wusa /uninstall /kb:5066131 /norestart

echo Uninstalling KB5065789...
wusa /uninstall /kb:5065789 /norestart

echo.
echo All updates have been uninstalled
echo Restarting computer in 10 seconds...
timeout /t 10 /nobreak >nul

shutdown /r /t 0
