彻底关闭Win10自动更新的代码
Windows 10 总是反反复复无休止的更新,然后自动(闲时)重启或者提示重启, 简直烦不胜烦...
所以直接写了这个小程序,关闭所有自动更新项,一劳永逸.
static void Main(string[] args) { Console.Title = "Disable Windows AutoUpdate"; Console.WriteLine("Disable Windows 10 AutoUpdate"); Console.WriteLine("Version:1.0"); Console.WriteLine("Release:2021-01-21"); DisableSvc(); DisableReg(); // 注册表修改或者手动处理: // 组策略:gpedit.msc -> 计算机配置 -> 管理模板 -> Windows组件 -> Windows更新: // 配置自动更新 -> 已禁用 // 删除使用所有Windows更新功能的访问权限 -> 已启用 DisableTaskScheduler(); Console.WriteLine("All Windows Auto Update configuration was disabled."); Console.WriteLine("Please restart the system manually for the configuration to take effect."); Console.WriteLine("Press any key to exit..."); Console.Read(); } private static void DisableTaskScheduler() { try { TaskSchedulerClass scheduler = new TaskSchedulerClass(); scheduler.Connect(); ITaskFolder folder = scheduler.GetFolder(@"\Microsoft\Windows\WindowsUpdate"); foreach (IRegisteredTask task in folder.GetTasks(0)) { task.Stop(0); task.Enabled = false; Console.WriteLine($"TaskSchedule [{task.Name}] was disabled."); } // eg. Scheduled Start } catch (Exception ex) { Console.WriteLine(ex.Message); } } private static void DisableReg() { // 注册还有个位置,但是不好判断,暂时不处理 SetRegVal( Microsoft.Win32.RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, Microsoft.Win32.RegistryView.Default), @"SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU", "NoAutoUpdate", 1); // HKEY_USERS\S-1-5-21-897350936-3504488752-3495779238-500\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy Objects\{C3BF0CDD-7FAF-4D58-BCA4-0A011084C32E}Machine\Software\Policies\Microsoft\Windows\WindowsUpdate\AU Console.WriteLine($"Group Policy [WindowsUpdate\\NoAutoUpdate] was disabled."); SetRegVal( Microsoft.Win32.RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, Microsoft.Win32.RegistryView.Default), @"SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate", "SetDisableUXWUAccess", 1); // HKEY_USERS\S-1-5-21-897350936-3504488752-3495779238-500\SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy Objects\{C3BF0CDD-7FAF-4D58-BCA4-0A011084C32E}Machine\Software\Policies\Microsoft\Windows\WindowsUpdate Console.WriteLine($"Group Policy [WindowsUpdate\\SetDisableUXWUAccess] was enabled."); } private static void DisableSvc() { string[] svrs = new[] { @"wuauserv", @"UsoSvc", @"WaaSMedicSvc" }; foreach (var svr in System.ServiceProcess.ServiceController.GetServices().Where(q => svrs.Contains(q.ServiceName))) { try { SetSvcVal(svr.ServiceName, "Start", 4); if (svr.Status==ServiceControllerStatus.Running) { svr.Stop(); } Console.WriteLine($"Windows Service [{svr.DisplayName}] was disabled."); } catch (Exception ex) { Console.WriteLine(ex.Message); } } }
后续可以通过命令,查看系统是否还会经常自动重启?
systeminfo | find "系统启动时间"