很明显,Windows昨晚不愿安排自己重新启动,并关闭了前一天晚上的所有工作。
我定期重启;我不需要Windows帮我做。
我可以完全禁用它吗?我不介意它是否下载了所有内容,然后说“嘿,您应该重新启动”,但是它永远也不要自行重新启动。
我正在使用Windows 10的“ Pro”版。
#1 楼
注意:不幸的是,这似乎在Windows 10 Home上不起作用,并且我不确定该版本用户是否可以使用该解决方案。我将其发布为另一个问题的答案,但这似乎与该问题重复,因此我也将在此处提供:
您可以编辑本地组策略设置,以强制Windows更新仅下载更新,但请等待您的输入安装(并因此重新启动。)
打开开始菜单并键入“组”,然后单击“编辑组策略”
展开计算机配置\管理模板\ Windows组件\ Windows Update
双击“配置自动更新”并启用该策略,然后根据需要对其进行配置。
头回到Windows Update,然后单击“检查更新”。完成后,单击“高级”选项。
应用此设置后,您应该看到新设置已被强制执行。
在测试VM上,我未打开Windows Update,并注意到它已开始下载。
下载完成后,您会收到吐司通知,其中有更新,您需要进行安装。
请注意,必须单击立即安装。从开始菜单重新启动或关闭似乎不会触发安装过程。
更多信息:
我不确定是否编辑本地组策略是Windows 10家庭版中的一个选项,但是通过注册表应该可以达到相同的结果(由于我自己使用策略方法,因此我尚未对其进行测试)。如果非专业用户也要寻找答案,请包括此内容。
按Win + R并键入regedit,然后按Enter
导航到
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
(如果不存在,则可能需要手动创建密钥)
创建一个名为
AUOptions
的新DWORD值,然后输入2
或3
的值。2
=下载前通知3
=自动下载并通知安装重新启动PC
检查更新
检查高级设置
周年更新(1607)之后进行更新:
我最近看到了很多评论有人说在周年纪念更新后这不再起作用。
我一直在运行一些测试,下面的两个博客文章中对此进行了详细介绍:
验证预防Windows 10版本1607上的自动重新启动的说明
Windows Update上的更新...正常运行时间
这些测试已经运行了近三周,我还没有看到任何强制的重新启动。 br />
从这些结果来看,这似乎仍然有效。
注意事项:
我没有在“工作时间”或“重新启动选项”附近设置任何设置。
除非准备安装并重新启动,否则请不要单击Windows Update UI中的“立即安装”按钮。一旦安装了更新,就不会阻止Windows决定重新引导。
Windows会在屏幕上让您吐司,操作中心警报和横幅困扰您。只要您不安装更新,就可以了(但是请最终安装。)
评论
我在Win10 Enterprise上使用了该设置,并且它显然在本周末(原是星期六3:31)重新启动。必须有一个额外的开关来禁用该烦人的行为。
–mbx
15年8月31日在6:17
@windows我已经在组策略编辑器中启用了“对计划的自动更新安装没有登录用户的自动保留”。到目前为止还没有帮助。
–mbx
2015年9月1日下午6:12
为什么在设置中它不是一个简单的复选框:“想到时不要破坏我的作品”是准确的词汇。我什至会认为“不要在PuTTY运行时重新启动”。为什么总是使用reg hacks。
–布兰登
16年8月29日在13:54
认为这是“我也是”答案,但是即使做出了这些更改,它仍然会重新启动(Win 10周年更新)。极其沮丧。工作丢失了,会议消失了,令人发指。
– Jeroen Ritmeijer
16年9月1日在8:40
他们刚刚杀死了我昨晚使用的大约10个已打开的应用程序。感谢Microsoft提供了一种在未经许可的情况下重新引导人计算机的聪明方法。
–罗宁·费斯汀格(Ronen Festinger)
16-10-28在20:32
#2 楼
我已经解决了此问题,这是我尝试修复Windows 10中的另一个垃圾设置(它将唤醒设备的方式,并且您在过程中安装未批准的更新的一部分)。请在此处查阅我的指南的步骤2。它说明了如何修改Windows Scheduled Tasks列表的“ UpdateOrchestrator”部分中的“ Reboot”任务,以禁用它并阻止Windows对其进行干扰。禁用此任务后,您的计算机将永远不会重新启动,除非您指示进行操作。
干杯-海鸥
评论
您的链接在站点内,因此断开的风险不大。但是最好使答案独立。考虑在此处添加基本信息,并保留链接以归因于其他答案。如果您只是要将读者重定向到其他地方,甚至可以在评论中完成。
–fixer1234
16年8月31日在18:50
就是这个!我很困惑,即使服务未运行,该愚蠢的事情也如何重新启动了PC,这就是原因!谁曾想到Windows Update会调整某些隐藏的计划任务,这一直是罪魁祸首。现在可以下载并安装更新了,但是我可以在需要时重新启动。 Windows认为“非工作时间”没有任何限制性的观念,认为我没有使用计算机。
– japzone
16年3月3日在22:54
不幸的是,这也不再起作用。 Windows将在无提示的情况下重新启用该任务,并忽略文件权限,并在运行更新时也将其重置。
– qasdfdsaq
16年11月5日在13:55
仍然无法验证。我将Windows 10更新到最新版本– 14393.447 –我的“重新启动”任务没有受到其权限的干扰。管理工具中的“任务计划程序”仍对此任务说“已禁用”。
–海鸥
16年11月10日在19:11
@qasdfdsaq我可以确认这在家庭10上不起作用。我遵循一个月前的所有步骤,昨晚Windows在已禁用的无权限更新协调器上添加了一个任务,该任务能够运行一次并在昨晚自动重新启动。
–user5389726598465
17年11月16日在1:34
#3 楼
最好的解决方案是使用Task Scheduler。单击“开始”,然后键入Task Scheduler
导航到Task Scheduler库>> Microsoft >> Windows >> UpdateOchestrator
要禁用自动重新启动,请右键单击“重新启动”,然后选择“禁用”。
然后确保更改权限。应该设置为“读取并执行”
我还通过禁用此文件夹中的所有任务来禁用自动更新。
评论
我希望@ppvi,但不,它仍然重新启动
–托马斯
16-10-4在15:33
这对我也不起作用(对于Windows 10 Home),因为系统只是重新启用了它。这个其他答案建议您做同样的事情,但是您还必须更改权限以防止Windows重新启用它:superuser.com/a/1125051/139323
–orrd
16-10-5在7:15
不起作用Windows会忽略这些文件的权限。
– qasdfdsaq
16年11月5日在13:57
qasdfdsaq是正确的。我将任务禁用了一周,然后昨晚重新启动了计算机。查看了任务并启用了它。就像更新服务一样,如果禁用它,Windows将再次启用它。现在,我将要删除它。我怀疑它会被重新添加。 Windows 1607(14393.447)
–贾斯汀·埃姆雷(Justin Emlay)
16年11月10日在14:04
这个不是Windows本机消息实用程序。对于Windows 10,“ msg”是,因此对于那些不想下载其他工具的人,只需使用%windir%\ system32 \ msg.exe * / SERVER:localhost“ Windows需要重新启动才能完成其更新,请尽快重启。”作为重新启动操作。我强烈建议您在进行更改之前先导出任务,以便进行备份(以防万一,总是个好主意)。
–詹姆斯·威尔金斯(James Wilkins)
17 Mar 29 '17在7:18
#4 楼
您可以尝试Windows 10重新启动阻止程序:一个简单的Windows服务,它将在后台更新此“活动时间”时隙
。
它是免费的,并且可以与周年更新一起使用。
评论
我喜欢。看起来做得不错,具有安装程序和卸载程序,并且可执行文件具有有效的签名。它的作用非常简单而且是一个好主意:这就像您每小时手动告诉Windows正常的工作时间是接下来的12个小时,并且在此期间不应该重新启动一样。
– MAF-SOFT
17年1月13日在9:39
我没有尝试过,但是我想知道是否可以通过命令行和任务计划程序轻松完成。 ;)
–詹姆斯·威尔金斯(James Wilkins)
17 Mar 29 '17在7:26
Windows将自动安装更新,但不会在背后自动重启(缺少此基本功能!)。您可以只检查Windows Update,以了解是否正在等待重启,并在适当时机进行。
–欧文
17年5月12日在17:42
仅供参考...尽管不需要链接,但您不需要免费的非开放源代码第三方软件,但是根据您的链接,它仅在您现在就可以使用的情况下提供答案,但是这种逻辑究竟在幕后做了什么,我们可能不知道100%当然。您可以按照superuser.com/questions/957267/…控制何时进行Windows Update后重新启动操作。也许不如仅链接回答那么简单,但至少是Windows固有的,您可以确切地看到和控制它的作用。一旦安装完成,这确实很简单。
–以前的Pimp Juice IT
17年5月18日在15:32
2017年7月24日:自从安装Reboot Blocker以来-两个半月后,我可以确认未经我的同意,我的PC仍然从未重启过。
–米克
17年7月24日在12:03
#5 楼
您可以使用Windows自身的工具来禁用自动重新启动。如其他一些答案所述,Windows使用称为
\Microsoft\Windows\UpdateOrchestrator\Reboot
的计划任务来运行其重新启动。但是,如果您打开Task Scheduler并将其禁用,Windows将在第二天高兴地重新启用它-即使您将其权限更改为只读。不必进入Task Scheduler UI每天都会禁用任务,我们可以使用
schtasks
命令行实用程序来自动设置此任务,以修改任务。如果计划重新启动,则以下命令,以管理员权限运行,将禁用该任务:
schtasks /change /tn \Microsoft\Windows\UpdateOrchestrator\Reboot /DISABLE
知道这一点,您可以创建自己的计划任务来定期运行上述命令并禁用Windows的阴险小方案。如果您熟悉如何使用Task Scheduler,请设置自己的任务。
否则,
将下面的标记复制并粘贴到文本编辑器中。
将其另存为XML文件。
在Task Scheduler中,单击“操作”>“导入任务...”并选择此文件。
根据需要调整配置。
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.4" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
<RegistrationInfo>
<Author>http://superuser.com/users/1909/kpozin</Author>
<URI>\SuperUser\Cancel Windows automatic reboot</URI>
</RegistrationInfo>
<Triggers>
<CalendarTrigger>
<Repetition>
<Interval>PT10M</Interval>
<Duration>P1D</Duration>
<StopAtDurationEnd>false</StopAtDurationEnd>
</Repetition>
<StartBoundary>2016-11-16T18:30:00</StartBoundary>
<Enabled>true</Enabled>
<ScheduleByDay>
<DaysInterval>1</DaysInterval>
</ScheduleByDay>
</CalendarTrigger>
</Triggers>
<Principals>
<Principal id="Author">
<!-- That's the SYSTEM user -->
<UserId>S-1-5-18</UserId>
<RunLevel>HighestAvailable</RunLevel>
</Principal>
</Principals>
<Settings>
<MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
<DisallowStartIfOnBatteries>false</DisallowStartIfOnBatteries>
<StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
<AllowHardTerminate>true</AllowHardTerminate>
<StartWhenAvailable>true</StartWhenAvailable>
<RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
<IdleSettings>
<StopOnIdleEnd>true</StopOnIdleEnd>
<RestartOnIdle>false</RestartOnIdle>
</IdleSettings>
<AllowStartOnDemand>true</AllowStartOnDemand>
<Enabled>true</Enabled>
<Hidden>false</Hidden>
<RunOnlyIfIdle>false</RunOnlyIfIdle>
<DisallowStartOnRemoteAppSession>false</DisallowStartOnRemoteAppSession>
<UseUnifiedSchedulingEngine>false</UseUnifiedSchedulingEngine>
<WakeToRun>false</WakeToRun>
<ExecutionTimeLimit>PT1H</ExecutionTimeLimit>
<Priority>7</Priority>
</Settings>
<Actions Context="Author">
<Exec>
<Command>schtasks</Command>
<Arguments>/change /tn \Microsoft\Windows\UpdateOrchestrator\Reboot /DISABLE</Arguments>
</Exec>
</Actions>
</Task>
评论
迄今为止,该解决方案是最好和最安全的。谢啦!
– henon
16年11月22日在9:15
自1980年代以来,微软的大脑信任一直使我感到悲伤。那时,这是无能。现在,他们故意这样做。
–user184411
16 Dec 11'在7:04
“现在他们是故意这样做的”,哈哈。我创造了一个我使用的术语:BOP(故意错误)-对于任何表示“按设计”的公司(简单的借口不做更改)。 ;)
–詹姆斯·威尔金斯(James Wilkins)
17 Mar 29 '17在7:31
即使登录到默认管理员帐户,也无法在提升的cmd中运行此命令-i.imgur.com/z0ef7nC.png
–鹅
18/12/20在0:48
如果您打开Task Scheduler并将其禁用,Windows将在第二天愉快地重新启用它,当MS决定他们这样做时,他们基本上宣告了对用户的战争。
– Stijn de Witt
5月14日7:33
#6 楼
控制在应用Windows Update之后Windows何时重新启动您可以控制允许Windows自动执行每个Windows Update操作重新启动的时间,而不禁用任何功能或强制停止Windows Update服务。
此方法不会阻止任何Windows Update的下载或安装,因此OS安全修补程序仍将应用于系统-准备就绪后,只需重新启动即可。
请注意,在任何新修补的漏洞生效之前,可能需要重新启动,因此您需要了解这一点,并且在以适时的方式应用修补程序以确保系统保持正常运行时,仍应定期重新启动安全。
我将在下面进行更详细的说明,但是本质上,它使用批处理脚本来动态设置和更改基于开始时间和结束时间的有效时间设置的相关注册表值它在运行时执行,同时确保将值增加总是提前几个小时。
这是本机Windows解决方案
与Windows 10 Reboot Blocker不同不是Windows本机的解决方案,这是100%Windows本机解决方案,不需要任何第三方软件即可完成任务,该任务使用注册表项来管理Microsoft概述的重新启动行为。
使用任务计划程序进行计划
只需计划单个Batch Scr具有任务计划程序的ipt(下面提供)每天运行两次:
一次在6:05 AM一次
一次在6:05 PM
每次执行都会将ActiveHoursStart和ActiveHoursEnd时间设置为使Windows认为您始终处于活动状态的值,并确保Windows Update操作不会重新启动。
批处理逻辑和此过程的调度是如果遇到任何问题(例如,您会遇到省电模式(例如睡眠或休眠)的问题。)
批处理脚本
注意:注册表值以十六进制格式设置。还要注意,下面的逻辑示例希望脚本仅在6:00:00 AM-6:59:59 AM或6:00:00 PM-6:59:59 PM的帧上执行。不过,可以使用逻辑的
IF %HH%==XX
部分轻松地进行调整。您还可以使用相同的逻辑来测试此功能,以确认更改值是否按预期工作。@ECHO ON
SET HH=%TIME: =0%
SET HH=%HH:~0,2%
IF %HH%==06 SET StartHour=06 & SET EndHour=13
IF %HH%==18 SET StartHour=12 & SET EndHour=07
CALL :ChangeActiveHours
REG IMPORT "%DynamicReg%"
EXIT
:ChangeActiveHours
SET DynamicReg=%temp%\ChangeActiveHours.reg
IF EXIST "%DynamicReg%" DEL /Q /F "%DynamicReg%"
ECHO Windows Registry Editor Version 5.00 >>"%DynamicReg%"
ECHO. >>"%DynamicReg%"
ECHO [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings] >>"%DynamicReg%"
ECHO "ActiveHoursEnd"=dword:000000%EndHour% >>"%DynamicReg%"
ECHO "ActiveHoursStart"=dword:000000%StartHour% >>"%DynamicReg%"
ECHO "IsActiveHoursEnabled"=dword:00000001 >>"%DynamicReg%"
GOTO :EOF
十六进制值(十进制0-255)
注册表
有关将更改的相关注册表设置的一些详细信息,下面我将参考A的部分进行仔细研究Windows 10中的活动时间影响此方法的作用。
活动时间
活动时间不会更改该行为,但会为
Windows 10操作系统,可确保用户在活动时间内不会因重新启动而受到干扰。
活动时间和注册表
>按Windows键,键入regedit.exe,然后按Enter。
确认UAC提示符。
使用左侧的树层次结构导航至以下键:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings
此处提供以下选项:
ActiveHoursEnd:定义功能的结束时间。
ActiveHoursStart:定义功能的开始时间。
IsActiveHoursEnabled:如果设置为1,该功能已启用。如果设置为0,则将其禁用。
如果要更改功能的开始时间或结束时间,请双击其中一项。在打开的
提示符下切换到十进制,然后使用24小时制
输入开始时间。
请注意,您不能仅在注册表中添加分钟完整小时数。
源代码
确认
要确认此项工作正常,您将
按下键一次,然后开始键入Windows Update,直到看到Windows Update设置选项,然后单击它。
单击“更新设置”部分中的“更改活动时间”选项
请注意在“活动时间”窗口中,开始时间和结束时间值,然后按
Cancel
,然后从“设置”屏幕完全关闭。现在运行批处理脚本,确保这些值在运行脚本的时间中相应地在变量中进行设置,以确保其相应地设置开始时间和结束时间的值,并确保其正确运行(如果需要,以admin身份运行)。
现在执行步骤1-再次3并确认“开始时间”和“结束时间”值正确更改。
禁用
当您准备允许Windows Updates根据其更新重新启动计算机时操作,你可以做因此请手动进行,因为此方法不会阻止Windows Updates的下载和安装。但是,如果您需要禁用此作业,只需禁用通过Task Scheduler执行该作业的计划任务即可。
其他资源
用于管理重新启动的注册表项
REG
任务计划程序
任务计划程序已计划批处理脚本未运行检查
使用任务计划程序计划
十六进制值(十进制0-255)
评论
我认为此方法是个好主意,但有一点缺陷。如果您在晚上7点或更晚时间关闭计算机,然后在第二天晚上7点或更晚打开计算机,则您的活动时间将设置为6 PM-7AM,甚至设置为“错过计划的启动后尽快运行任务”在任务设置中启用不会更改它。我认为应该将批处理条件更改为IF%HH%LSS 06 SET StartHour = 12&SET EndHour = 07 IF%HH%GEQ 06 IF%HH%LSS 18 SET StartHour = 06&SET EndHour = 13 IF%HH% GEQ 18 SET StartHour = 12&SET EndHour = 07,使其独立于执行时间。
– Jojo
17年9月8日在7:46
这样可以保证工作吗?重新启动阻止程序工具对我不起作用-我之前尝试过的大多数其他操作也没有。 Win10pro 1607
–米奇
17-09-16在10:21
@MarianKlühspies我很感激!我总是尝试写一些可以使我受益的东西。可以通过较少的步骤和思想就可以将这个过程转换为更易于操作的东西,但是我还没有时间尝试开发一些东西。之前有人为我的一个答案建议了一个GitHub应用程序或其他东西,但可能完全在另一篇文章中。一点也不难找出十六进制不是火箭科学,实际上也不是,但是有时候我想您要变得更加复杂和健壮就必须变得复杂。
–以前的Pimp Juice IT
18-3-30在23:31
非常聪明的解决方案并得到了很好的解释-尽管@MarianKlühspies正确地指出,非技术人员被搞砸了。我对此做了一点修改:IF%HH%== 00 SET StartHour = 00&SET EndHour = 12 IF%HH%== 01 SET StartHour = 01&SET EndHour = 13 ...等等,然后在Task Scheduler中将其设置为每小时运行一次,以及从休眠状态唤醒时运行(如@PimpJuiceIT所述)。
–汤姆·沃菲尔德
19年3月2日在18:15
请参阅此答案superuser.com/a/1456571/351521,了解具有自动计划任务创建功能的PowerShell版本。我还从上面的评论中添加了触发器和设置。
– Marcos
19年7月5日在16:21
#7 楼
我已经制作了一个PowerShell
脚本,该脚本根据此答案(https://superuser.com/a/1208866/351521)动态设置Active Hours
,以防止从Windows Updates
意外重启。它设置以下注册表项:HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings\ActiveHoursStart
HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings\ActiveHoursEnd
HKLM\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings\IsActiveHoursEnabled
您可以在这里获取它:https://github.com / marcosbozzani / Win10ActiveHours
提出建议和请求请求!
更改
从
Batch
转换为PowerShell
(便于理解和理解)依我看,维护)脚本检查的是小时数范围,而不是一个小时(根据该答案的注释中的建议)。
脚本可以安装和卸载
Scheduled task
并设置适当的设置和触发器如果需要,脚本可以手动执行
Scheduled task
创建Github存储库(易于更新和接受更改)
一般信息
将在
\Win10ActiveHours\Update
处创建任务有两个18小时的
Active Hours
窗口:从
18:00
到12:00
从
06:00
到00:00
有四个可以执行任务并在两个窗口之间切换的igger:
计算机启动时
计算机唤醒时
每天在
06:00
/>每天
18:00
这些是任务的设置:
唤醒运行
/>可用时开始
不要在空转端停止
如果使用电池则不要启动
如果使用电池则不要停止
有关更多信息,请参见资源库中的README.md
评论
经过很长一段时间的垃圾回答,我终于来到了这里。谢谢!
–bugmenot123
3月17日7:27
#8 楼
其他答案需要第三方软件或正在运行的任务/服务,并且Windows更新后必须重复许多答案。此解决方案具有以下优点:它快速且容易:只需一个cmd命令
它是永久性的:Windows Update之后无需重复
它是轻量级的:无需运行服务或任务必需
解决方案
以管理员身份在命令提示符中运行以下命令:
cd C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator && rename Reboot Reboot.backup & rename Reboot_Battery Reboot_Battery.backup && rename Reboot_AC Reboot_AC.backup && mkdir Reboot && mkdir Reboot_Battery && mkdir Reboot_AC && copy NUL Reboot\empty_file && copy NUL Reboot_Battery\empty_file && copy NUL Reboot_AC\empty_file
编辑2020-09-15:在此答案底部查看更新。
备份解决方案(如果访问被拒绝错误的情况下)
此命令首先为管理员授予UpdateOrchestrator文件夹和内容的所有权和完全权限。
cd C:\Windows\System32\Tasks\Microsoft\Windows && takeown /F UpdateOrchestrator /A /R /D y && icacls UpdateOrchestrator /reset /T /C && icacls UpdateOrchestrator /T /C /grant *S-1-5-32-544:F && cd UpdateOrchestrator && rename Reboot Reboot.backup & rename Reboot_Battery Reboot_Battery.backup && rename Reboot_AC Reboot_AC.backup && mkdir Reboot && mkdir Reboot_Battery && mkdir Reboot_AC && copy NUL Reboot\empty_file && copy NUL Reboot_Battery\empty_file && copy NUL Reboot_AC\empty_file
它的作用
>由Windows Tasks执行更新后自动重启,特别是
Reboot
,Reboot_AC
或Reboot_Battery
之一。这些任务在C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator
文件夹中的文件中定义。此解决方案重命名了这些文件并创建了具有相同名称的文件夹。然后,它将在每个创建的文件夹中放入一个空文件。
这将有效删除负责自动重新引导的任务,并阻止Windows重新创建它们。
为什么工作
Windows不能在更新后再运行
Reboot
,Reboot_AC
或Reboot_Battery
任务,因为它们不再存在(作为具有不同名称的备份除外)。发生这种情况时,Windows将尝试通过重新创建(或修复)来解决问题。 )预期的任务(文件),然后运行它们。但是,Windows将无法创建所需的文件,因为目标文件夹中存在一个具有相同名称的文件夹,并且同一文件夹中的两个项目不能具有相同的名称。
此外,由于文件夹和文件是不同的东西,Windows将无法将文件夹修改为包含正确任务定义的文件。
最后,由于该命令将空文件放入每个已创建的文件夹中,因此极不可能自动删除它们(可以重新创建任务)。这是因为删除包含内容的文件夹需要递归删除命令,该命令永远不会用于删除预期是文件的东西。
由于这些原因,该解决方案比依赖于更改文件所有权/访问权限的解决方案要强大得多。和/或修改相关任务,在更新过程中Windows可以(并且经常)修复这些问题。
解决方案的源代码和测试
我从中了解了解决方案中使用的技术文章。我一直使用这种技术已有几年了,除了今年1月(2020年),当Microsoft添加了新的
Reboot_AC
和Reboot_Battery
任务(Windows Update现在也使用它们来启动自动重启)时,我一直没有经历过一次自动重启。 我自己更新了解决方案以解决新任务,并且成功完成更改后成功阻止了重新启动。
包括cmd命令在内的整个答案是我自己的原创作品。
更新2020-09-15:
@Simon East评论说一个新任务
USO_UxBroker
刚刚触发了他的系统的重启。任务说明(This task triggers a system reboot following update installation.
)似乎可以确认此任务的目的。我尚未测试过否定此新任务的效果,因此我将由读者自己决定是否值得尝试。如果您有任何有关USO_UxBroker
的信息,请发表评论。 (这是否导致系统重新引导?更新的解决方案是否为您阻止了重新引导?尽管未更改USO_UxBroker
,原始解决方案是否仍阻止了重新引导?)包含
USO_UxBroker
任务的命令:cd C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator && rename Reboot Reboot.backup && rename Reboot_Battery Reboot_Battery.backup && rename Reboot_AC Reboot_AC.backup && rename USO_UxBroker USO_UxBroker.backup && mkdir Reboot && mkdir Reboot_Battery && mkdir Reboot_AC && mkdir USO_UxBroker && copy NUL Reboot\empty_file && copy NUL Reboot_Battery\empty_file && copy NUL Reboot_AC\empty_file && copy NUL USO_UxBroker\empty_file
如果拒绝访问错误:
cd C:\Windows\System32\Tasks\Microsoft\Windows && takeown /F UpdateOrchestrator /A /R /D y && icacls UpdateOrchestrator /reset /T /C && icacls UpdateOrchestrator /T /C /grant *S-1-5-32-544:F && cd UpdateOrchestrator && rename Reboot Reboot.backup && rename Reboot_Battery Reboot_Battery.backup && rename Reboot_AC Reboot_AC.backup && rename USO_UxBroker USO_UxBroker.backup && mkdir Reboot && mkdir Reboot_Battery && mkdir Reboot_AC && mkdir USO_UxBroker && copy NUL Reboot\empty_file && copy NUL Reboot_Battery\empty_file && copy NUL Reboot_AC\empty_file && copy NUL USO_UxBroker\empty_file
评论
我们总是感谢社区成员的贡献,但是您是否有可作为此答案参考的来源,或者您完全自己提出了答案?
– Run5k
3月1日15:36
@ Run5k看到我更新的答案。就是说,我知道我将来的答案-您是否要求提供消息来源以确保原始作者获得应有的信誉,还是因为您对是否有任何文件/测试表明该解决方案确实有效而感到好奇?
–乔基姆(Joakim)
3月1日17:17
通常,这是两者的结合,好先生。我很欣赏一个非常全面的,面向技术的问题……但是通常情况下,它们背后都有一个正式的IT新闻来源。再次感谢。
– Run5k
3月1日19:41
整洁但是我猜想这并不能阻止Winbug在半夜醒来(如果我离开MediaMonkey,我会一直醒来)并一直坚持到我回来为止?
–化学
5月14日21:46
@Chema确实可以防止唤醒,或者至少对我而言是这样:)我认为唤醒是由任务上的“唤醒计算机来运行此任务”设置引起的,当Windows无法调度任务时,该设置已过时跑步。
–乔基姆(Joakim)
5月15日8:22
#9 楼
Windows 10重建了他的Windows更新策略,在以前的版本之间添加了一些区别。即使Windows更新服务已关闭,Windows Update也会强制执行适用于家庭用户的更新,因为某些更新需要强制重启,因此请重新启动调度程序无法关闭。
这并不意味着您无法阻止更新,也许您可以在阻止更新服务器的情况下进行工作,但是假设您有数百个更新服务器,这可能会非常令人讨厌。在整个互联网中做到这一点的方法。
这里有参考的报纸
更新。该软件会定期检查系统和应用程序更新,
并为您下载并安装它们。您只能从Microsoft或授权来源获得更新,
,Microsoft可能需要更新
才能为您提供这些更新。接受此
协议,即表示您同意接收这些类型的自动更新
,而不另行通知。
源Windows 10 EULA
有关Windows Update for Business的一些信息,解释了家庭用户与企业更新优势之间的区别
评论
应该已经指定我正在使用“ Pro”版本。
– mpen
15年8月27日在18:52
通常,更新不是问题,而重新启动和销毁用户的工作则是问题。但是,如今谁需要用户?
– Michael Jaros
16-09-30在20:05
这个答案是完全错误的。禁用Windows Update服务绝对可以解决问题。这是解决问题的唯一方法。自从禁用它已有几个月了,我的计算机从未尝试过自动重启。不要只是“停止”服务...停止并将其设置为“禁用”。问题解决了。想要安装更新时启用它。重写计算机的胆量并杀死所有工作完全不是100%手动操作。微软在Windows 10中所做的事情令人厌恶和恼火。
– Triynko
17年1月10日在3:42
即使将其标记为“禁用”,Microsoft仍将运行父级svchost netsvcs包装器,并且可以在您身上启动并运行Windows更新。
– Warren P
17年1月24日在13:07
2017年6月27日-已经使用了将近两个月,仍然没有强制更新。
–米克
17年6月27日在15:59
#10 楼
似乎“没有为计划的自动更新安装而使用登录用户自动重启”目前在Windows 10上不起作用,但根据Lifehacker.com(http://lifehacker.com/enable-metered-connection上的此文章) -to-delay-windows-10-updates-1723316525),则可能会停止Windows 10中的计量连接或至少进一步延迟Windows Update。Windows 10带有一项功能,可让您指定您的互联网连接受到某种方式的限制,限制或限制。您可能是通过公用Wi-Fi网络与手机共享网络,或者只是在家庭网络中拥有有限的数据上限。通过启用“自动连接”,Microsoft将通过等待强制下载来尊重这一点。要打开它,请按照以下步骤操作:
在开始菜单中搜索“更改Wi-Fi设置”
单击“高级选项”。
启用“计量连接”下的切换。 ”
该方法的主要缺点是仅当您的计算机通过Wi-Fi连接时才有效。由于某些原因,Windows 10不允许您指定通过以太网连接时对连接进行计量(尽管许多家庭互联网连接都具有数据上限)。但是,这应该可以帮助许多典型用户。
评论
只需完全禁用该服务即可。禁用Windows Update是唯一的解决方案。就我而言,事实上,Windows Update的自动重启在2个月内造成的工作破坏和痛苦比我过去20年来遇到的任何病毒或恶意软件的总和还多。禁用WINDOWS更新服务。问题解决了。
– Triynko
17年1月10日,下午3:46
@Triynko我希望您已经改变主意,因为WanaCrypt0r出现了。无论如何,距SQL Slammer摧毁了成千上万的系统不到20年,并且Microsoft在该蠕虫发布之前6个月发布了修复该问题的补丁程序。
–我说恢复莫妮卡
17年5月13日在19:10
#11 楼
原生禁用Windows 10中的Windows Updates****此方法不需要第三方软件****
要获得更多控制,请确保Windows Update操作仅适用于Windows 10 OS时,请使用两个脚本和一个预定的任务作业,请参阅以下步骤。
不管启动Windows Update的任何预定任务或其他进程如何,此方法都将起作用正确设置并启用该作业并以足够短的时间间隔运行。
本质上,这将
每分钟检查一次Windows Update服务是否正在运行,并采取以下两个操作之一(是否为TRUE)或FALSE。 。
。
如果正在运行,则使用NET STOP强制停止该服务,确保未应用Windows
如果未运行更新,则该进程结束直到使用Task Scheduler在下一个计划的触发器上执行
您将需要做三件事以确保它能按预期工作
创建简单的批处理脚本,该脚本将检查Windows Update是否正在运行,并杀死它(如果已运行)
这只是一个文本文件,文件扩展名为
.cmd
创建简单的VB脚本,该脚本将执行批处理脚本,但以隐藏的方式执行,因此不会弹出每次运行时都会自动运行
这只是一个文本文件,并使用
.vbs
文件扩展名重命名创建计划的任务以使其每分钟运行一次无限期使用Windows Task
Scheduler
安装和配置形象化
下面是设置这三个简单事物的详细步骤。
1。批处理脚本
注意:将以下逻辑保存到文本文件并重命名以具有扩展名
.cmd
例如。 DisableWU.cmd
。@ECHO OFF
TASKLIST /SVC | FINDSTR /I /C:"wuauserv"
IF %ERRORLEVEL%==0 GOTO :StopWUService
GOTO :EOF
:StopWUService
FOR %%A IN (wuauserv) DO NET STOP /Y "%%~A"
GOTO :EOF
2。 VBS脚本
注意:将以下逻辑保存到文本文件并重命名以具有扩展名
.vbs
例如。 DisableWUHidden.vbs
。此外,请确保在下面的逻辑中相应地放置了正确的完整路径和文件名值(用于保存批处理文件),以代替C:\FolderPath\DisableWU.cmd
值。Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:\FolderPath\DisableWU.cmd" & Chr(34), 0
Set WinScriptHost = Nothing
3。 Task Scheduler Job
按 +
R
,输入taskschd.msc
并按Enter
。右键单击右窗格中的“任务计划程序库”选项,然后选择“ Create Task
”选项。从“
General
”选项卡中,确保“运行是否登录用户”和“以最高特权运行”选项是从
Triggers
选项卡中,确保将Daily选项设置为Recurr every:1天,并每1分钟检查一次Repeat任务设置并指定为期1天的时间,并选中“启用”选项。从
Actions
选项卡中,确保Program \ script:指向完整的显式VB脚本的路径,并确保“开始于”(可选):仅指向同一VB脚本所在的文件夹路径。 要完成并保存,请按
OK
(也许两次),然后从具有以下权限的帐户中输入用户名和密码凭据信息:(1.具有运行权限Task Scheduler的任务,以及(2.拥有执行和读取权限,可以保存将要执行的脚本的位置。确认其正常工作
对于快速测试以确认可以正常运行,请执行以下操作:
按 +
R
,键入services.msc
,然后按Enter
向下滚动到Windows Update,右键单击它,然后选择“开始”,直到看到状态,然后转到“运行”。
现在只需每隔几秒钟按一次
F5
即可刷新屏幕,以查看服务状态是否发生了变化最终,您应该看到状态变为
Blank/Null/Empty/Nothing
,指示服务未运行。如果您在停止操作过程中刷新,则可能会注意到该服务的状态值为“正在停止”。这意味着是否启动Windows Update,计划任务都会启动它或任何其他启动它的进程,如果在启用并运行此作业时正在运行,它将每60秒被杀死一次。这有助于确保Windows Update操作永远没有足够的时间来完成任何更新的下载或安装。
注意:如果在某些情况下不够快,可以轻松地将计划的间隔调整为运行60秒以上。
要禁用
尽管应按定期的定期维护间隔进行操作,但也应定期应用Windows Update,以确保系统使用最新的安全修补程序等为最新。这不是一种完全不应用Windows Update的方法,因为在许多环境中这些更新都是至关重要的和必要的,因此,它旨在为您提供更好的控制权,以便您选择何时在环境中应用这些更新。
要禁用此过程以允许您在准备就绪时手动安装Windows Update,您只需转到使用“任务计划程序”计划的作业,右键单击它,然后选择“禁用”选项以禁用该作业,从而阻止Windows Updates服务的终止。
一旦禁用,只需执行手动应用Windows Update修补操作系统的操作即可。一旦应用了更新并且您的电源重启完成(如果适用),请简单地启用该作业,使其再次开始运行。
其他资源
任务列表
FindStr
NET STOP
任务计划程序
任务计划程序计划的批处理脚本未运行检查
评论
似乎已停止工作?我可以手动停止该服务,但是运行WU时运行批处理文件/ vbs并没有执行任何操作。但是我怀疑WU已更改名称以使名称匹配失败吗?
–阿德莱德爵士
19年11月22日在3:07
@SirAdelaide您正在运行什么版本的Windows 10? 1903、1909还是什么?
–以前的Pimp Juice IT
19年11月22日在4:31
1803 Win 10专业版。我有一个问题,无法更新到1903等,但是Windows喜欢继续尝试,并且重启次数过多,因此为什么我要阅读此页面
–阿德莱德爵士
19年11月22日在6:02
@SirAdelaide尝试使用此方法或失败的媒体安装工具通过microsoft.com/en-us/software-download/windows10进行更新。您可以通过services.msc界面手动停止Windows Update服务,删除C:\ Windows \ SoftwareDistribution文件夹,然后通过链接手动将更新运行到1903。我个人并没有从1803到1909,但是我认为:如果最终要这么做,那么您必须先到1903,然后才能进入1909。PC是否属于偶然具有组策略的域?而不管。
–以前的Pimp Juice IT
19年11月22日在11:42
#12 楼
根据此答案,需要两个动作来在用户登录时禁用强制重启。
答案基于一篇文章(意大利语)。
两个必需的设置是:
设置注册表项
NoAutoRebootWithLoggedOnUsers
设置
Configure Automatic Updates policy
的策略我没有能力在所有Windows版本中进行测试,
也不能保证它明天仍能工作。
这是设置这两个设置的方法。
禁用更新(注册表)后强制重新启动
只要某些用户登录,此注册表修改将禁用强制重新启动。
单击Win + R,键入
regedit
,然后按Enter键。导航到键HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
如果
WindowsUpdate
或其子项AU
不存在,请创建它们手动单击鼠标右键,在右侧面板上,然后输入New ->
Key
,键入缺少的键名称,然后按Enter。o
AU
键,右键单击右侧面板,选择New
,然后选择DWORD (32-bit)
。键入
NoAutoRebootWithLoggedOnUsers
并按Enter 双击该项目,将其值更改为1并按OK。
修改Windows Update设置(本地组策略)
按Win + R,键入
gpedit.msc
,然后按Enter。导航到
Computer Configuration -> Administrative Templates -> Windows Components -> Windows Update
。在右窗格中找到
Configure Automatic Updates
策略,然后双击它。选择已启用,然后选择
2
(通知下载并通知安装)。单击应用。
按OK保存更改。
最后,重新启动PC。
有关Windows 10 Enterprise的注意事项
我正在运行Windows 10 Enterprise的延迟更新。 >对于可能有帮助的地方,这是我的注册表设置,来自
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
:在本地组策略编辑器中,
Configure Automatic Updates
设置为Enabled
,而Option
设置为2
。#13 楼
规范指导提供更清晰的指导人们来此帖子寻求答案的原因似乎有两个:
如何完全禁用Windows Updates因此它永远不会运行。
如何控制应用Windows Update后Windows重新启动的时间
由于这篇文章的答案太多,而且每次悬赏都要求提供规范答案,所以我想根据这篇文章的答案,我会竭尽全力地为手头的任务提供更清晰的指导。因此,如果应用此类更新,则这些过程随后可能无法按预期的方式工作。
#1完全禁用Windows更新
警告
如“停止Windows 10自动更新您的
PC”中所述。 。 。
“通常,最新的操作系统是安全的
操作系统。Windows 10会自动检查,下载并
为您的计算机安装新更新。 PC –无论您喜欢与否。此
新功能实际上对于大多数用户来说非常方便,但是
每个人都希望按照Microsoft的时间表更新其操作系统。”
源代码
要完全禁用Windows更新,您可以按照此帖子中两个特定答案的说明进行操作,它们分别链接为#1和#2,并执行至少同时指定#1或#1和#2中指定的操作,以实现更彻底的操作。
本地禁用Windows 10中的Windows更新
关闭Windows Windows 10中的更新和禁用任务计划程序作业
对于此答案,在“禁用任务计划程序作业”部分中的
/Microsoft/Windows/Windows Updates
容器中的计划任务中,可能值得禁用所有这些作业。在那里彻底检查。#2控制Windows更新安装后Windows重新启动的时间
警告
请注意,在任何新修补的漏洞生效之前,可能需要重新启动。您需要了解这一点,并且
在以适时的方式应用补丁时仍然会定期重新启动
,以确保您的系统保持安全。
对于大多数人来说,至少有两个最有效的答案,所以我将以Windows本机解决方案开始,然后向您介绍第三者解决方案。
要控制Windows Update安装后Windows重新启动的时间,您可以按照以下步骤操作此帖子中这两个答案之一的说明。 。 。
Windows Native:控制Windows何时应用Windows Update后重新启动
第三方应用程序:Windows 10 Reboot Blocker
下载重新启动阻止程序
#14 楼
如果您绝对不允许在没有Windows系统的情况下因Windows更新而重新启动系统,安排维护停机时间或任何情况,则可以禁用Windows Update服务。手动控制Windows更新
这意味着除非重新启用然后手动下载,安装,重新启动等,然后禁用一次,否则此计算机将无法获取重要的安全更新等。
警告:这可能很危险,不建议这样做,尤其是在家庭网络环境中。但是,在业务或数据中心环境中,公司通常会控制何时进行更改,安装安全更新,打补丁OS等。
在Windows 10中关闭Windows Updates。
您可以使用Windows Update服务来执行此操作。通过控制面板>
管理工具,可以访问服务。在“服务
”窗口中,向下滚动到Windows Update并关闭该过程。要
将其关闭,请右键单击该进程,单击“属性”,然后
选择“禁用”。这样可以解决未在计算机上安装Windows Updates的问题。
但是由于Windows是
现在的服务,
以后,您必须保持计算机更新。为了能够安装下一组功能或较新的版本,您将需要安装
较早的更新。这就是为什么如果使用上述
解决方法,则必须转到服务并在一段时间内将其打开一次
,才能下载和更新Windows副本。
手动启动Windows Update并运行它
打开Windows Update服务后,在PC设置中打开Windows
Update时,您会看到一条消息,提示没有更新
因为计算机已停止安装。您必须点击
重试,以便下载并安装所有可用的更新。
这可能需要两个或三个“检查更新”。您必须继续单击“检查更新”,直到它说您的计算机是最新的。然后,您可以返回并关闭Windows Update服务
,直到下次您觉得自己有足够的时间来花时间更新Windows 10副本时。
源
/>
禁用任务计划程序作业
似乎有一些与Windows Update相关的计划任务可能计划触发Windows Update。
按 +
R
,输入taskschd.msc
并按Enter
。导航到Task Scheduler Library
> Microsoft
> Windows
> WindowsUpdates
,然后右键单击并为名为“计划启动”的作业选择Disable
选项。其他资源
使用Windows 10如何在不安装更新的情况下关机?
#15 楼
更新:经过测试,我以前的解决方案无法生效。 Microsoft似乎已经实现了阻止其运行的功能。我的最终解决方案是使用名为StopUpdates10的实用程序。它结合了我在过去几个月中学到的所有技术,尤其是多个注册表更改和禁用多种服务-而不是仅是不断提及但不能单独发挥作用的夫妇。
直到昨晚,我一直阻止我的计算机(除非我专门安排停机时间,否则它托管需要24/7开机的服务)不会自动应用更新并重新启动。我是通过禁用Windows Update服务来完成此操作的,这是这里的答案之一。
今天早晨,我发现它已自动重新启动,并且Windows Update服务已重新启用。这不是Windows 10以前为我展示过的行为。我只能假定2018年发生了一些变化,并且Microsoft今年已经推出了一个更新(我将在手动更新系统时应用该更新),即使您已禁用它也可以重新启用Windows Update服务。 br />
之后,我再次禁用了Windows Update服务,但现在还从HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ wuauserv中删除了所有继承的权限,并仅授予我除只读访问权限之外的任何权限。
此外,我还拥有C:\ Windows \ System32 \ sihclient.exe(负责后台更新的二进制文件)的所有权,除我本人之外,删除了对它的所有权限,并重命名了。 />
直到一个或多个月过去,我才能知道这是否成功(一个或另一个或两个)。
评论
@PimpJuiceIT我一旦考虑到我的解决方案是否真的有效,便会考虑一下。 :)不幸的是,除非有人对此有确切的信息,否则它现在只是一个等待中的游戏。
–詹森·巴斯福德(Jason Bassford)
18年5月29日在19:03
嗨,杰森,欢迎光临该网站。这是有趣的信息,但可能为时过早。最好等到您确认它可行为止。
–fixer1234
18年5月29日在22:36
#16 楼
第三方产品随着Windows规则和方法的改变且永远无法使用任何方法,以下是一些免费的第三方产品,这些产品将推迟关机(以及更多)。
它们可能会使用Windows允许任何程序否决即将关闭或禁用Windows系统服务的API。
Windows Update Blocker
便携式便携式软件,可帮助完全禁用或启用Windows上的自动更新。一键单击。
可以很好地禁用Windows Update系统服务,
包括不可阻挡的
Windows Update Medic服务。
不要睡觉
该程序可以阻止任务栏上的各种Windows事件,
仅在2019年1月进行了更新。
ShutdownGuard
系统托盘中的一个较旧的程序,可以防止Windows关闭向下,
重新启动或注销。
任务栏菜单中有一些选项,例如隐藏任务栏图标,
禁用程序请暂时关闭ram并强制关机,并在
.ini
文件中提供其他一些配置设置,该文件可以使用记事本进行编辑。关闭它!
关闭它!可以监视并阻止关闭和重新启动等操作,但是它还可以
针对当前正在执行的应用程序进程或Windows
执行此操作,并对匹配的程序执行不同的操作。
仅此功能可以从第三方网站下载。
源:
4个用于防止,取消和中止Windows系统在应用程序运行时关闭或重新启动的工具
评论
现在,“周年更新”可以选择在不使用计算机时进行安装,但实际上并没有任何改善。有时我会在一夜之间将下载或长时间运行的进程留在Windows之下,这会谋杀并隐藏其结果。这里还有另一个有效的解决方案:justpaste.it/HowDisableWindows10Update
史诗般的失败。唯一的解决方案是完全禁用Windows更新服务。我禁用了它。问题解决了。
更糟糕的是,我的PC从休眠状态醒来以执行此功能,然后坐在那里重新进行了整夜的睡眠。微软会支付我的电费吗?
令人遗憾的是,Windos投票最多的答案既复杂又过时,而且肯定不适用于Home版本(就我所知,它可能不适用于任何版本)。 FYI Erwin的简单得多的答案一直持续到今天(2018年1月)。还有其他答案似乎很有希望,但我尚未对其进行测试。有250,000的意见,这个问题对于许多人来说显然是非常重要的...我认为这里的管理员应该允许重新提出这个问题,以确保上下投票反映答案的当前状态。