Отключение обновлений Windows 10
## Назначение Скрипт `Disable-Windows10-Updates.ps1` максимально жёстко блокирует автоматическое скачивание и установку обновлений Windows 10. Запуск выполняется из PowerShell от имени администратора
Назначение
Скрипт Disable-Windows10-Updates.ps1 максимально жёстко блокирует автоматическое скачивание и установку обновлений Windows 10.
Запуск выполняется из PowerShell от имени администратора.
Что делает скрипт
Скрипт последовательно:
-
Пытается создать точку восстановления системы.
-
Создаёт политики Windows Update в реестре:
- отключает автоматические обновления;
- запрещает подключение к серверам Windows Update;
- скрывает доступ к интерфейсу обновлений.
-
Останавливает и отключает службы:
wuauserv— Windows Update;BITS— фоновая передача файлов;DoSvc— Delivery Optimization;UsoSvc— Update Orchestrator;WaaSMedicSvc— восстановление компонентов Windows Update.
-
Отключает связанные задачи Планировщика заданий.
-
Устанавливает для служб значение запуска
Disabledчерез реестр. -
Переименовывает каталоги кэша обновлений:
C:\Windows\SoftwareDistribution;C:\Windows\System32\catroot2.
Изменения полностью вступают в силу после перезагрузки.
Ограничения после применения
После выполнения скрипта могут перестать работать:
- загрузка обновлений Windows;
- автоматическая установка драйверов;
- обновление компонентов Microsoft Store;
- часть функций Microsoft Store;
- автоматическое обновление Microsoft Defender;
- установка дополнительных компонентов Windows;
- восстановление компонентов Windows Update;
- некоторые установщики, использующие службу
BITS.
Скрипт не даёт абсолютной гарантии вечной блокировки. Крупное обновление системы, восстановление Windows или ручное изменение служб может вернуть Windows Update в рабочее состояние.
Как отменить изменения
Запустить PowerShell от имени администратора и выполнить:
$ErrorActionPreference = "SilentlyContinue"
$WUPath = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
Remove-ItemProperty -Path "$WUPath\AU" -Name "NoAutoUpdate" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "$WUPath\AU" -Name "AUOptions" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "$WUPath\AU" -Name "ScheduledInstallDay" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "$WUPath\AU" -Name "ScheduledInstallTime" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $WUPath -Name "DisableWindowsUpdateAccess" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $WUPath -Name "DoNotConnectToWindowsUpdateInternetLocations" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path $WUPath -Name "SetDisableUXWUAccess" -ErrorAction SilentlyContinue
sc.exe config wuauserv start= demand
sc.exe config bits start= delayed-auto
sc.exe config DoSvc start= delayed-auto
sc.exe config UsoSvc start= auto
sc.exe config WaaSMedicSvc start= demand
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\wuauserv" -Name Start -Value 3
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\BITS" -Name Start -Value 2
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\DoSvc" -Name Start -Value 2
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\UsoSvc" -Name Start -Value 2
Set-ItemProperty "HKLM:\SYSTEM\CurrentControlSet\Services\WaaSMedicSvc" -Name Start -Value 3
Get-ScheduledTask |
Where-Object {
$_.TaskPath -like "\Microsoft\Windows\WindowsUpdate\*" -or
$_.TaskPath -like "\Microsoft\Windows\UpdateOrchestrator\*" -or
$_.TaskPath -like "\Microsoft\Windows\WaaSMedic\*" -or
$_.TaskPath -like "\Microsoft\Windows\InstallService\*"
} |
Enable-ScheduledTask
if (Test-Path "C:\Windows\SoftwareDistribution.disabled") {
Rename-Item "C:\Windows\SoftwareDistribution.disabled" "SoftwareDistribution"
}
if (Test-Path "C:\Windows\System32\catroot2.disabled") {
Rename-Item "C:\Windows\System32\catroot2.disabled" "catroot2"
}
Start-Service bits
Start-Service wuauserv
После выполнения необходимо перезагрузить компьютер.
Если каталоги SoftwareDistribution или catroot2 уже были заново созданы системой, перед обратным переименованием их следует удалить или переименовать вручную.
Проверка состояния
Get-Service wuauserv,bits,DoSvc,UsoSvc,WaaSMedicSvc |
Select-Object Name, Status, StartType
После блокировки службы должны быть остановлены и отключены. После отмены изменений службы должны иметь стандартный или ручной тип запуска.