如何*禁用* Windows 10中的自动重启?


547

Windows 10允许您“计划”重新启动以供以后使用。我要禁用它。

显然,昨天晚上我不在时,Windows计划将自己重新启动,并关闭了前一天晚上一直在工作的所有内容。

我按常规重启;我不需要Windows为我做这件事。

我可以完全禁用它吗?我不介意它是否下载了所有内容,然后说“嘿,您应该重新启动”,但永远不要重新启动自己。

我正在使用Windows 10的“专业版”。


49
现在,“周年更新”可以选择在不使用计算机时进行安装,但实际上并没有任何改善。有时,我会在一夜之间将下载或长时间运行的进程留在Windows之下,这会谋杀并隐藏其结果。
mpen

4
这里还有另一个有效的解决方案:justpaste.it/HowDisableWindows10Update
Rob

22
更糟糕的是,我的PC从休眠状态醒来以执行此功能,然后坐在那里重新进行了整夜的睡眠。微软会付我的电费吗?
Lightness Races in Orbit

7
令人遗憾的是,Windos投票最多的答案既复杂又过时,而且肯定不适用于Home版本(就我所知,它可能不适用于任何版本)。FYI Erwin的简单得多的答案一直持续到今天(2018年1月)。还有其他答案似乎很有希望,但我尚未对其进行测试。有250,000的意见,这个问题对于许多人来说显然是非常重要的...我认为这里的管理员应该允许重新提出这个问题,以确保上下投票反映答案的当前状态。
米克,

2
那么,2018年可接受的答案是什么?没有时间尝试所有精心设计的方法
普鲁斯旺

Answers:


44

您可以尝试Windows 10 Reboot Blocker

一个简单的Windows服务,它将在后台更新此“活动时间”时隙。

它是免费的,并且可以与周年更新一起使用。


2
我喜欢。看起来做得不错,具有安装程序和卸载程序,并且可执行文件具有有效的签名。它的作用非常简单而且是一个好主意:这就像您每小时手动告诉Windows正常的工作时间是接下来的12个小时,并且在此期间不应该重新启动一样。
maf-soft

1
我没有尝试过,但是我想知道是否可以通过命令行和任务计划程序轻松完成。;)
James Wilkins

1
Windows将自动安装更新,但不会在背后自动重新启动(缺少此基本功能!)。您可以只检查Windows Update,以了解是否正在等待重新启动,并在适当时机进行。
艾文(Erwin)

3
仅供参考... 尽管不需要链接,但您不需要免费的非开放源代码第三方软件,尽管该链接仅回答您提供的信息,但现在可以使用,但是此逻辑在幕后究竟做了什么,我们可能不知道100%当然。您可以按照superuser.com/questions/957267/…控制何时进行Windows Update后重新启动操作。也许不如仅链接回答那么简单,但至少是Windows固有的,您可以确切地看到和控制它的作用。一旦安装完成,这确实很简单。
Pimp Juice IT

4
2017年7月24日:自从安装Reboot Blocker以来-两个半月后,我可以确认未经我的同意,我的PC仍然从未重启过。
米克

242

注意:不幸的是,这似乎在Windows 10 Home上不起作用,并且我不确定该版本的用户是否可以使用该解决方案。


我将其发布为另一个问题的答案,但由于该问题似乎与该问题重复,因此我也会在此处提供它:

您可以编辑本地组策略设置,以强制Windows更新仅下载更新,但等待输入安装(并因此重新启动)。

打开开始菜单,然后输入,然后单击编辑组策略。

展开计算机配置 \ 管理模板 \ Windows组件 \ Windows更新

本地组策略编辑器-Windows Update

双击“ 配置自动更新”并启用该策略,然后根据需要对其进行配置。

配置自动更新

返回Windows Update,然后单击“ 检查更新”。完成后,单击“ 高级”选项

您应该看到新设置已被“强制执行”。

强制执行Windows Update设置

在测试虚拟机上应用此设置后,我没有打开Windows Update,并注意到它开始下载。

Windows Update下载

完成下载后,您将收到烤面包通知,其中有更新,需要安装它们。

Windows Update手动安装

请注意,您必须单击立即安装。从开始菜单重新启动或关闭似乎不会触发安装过程。


更多信息:

我不确定在Windows 10的家庭版中是否可以选择编辑本地组策略,但是通过注册表应该可以得到相同的结果(由于我自己使用策略方法,因此我没有对此进行测试)。如果非专业用户也来寻找答案,请包括此内容。

  1. Win+ R并输入regedit,然后按Enter
  2. 导航至HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
    (如果不存在,则可能需要手动创建密钥)
  3. 创建一个新的DWORD值,AUOptions然后输入23

    2=下载前通知
    3=自动下载并通知安装

  4. 重启电脑

  5. 检查更新
  6. 检查高级设置

周年更新(1607)之后进行的更新:

最近,我收到许多人的评论,说在周年更新之后,这种做法不再有效。

我一直在运行一些测试,在此处的两个博客文章中对此进行了详细介绍:

这些测试已经运行了近三个星期,但我还没有看到任何强制重启。

根据这些结果,看来这仍然有效

Windows 10 Professional屏幕截图-20天的运行时间

注意事项:

  • 我未在“活动时间”或“重新启动选项”附近设置任何设置。
  • 除非您准备安装重新启动,否则请不要单击Windows Update UI中的“立即安装”按钮。一旦安装了更新,就不会阻止Windows决定重新启动。
  • Windows会在屏幕上让您吐司,操作中心警报和横幅困扰您。只要您不安装更新,就可以了(但请最终安装它们。)

6
我在Win10 Enterprise上使用了这些设置,显然它在本周末(原是星期六3:31)重新启动。必须有一个额外的开关来禁用该烦人的行为。
mbx

5
@windows我已经在组策略编辑器中启用了“对计划的自动更新安装没有登录用户的自动保留”。到目前为止还没有帮助。
mbx 2015年

3
我不确定在周年更新(1607)中是否还能继续使用,界面和选项已经有所更改。仍在测试中。
Windos

162
为什么在设置中它不是一个简单的复选框:“想到时不要破坏我的工作”是准确的词汇。我什至会认为“不要在PuTTY运行时重新启动”。为什么总是使用reg hacks。
布兰登

23
认为这是“我也是”答案,但是即使进行了这些更改,它仍然会重新启动(Win 10周年更新)。极其沮丧。工作丢失了,会议消失了,令人发指。
Jeroen Ritmeijer '16

48

我已解决此问题,这是我尝试修复Windows 10中的另一个垃圾设置的一部分(它将唤醒您的设备,并且您在此过程中将安装未批准的更新。)

在此处查阅我的指南的步骤2。它说明了如何修改Windows Scheduled Tasks列表的“ UpdateOrchestrator”部分中的“ Reboot”任务,以禁用它并阻止Windows对其进行干扰。禁用此任务后,您的计算机将永远不会重新引导,除非您指示进行操作。

干杯-海鸥


20
您的链接位于站点内,因此断开链接的风险不大。但是最好使答案独立。考虑在此处添加基本信息,并保留链接以归因于其他答案。如果您只是要将读者重定向到其他地方,甚至可以在评论中完成。
fixer1234 '16

1
就是这个!我很困惑,即使服务未运行,该愚蠢的事情也如何重新启动了PC,这就是原因!谁会一直认为是Windows Update会进行调整的一些计划内的计划任务。现在可以下载并安装更新了,但是我可以在需要时重新启动。Windows并没有任何限制性的“非工作时间”的想法,Windows认为我没有使用计算机。
japzone

4
不幸的是,这也不再起作用。Windows将在无提示的情况下重新启用该任务,并忽略文件许可权,并且在运行更新时也将其重置。
qasdfdsaq,2016年

1
仍然无法验证。我将Windows 10更新到最新版本– 14393.447 –我的“重新启动”任务没有受到其权限的干扰。管理工具中的“任务计划程序”仍对此任务说“已禁用”。
海鸥

1
@qasdfdsaq我可以确认这在家庭10上不起作用。我遵循一个月前的所有步骤,昨晚Windows在已禁用的无权限更新协调器上添加了一个任务,该任务可以运行一次并在昨晚自动重新启动。
user5389726598465 '17

45

解决此烦恼问题的最佳方法是使用任务计划程序。

单击开始,然后键入任务计划程序

导航到任务计划程序库>> Microsoft >> Windows >> UpdateOchestrator

要禁用自动重启,请右键单击“ 重启”,然后选择“禁用”。

在此处输入图片说明

然后,请确保更改权限。应设置为读取并执行

我还通过禁用此文件夹中的所有任务来禁用自动更新。


9
@ppvi我希望,但不,它仍然会重新启动
Thomas

4
对于Windows 10 Home,这对我也不起作用,因为系统只是重新启用了它。这对方的回答表明,你做同样的事情,但你也必须改变,从保持Windows许可重新启用它:superuser.com/a/1125051/139323
orrd

2
不起作用 Windows会忽略这些文件的权限。
qasdfdsaq,2016年

3
qasdfdsaq是正确的。我将任务禁用了一周,然后昨晚重新启动了计算机。查看了任务并启用了它。就像更新服务一样,如果禁用它,Windows将再次启用它。现在,我将要删除它。我怀疑它会被重新添加。Windows 1607(14393.447)
贾斯汀·埃姆莱

2
nircmd不是Windows本机消息传递实用程序。对于Windows 10,“ msg”是,因此对于那些不想下载其他工具的人,只需将其%windir%\system32\msg.exe * /SERVER:localhost "Windows needs a reboot to finish its updates, please restart ASAP."用作重新启动操作即可。我强烈建议您也先对任务进行导出,然后再对其进行更改,以便进行备份(以防万一,这是一个好主意)。
詹姆斯·威尔金斯

31

您可以使用Windows自身的工具来禁用自动重新启动。

正如其他一些答案所提到的,Windows使用称为的计划任务运行重新启动\Microsoft\Windows\UpdateOrchestrator\Reboot。但是,如果您打开Task Scheduler并将其禁用,Windows将在第二天愉快地重新启用它-即使您将其权限更改为只读。

不必每天进入Task Scheduler UI来禁用任务,我们可以使用schtasks命令行实用程序来修改任务,从而自动进行设置。


如果计划重新启动,则以下命令(具有管理特权)将禁用该任务:

schtasks /change /tn \Microsoft\Windows\UpdateOrchestrator\Reboot /DISABLE

知道了这一点,您可以创建自己的计划任务来定期运行上述命令并禁用Windows的阴险小方案。如果您熟悉如何使用任务计划程序,请设置自己的任务。

除此以外,

  1. 将下面的标记复制并粘贴到文本编辑器中。
  2. 将其另存为XML文件。
  3. 在任务计划程序中,单击操作>导入任务...,然后选择此文件。
  4. 根据需要调整配置。
<?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>

3
迄今为止,该解决方案是最好和最安全的。谢啦!
亨农

15
自1980年代以来,微软的大脑信任一直使我感到悲伤。那时,这是无能。现在,他们故意这样做。
user184411 '12

不,不能相信这一点。禁用Windows Update服务是唯一可靠的解决方案。这是确保Windows不会在您最不期望的情况下真正破坏您正在处理的所有内容的唯一方法。
Triynko

1
“现在他们故意这样做了”,哈哈。我创造了一个我使用的术语:BOP(故意错误)-对于任何表示“按设计”的公司(简单的借口不做更改)。;)
詹姆斯·威尔金斯

2
即使登录默认的管理员帐户,我也无法在提升权限的
Goose

23

控制应用Windows更新后Windows何时重新启动

您可以控制允许Windows根据Windows Update操作自动重新引导的时间,而不禁用任何功能或强制停止Windows Update服务。

这种方法不会阻止任何Windows Update的下载或安装,因此OS安全修补程序仍将应用于系统-准备就绪后,只需重启即可。

请注意,在任何新修补的漏洞生效之前,可能需要重新引导,因此您需要了解这一点,并且在以某种及时的方式应用修补程序以确保系统安全的同时仍需要例行重新引导。

我将在下面详细解释,但本质上这使用批处理脚本动态设置和改变的了的相关注册表值有效时间设置为开始时间结束时间根据它的同时确保递增值始终执行的运行时间要提前几个小时。


这是本机Windows解决方案

诱骗Windows的Windows 10 Reboot Blocker解决方案不同,这是一种诱骗Windows的100%Windows本机解决方案,不需要任何第三方软件即可完成任务。


使用任务计划程序进行计划

只需使用Task Scheduler安排一个批处理脚本 (下面提供)即可每天运行两次:

  1. 一次在6:05 AM
  2. 一次下午6:05

每次执行都会将ActiveHoursStartActiveHoursEnd时间设置为使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的十六进制值

在此处输入图片说明


注册表

有关此相关注册表设置的一些详细信息,它将更改,下面,我将参考“ 仔细查看Windows 10中的活动时间 ”部分,了解此方法将影响什么。

营业时间

活动时间并不会改变这种行为,但是会为Windows 10操作系统添加一种机制,以确保用户在活动时间中不会受到重启的影响。

营业时间和注册表

  1. 点击Windows键,键入regedit.exe,然后按Enter。

  2. 确认UAC提示。

  3. 使用左侧的树层次结构导航到以下键:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings

此处提供以下选项:

  • ActiveHoursEnd:定义功能的结束时间。
  • ActiveHoursStart:定义功能的开始时间。
  • IsActiveHoursEnabled:如果设置为1,则启用该功能。如果设置为0,则禁用它。

如果要更改功能的开始或结束时间,请双击其中一项。在打开的提示上切换到十进制,然后使用24小时制输入开始时间。

请注意,您不能仅在整个小时内在注册表中添加分钟。

资源


确认中

为了确认这项工作是否例外,您将

  1. 一次按下该在此处输入图片说明键,然后开始在Windows Updates中键入,直到看到Windows Update Settings选项,然后单击它

    在此处输入图片说明

  2. 点击“ 更新设置”部分中的更改工作时间选项

    在此处输入图片说明

  3. 在“ 活动时间”窗口中记下开始时间结束时间值,然后按,然后从“ 设置”屏幕完全关闭。Cancel

    在此处输入图片说明

  4. 立即运行批处理脚本,确保在运行脚本的时间中已在变量中相应地设置了值,以确保其相应地设置了开始时间结束时间的值,并确保其运行时没有错误(如果需要,请以admin身份运行)。

  5. 现在再次执行步骤1-3,并确认正确更改了开始时间结束时间值。


禁用

准备好允许Windows Update根据其更新操作重新引导计算机时,可以手动进行,因为此方法不会阻止Windows Updates的下载和安装。但是,如果您需要禁用此作业,只需禁用通过Task Scheduler执行该作业的预定任务即可。


更多资源


2
我认为此方法是个好主意,但有一点缺陷。如果您在晚上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

这样可以保证工作吗?重新启动阻止程序工具对我不起作用-我之前尝试过的大多数其他操作也没有。Win10pro 1607
Mikey

1
@MarianKlühspies我很感激!我总是尝试写一些别人可以在我能得到的帮助下发挥作用的东西。可以通过较少的步骤和思想就可以将这个过程转换为更易于操作的东西,但是我还没有时间尝试开发一些东西。有人之前曾建议过一个关于GitHub应用程序或类似内容的建议,但可能完全是在另一篇文章中。一点也不难找出十六进制不是火箭科学,实际上也不是,但是有时我不得不变得复杂一些,我想它具有更大的灵活性和鲁棒性。
Pimp Juice IT

1
非常聪明的解决方案并得到了很好的解释-尽管@MarianKlühspies正确地指出,非技术人员被搞砸了。我修改了批处理文件一点点,这个:IF %HH%==00 SET StartHour=00 & SET EndHour=12 IF %HH%==01 SET StartHour=01 & SET EndHour=13 ...等,然后将其设置在任务计划为每小时运行,以及从休眠唤醒(由@PimpJuiceIT描述
汤姆·沃菲尔德

1
请参阅此答案superuser.com/a/1456571/351521PowerShell以获得自动Scheduled task创建的版本。我还从上面的评论中添加了触发器和设置。
Marcos

5

Windows 10重建了他的Windows更新策略,从而在以前的版本之间添加了一些区别。

即使关闭了Windows更新服务,Windows Update也会强制执行适用于家庭用户的更新,因为某些更新需要强制重启,因此无法关闭重启计划程序。

这并不意味着您不能阻止更新,也许您可​​以像阻止更新服务器那样进行工作,但是假设您在整个Internet中有成百上千种方法可以进行更新,那可能会非常令人讨厌。

此处参考的报纸

更新。该软件会定期检查系统和应用程序更新,并为您下载并安装它们。您可能只能从Microsoft或授权来源获得更新,并且Microsoft可能需要更新系统才能为您提供这些更新。接受此协议,即表示您同意接收这些类型的自动更新,恕不另行通知。

来源Windows 10 EULA

有关Windows Update for Business的一些信息,解释了家庭用户与企业更新的优势之间的区别这里


应该已经指定我正在使用“ Pro”版本。
mpen

13
通常,更新不是问题,而重新启动和销毁用户的工作则是问题。但是,如今谁需要用户?
Michael Jaros

1
这个答案是完全错误的。禁用Windows Update服务绝对可以解决问题。这是解决问题的唯一方法。自禁用它已有几个月了,我的计算机从未尝试过自动重启。不要只是“停止”服务...停止并将其设置为“禁用”。问题解决了。想要安装更新时启用它。重写计算机的胆量并杀死所有工作完全不是100%手动操作。微软在Windows 10中所做的事情令人厌恶和恼火。
Triynko

1
即使将其标记为“禁用”,Microsoft仍将运行父级svchost netsvcs包装器,并且可以在您身上启动并运行Windows更新。
沃伦·P

2017年6月27日-已经使用了将近两个月,仍然没有强制更新。
米克(Mick)

5

似乎“没有为计划的自动更新安装而使用登录用户自动重启”目前在Windows 10上不起作用,但是根据Lifehacker.com上的这篇文章(http://lifehacker.com/enable-metered-connection -to-delay-windows-10-updates-1723316525),则在Windows 10中启用计量连接可能会停止或至少会进一步延迟Windows Update。

Windows 10具有一项功能,可让您指定以某种方式限制,限制或限制您的Internet连接。您可能是通过公共Wi-Fi网络与手机共享网络,或者只是在家庭网络中拥有糟糕的数据上限。通过启用“计量连接”,Microsoft将通过等待强制下载来尊重这一点。要打开它,请按照下列步骤操作:

  1. 在开始菜单中搜索“更改Wi-Fi设置”
  2. 单击高级选项。
  3. 启用“计量连接”下的切换。

这种方法的主要缺点是,仅当您的计算机通过Wi-Fi连接时,该方法才有效。由于某些原因,Windows 10不允许您指定通过以太网连接时对连接进行计数(尽管许多家庭Internet连接都具有数据上限)。但是,这应该可以帮助许多典型用户。


3
只需完全禁用该服务即可。禁用Windows Update是唯一的解决方案。就我而言,实际上,Windows Update的自动重启在2个月内造成的工作破坏和痛苦比我过去20年来遇到的任何病毒或恶意软件的总和还多。禁用WINDOWS更新服务。问题解决了。
Triynko

@Triynko我希望您现在已经改变主意,因为WanaCrypt0r出现了。无论如何,距SQL Slammer数以万计的系统崩溃以来还不到20年,并且Microsoft 在该蠕虫发布之前6个月发布了修复该问题的补丁程序。
Twisty模仿者,

4

本地禁用Windows 10中的Windows更新

**** 此方法不需要第三方软件 ****

要获得更多控制以确保Windows Update操作仅在需要时才适用于Windows 10操作系统,请参阅以下使用两个脚本和一个计划任务任务的步骤。

如果正确设置了Windows Update,并且启用了作业并以足够短的间隔运行,则无论启动Windows Update的任何计划任务或其他进程如何,此方法都将起作用。

本质上这会

  1. 每分钟检查一次,看看Windows Update服务是否正在运行,并采取以下两个操作之一,即TRUE或FALSE。。。
    • 如果正在运行,则使用NET STOP强制停止该服务,以确保未应用任何Windows更新
    • 如果未运行,则该过程结束,直到使用Task Scheduler在下一个计划的触发器上执行为止

您将需要做三件事以确保其按预期工作

  1. 创建简单的批处理脚本,该脚本将检查Windows Update是否正在运行,如果正在运行则将其杀死
    • 这只是一个以.cmd文件扩展名重命名的文本文档
  2. 创建简单的VB脚本,该脚本将执行批处理脚本,但以隐藏的方式进行,因此每次运行时都不会弹出
    • 这只是一个以.vbs文件扩展名重命名的文本文档
  3. 使用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.任务计划程序作业

+,输入,然后按。右键单击右窗格中的“ 任务计划程序库”选项,然后选择该选项。在此处输入图片说明 Rtaskschd.mscEnterCreate Task

General选项卡中,确保选中“ 运行是否登录用户”“以最高特权运行”选项,以使两者均已启用且有效。

在此处输入图片说明

Triggers选项卡中,确保将“ 每日”选项设置为“ 每隔1天重复一次”,并设置并指定“ 重复”任务每1分钟设置1天的持续时间,并选中“ 启用”选项。

在此处输入图片说明

Actions选项卡中,确保Program \ script:指向VB脚本的完整显式路径,并确保Start in(可选):仅指向同一VB脚本所在的文件夹路径。

在此处输入图片说明

要完成并保存,请按OK(也许两次),然后从一个帐户中键入用户名和密码凭据信息,该帐户(1.有权运行Task Scheduler任务,并且(2.拥有对您所在位置的执行和读取权限)保存将执行的脚本。


确认有效

为了进行快速测试以确认它可以正常工作,您可以:

  • +,输入并按在此处输入图片说明 Rservices.mscEnter
  • 向下滚动到Windows Update,右键单击它并选择“ 开始”,直到看到状态进入“正在运行”
  • 现在只需F5每隔几秒钟按一下即可刷新屏幕,以查看服务状态是否更改
    • 最终,您应该看到状态更改为,Blank/Null/Empty/Nothing指示服务未运行。如果在停止操作过程中刷新,则可能会注意到该服务的状态值为“正在停止

这意味着无论您启动Windows Update还是计划任务启动它,或通过任何其他进程启动它,如果在启用并运行此作业时运行,它将每60秒被杀死一次。这有助于确保Windows Update操作永远没有足够的时间来完成任何更新的下载或安装。

注意:如果在某些情况下安排的时间间隔不够快,可以很容易地将其调整为运行60秒以上。


禁用

尽管应按计划的定期维护间隔定期使用Windows更新,以确保系统使用最新的安全修补程序等为最新。这并不是要完全不应用Windows Update的方法,因为在许多环境中这些更新都是至关重要的和必要的,因此,它只是为了给您更好的控制权,以便您选择何时要在环境中应用这些更新

要禁用此过程以允许您在准备好时手动安装Windows Update,您只需转到使用Task Scheduler计划的作业,右键单击它,然后选择“ 禁用”选项以禁用该作业,从而防止杀死该作业。的Windows更新服务。

在此处输入图片说明

禁用后,只需执行手动应用Windows Update修补操作系统的操作即可。一旦应用了更新,并且您的电源重启完成(如果适用),请简单地启用该作业,使其重新开始运行。


更多资源


4

根据此答案在用户登录时都需要执行两项操作来禁用强制重启。答案基于一篇文章(意大利语)。

两个必需的设置是:

  1. 设置注册表项 NoAutoRebootWithLoggedOnUsers
  2. 设定政策 Configure Automatic Updates policy

我没有能力在所有Windows版本中对其进行测试,也无法保证它将在明天继续运行。但是这里是如何设置这两个设置的。

禁用更新后的强制重启(注册表)

只要某些用户登录,此注册表修改将禁用强制重启。

  1. 点击Win+ R,输入regedit,然后点击Enter
  2. 导航到关键
    HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
  3. 如果一个WindowsUpdate子键或其子键AU不存在,请通过右键单击右侧面板手动创建它们,然后New -> Key输入缺少的键名称,然后按Enter
  4. 定位到AU键中后,右键单击右侧面板,选择New,然后选择DWORD (32-bit)
  5. 输入NoAutoRebootWithLoggedOnUsers并按Enter
  6. 双击该项目,将其值更改为1,然后按OK

图片1 image2

修改Windows Update设置(本地组策略)

  1. Win+ R,键入gpedit.msc,然后按Enter
  2. 导航至Computer Configuration -> Administrative Templates -> Windows Components -> Windows Update
  3. Configure Automatic Updates在右窗格中找到该策略,然后双击它。
  4. 选择启用,然后选择选项2(通知下载并通知安装)。
  5. 单击应用。
  6. 按确定保存更改。

最后,重新启动PC。

在此处输入图片说明

关于Windows 10企业版的注意事项

我正在使用延迟更新运行Windows 10企业版。为了帮助您,以下是我的注册表设置 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU

在此处输入图片说明

并在“本地组策略编辑器” Configure Automatic Updates中将设置为EnabledOption将设置为2


4

明确指导的规范答案

人们来到此职位寻求答案的原因似乎有两个:

  1. 如何完全禁用Windows Update,使其永远无法运行。
  2. 应用Windows更新后,如何控制Windows何时重新启动

由于这篇文章的答案太多,而且每个赏金都要求提供规范的答案,所以我想我会为这篇文章的答案针对手头的任务提供更清晰的指导。

注意: Microsoft可能会发布更新,从而更改此关联功能的工作方式,因此,如果您应用此类更新,则这些过程随后可能无法正常工作。


#1完全禁用Windows更新

警告

“停止Windows 10自动更新PC”中所述 。。。

通常,最新的操作系统是安全的操作系统。Windows10会自动检查,下载并安装新更新到您的PC中(无论您是否喜欢它)。此新功能实际上非常方便对于大多数用户而言,但并不是每个人都希望按照Microsoft的时间表更新其操作系统。

资源

要禁用Windows更新完全可以按照这个帖子上略低于#1和#2链接来自两个具体答案的指示,执行指定的操作在最低或#1和#2额外彻底,但#1。

  1. 本地禁用Windows 10中的Windows更新

  2. 在Windows 10中关闭Windows更新并禁用任务计划程序作业

    • 对于此答案,在“ 禁用任务计划程序作业”部分中的/Microsoft/Windows/Windows Updates容器中已安排任务的位置,可能有必要禁用其中的所有那些作业以获得完整的完整性。

#2控制Windows Update安装后Windows何时重启

警告

请注意,在任何新修补的漏洞生效之前,可能需要重新引导,因此您需要了解这一点,并且在以某种及时的方式应用修补程序以确保系统安全的同时仍需要例行重新引导。

对于大多数人来说,似乎至少有两个答案最有效,所以我将以Windows本机解决方案开始,然后向您介绍第三方解决方案。

若要控制Windows何时重新启动Windows Update安装后,您可以按照本文上这两个答案之一的说明进行操作。。。

  1. Windows本机: 控制Windows更新应用后Windows何时重新启动
  2. 第三方应用: Windows 10重新启动阻止程序


2

如果您绝对不允许在没有Windows系统的情况下因Windows更新而重新启动系统,安排维护停机时间或任何情况,则可以禁用Windows Update服务。

手动控制Windows更新

这意味着除非重新启用然后手动下载,安装,重新启动等,然后在修补完成后再禁用,然后再禁用,否则这台计算机将不会获得重要的安全更新等。

警告:这可能很危险,因此不建议这样做,尤其是在家庭网络环境中。但是,在业务或数据中心环境中,公司通常会控制何时进行更改,安装安全更新,打补丁OS等。

在Windows 10中关闭Windows更新

您可以使用Windows Update服务来执行此操作。通过控制面板>管理工具,您可以访问服务。在“服务”窗口中,向下滚动到Windows Update并关闭该过程。要关闭它,请右键单击该进程,单击“属性”,然后选择“禁用”。这样可以避免计算机上未安装Windows Update。

在此处输入图片说明

但是由于Windows从现在开始是一项服务,因此您必须保持计算机更新。为了能够安装下一组功能或更新的版本,您将需要安装较早的更新。因此,如果使用上述解决方法,则必须转到服务并不时将其打开以下载和更新Windows副本。

手动启动并运行Windows更新

打开Windows Update服务后,在“ PC设置”中打开Windows Update时,您会看到一条消息,因为计算机已停止,因此未安装更新。您必须单击“重试”,以便下载并安装所有可用的更新。这可能需要两个或三个“检查更新”。您必须继续单击“检查更新”,直到显示您的计算机是最新的。然后,您可以返回并关闭Windows Update服务,直到下次您觉得自己有足够的时间来花时间更新Windows 10副本时为止。

资源


禁用任务计划程序作业

似乎有一些与Windows Update相关的计划任务可能要触发Windows Update。

+,输入,然后按。导航到> > > ,然后右键单击并选择名为作业选项计划开始在此处输入图片说明 Rtaskschd.mscEnterTask Scheduler LibraryMicrosoftWindowsWindowsUpdatesDisable

在此处输入图片说明


更多资源


2

更新:经过测试,我以前的解决方案无效。Microsoft似乎已经实现了阻止其运行的功能。

我的最终解决方案是使用名为StopUpdates10的实用程序。它结合了我在过去几个月中学到的所有技术,尤其是多个注册表更改和禁用多种服务-而不是仅是不断提及但不能单独发挥作用的夫妇。


直到昨晚,我才阻止我的计算机(除非我专门安排停机时间,否则它托管的服务必须在24/7上运行)无法自动应用更新并重新启动。我通过禁用Windows Update服务来完成此操作,这是这里的答案之一。

今天早上,我发现它已自动重新启动,并且Windows Update服务已重新启用。这不是Windows 10以前为我展示过的行为。我只能假定2018年发生了一些变化,并且Microsoft今年已经推出了一个更新(我将在手动更新系统时应用该更新),即使您已禁用它可以重新启用Windows Update服务。

此后,我再次禁用了Windows Update服务,但现在还从HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ wuauserv中删除了所有继承的权限,并且仅授予我自己除只读访问权限之外的任何权限。

此外,我已经拥有C:\ Windows \ System32 \ sihclient.exe(负责后台更新的二进制文件)的所有权,除我本人之外,删除了对它的所有权限,并将其重命名。

在一个或多个月过去之前,我不知道这是否成功(一个或另一个或两个)。


1
考虑为您提供的这些解决方案创建脚本(如果适用),并且可以使其他人可以通过命令行轻松地对您陈述的所有操作或至少某些操作的屏幕截图进行应用。这样可以使人们更容易应用修补程序,并在每次手动应用更新后进行后续操作,以防他们在手动“窗口更新”后被还原。
Pimp Juice IT

@PimpJuiceIT我一旦考虑到我的解决方案是否真的有效,便会考虑一下。:)不幸的是,除非有人对此有确切的信息,否则它现在只是一个等待中的游戏。
杰森·巴斯福德

没问题...请记住,一些非技术人员可能会读过您对这种解决方案的回答(当然,只要经过验证),他们可能需要一些握力,没有什么比握着某人的手更好的了。说明或一些步骤的屏幕截图或详细说明,或者在适用时进行一些自动化。我有足够的耐心,因此不必担心。我希望您在手动更新后的第二个月收到您的结果,无论是否可行。
Pimp Juice IT

2
嗨,杰森,欢迎光临该网站。这是有趣的信息,但可能为时过早。最好等到您确认它可行为止。
fixer1234

2

我已经制作了一个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

欢迎提出建议和请求!

变化

  • 从转换BatchPowerShell我认为更易于理解和维护)

  • 脚本检查的是小时范围,而不是一个小时(如该答案的注释中所建议)

  • 该脚本可以安装和卸载Scheduled task和设置适当的设置和触发器

  • Scheduled task如果需要,脚本可以手动执行

  • 创建一个Github存储库(更容易更新和接受更改)

一般信息

  • 该任务将在以下位置创建 \Win10ActiveHours\Update

  • 有两个Active Hours18小时的窗口:

    • 18:0012:00
    • 06:0000:00
  • 有四个触发器将激活任务并在两个窗口之间切换:

    • 在计算机启动时
    • 在电脑醒来时
    • 每天在 06:00
    • 每天在 18:00
  • 这些是任务的设置:

    • 唤醒运行
    • 有空时开始
    • 不要在闲置的一端停下来
    • 如果使用电池,则允许启动
    • 用电池不要停下

有关更多信息,请参见存储库中的README.md


我只是看了一下就喜欢它,以及您为使它创造出如此出色的工作和+1而付出的努力。我认为您扩展到我在答案中提供的解决方案并设置为可以在PowerShell中和通过Task Scheduler运行的所有功能都很棒。做得好!!注意:我也喜欢您在脚本中使用函数等编写逻辑的方式!
Pimp Juice IT,

1

第三方产品

随着Windows规则和方法的更改,并且永远无法使用任何方法,以下是一些免费的第三方产品,这些产品将推迟关机(以及更多)。他们可能使用Windows API,该API允许任何程序否决即将发生的关闭操作或禁用Windows系统服务。

Windows Update阻止程序

一种便携式免费软件,只需单击一下按钮,即可完全禁用或启用Windows上的自动更新。在禁用Windows Update系统服务(包括不可阻挡的Windows Update Medic Service)方面做得很好 。

不要睡觉

这个小程序可以阻止托盘栏中的各种Windows事件,仅在2019年1月进行了更新。

在此处输入图片说明

关机卫士

位于系统托盘中的较旧程序,可防止Windows关闭,重新引导或注销。任务栏菜单中有几个选项可用,例如隐藏任务栏图标,暂时禁用程序并强制关机,文件中还有一些其他配置设置.ini,可以使用记事本进行编辑。

在此处输入图片说明

关掉它!

关掉它!可以监视并阻止关闭和重新启动等操作,但是它也可以鉴于当前正在执行的应用程序进程或窗口来执行此操作,并对匹配的进程或窗口执行不同的操作。

仅可从第三方网站下载。

在此处输入图片说明

资源:

4种用于在应用程序运行时防止,取消和中止Windows系统关闭或重新启动的工具

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.