如何在Windows 10中*停*自动重启?
Windows 10可以让你 “计划 "重启以备后用。我想禁用它。
很明显,Windows昨晚在我不注意的时候安排了重启,并且关闭了我前一天晚上工作的所有东西。
我经常重启,我不需要Windows为我做这些。
我可以完全禁用它吗?我不介意它下载所有的东西,然后说 "嘿,你应该重启",但它永远不应该自己重启,永远。
我使用的是Windows 10的 "专业 "版。
Windows 10可以让你 “计划 "重启以备后用。我想禁用它。
很明显,Windows昨晚在我不注意的时候安排了重启,并且关闭了我前一天晚上工作的所有东西。
我经常重启,我不需要Windows为我做这些。
我可以完全禁用它吗?我不介意它下载所有的东西,然后说 "嘿,你应该重启",但它永远不应该自己重启,永远。
我使用的是Windows 10的 "专业 "版。
**注: 不幸的是,这似乎在Windows 10家庭版上不起作用,我不确定这个版本的用户是否有可行的解决方案。 )
打开开始菜单并键入组 ,然后点击编辑组策略
展开计算机配置 管理模板* Windows组件 Windows更新
返回到Windows Update,然后点击检查更新。完成后,点击高级选项
你应该会看到你的新设置被 “强制执行。”
在测试虚拟机上应用了这个设置后,我打开Windows Update,发现它开始下载了。
当它完成下载后,你会得到一个toast通知,提示有更新,需要安装。从开始菜单中重启或关机似乎不会触发安装过程。
更多信息:
我不确定编辑本地组策略是否是Windows 10家庭版中的一个选项,但通过注册表应该可以得到同样的结果(我没有测试过,因为我自己使用的是策略方法)。包括这个,是为了防止非用户也来找答案。
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate\AU
(如果没有的话,你可能需要手动创建键值) AUOptions
,然后输入一个值为2
或3
。我一直在运行一些测试,详细内容请看这里的两篇博文:
这些测试已经运行了近三周,我还没有看到任何强制重启。
要注意的事情:
最好的解决方法是使用任务排程器。 点击开始,然后输入任务排程器,导航到任务排程库>>微软>>Windows>>更新管理员 要禁用自动重启,请右键点击重启,然后选择禁用。应该设置为Read & Execute
我还通过禁用这个文件夹中的所有任务来禁用自动更新。
你可以使用Windows自己的工具来禁用自动重启。
正如其他一些回答中提到的那样,Windows使用名为\Microsoft\Windows\UpdateOrchestrator\Reboot
的计划任务来运行它的重启。然而,如果你打开任务调度程序并禁用这个任务,Windows会很乐意在第二天重新启用它—即使你改变它的权限使其只读。
与其每天进入任务调度界面禁用这个任务,我们可以使用schtasks
命令行工具修改任务,从而自动设置这个任务。
如果计划重启,运行下面的命令,有管理权限,就会禁用该任务:
schtasks /change /tn \Microsoft\Windows\UpdateOrchestrator\Reboot /DISABLE
知道了这一点,你就可以创建自己的Scheduled Task来定期运行上面的命令,禁用Windows的阴险小计。如果你熟悉如何使用任务调度程序,那就设置好自己的任务,
否则,
<?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>
```。
您可以控制您允许Windows在每次Windows更新操作后自动重启的时间,而不需要禁用任何东西或强行停止Windows更新服务。
_请注意,在任何新修补过的漏洞生效之前,可能需要重新启动,因此您需要了解这一点,并在修补程序被应用时,及时重启,以确保系统安全。 *
我将在下文中详细说明,但本质上,它使用了一个批处理脚本来动态设置和改变开始时间和结束时间的相关注册表值,并根据运行时间来设置开始时间和结束时间,同时确保增量值总是提前几个小时。
不同于Windows 10 Reboot Blocker的解决方案,这是一个100%的Windows原生解决方案,不需要任何第三方软件来完成任务。
只需用任务调度器调度一个批脚本(以下提供),每天运行两次:
每次执行都会将ActiveHoursStart和ActiveHoursEnd的时间设置为数值,使Windows认为你始终处于活动状态,并确保不会因Windows Update操作而重启。
这个过程的批处理逻辑和调度很简单,如果你遇到任何问题,可以进行调整(例如,你遇到省电模式的问题,如Sleep或Hibernate。)
NOTES:*注册表值是以十六进制格式设置的。另外要注意的是,下面的逻辑示例希望脚本只在早上6:00:00:00-6:59:59:59或下午6:00:00:00-6:59:59:59的帧中执行。这可以通过逻辑中的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
关于相关的注册表设置的一些细节,下面我将参考 A closer look at Active Hours in Windows 10 的部分内容,了解这种方法会影响到什么。
活动时间
活动时间并没有改变这种行为,但它们在Windows 10操作系统中增加了一个机制,确保用户在活动时间内不被重启所干扰。点击Windows键,输入regedit.exe,然后按回车键。
3.使用左边的树形结构导航到下面的键:
这里提供了以下选项:
- ActiveHoursEnd:定义了该功能的结束时间。
如果要更改该功能的开始或结束时间,请双击其中一个条目。
请注意,在注册表中不能添加分钟,只能添加整点。按一次
键,然后开始输入Windows更新,直到看到Windows更新设置选项,然后点击它 2. 3. 在活动时间窗口中注意到开始时间和结束时间的值,然后按Cancel
,然后从设置*屏幕中完全关闭。
5.现在再次执行步骤1-3,确认开始时间和结束时间的值改变正确。因为这个方法不会阻止Windows更新的下载和安装。如果你需要停用这个工作,可以通过停用任务调度器.aspx)来完成。 aspx) - [任务排程器排程批处理脚本不运行检查](https://msdn.microsoft.com/en-us/library/windows/desktop/aa383614(v=vs.85) - 用任务排程器排程 - [十进制0-255](https://msdn.microsoft.com/en-us/library/windows/desktop/aa383614(v=vs.85)
Windows 10重建了他的Windows更新策略,增加了一些与以前版本的区别。
_Windows Update将强制更新,即使windows更新服务关闭,也会强制更新,这适用于家庭用户,因为有些更新需要强制重启,重启调度器不能关闭。 **
这并不意味着你可以不阻止更新,也许你可以做一个阻止更新服务器的工作,但这可能是非常烦人的,因为在整个互联网上你有上百种方法可以做到这一点。本软件会定期检查系统和应用程序的更新,并为您下载和安装它们。您只能从 Microsoft 或授权来源获得更新,Microsoft 可能需要更新您的系统以向您提供这些更新。接受本协议,即表示您同意接受这些类型的自动更新,而不需要任何额外的通知。
看来,"没有自动重启与登录用户计划自动更新安装的自动更新安装 “目前在Windows 10中似乎不起作用,但根据Lifehacker.com http://lifehacker.com/enable-metered-connection-to-delay-windows-10-updates-1723316525 )上的这篇文章,在Windows 10中启用计费连接可能会停止或至少进一步延迟Windows更新。
Windows 10自带一个功能,允许你指定你的互联网连接被限制、节流或以某种方式障碍。你可能是连接到你的手机,在公共Wi-Fi网络上,或者只是在你的家庭网络上有一个蹩脚的数据上限。通过启用 "计费连接",微软将通过等待强制下载来尊重这一点。要打开它,请按照以下步骤进行操作:
- 在开始菜单中搜索 "更改Wi-Fi设置”
- 3.启用 “计费连接 "下的切换选项
这个方法的一个主要缺点是,只有当你的电脑通过Wi-Fi连接时,它才会发挥作用。由于某些原因,Windows 10不允许您指定通过以太网连接时,您的连接是计费的(尽管许多家庭互联网连接有数据上限)。不过,这应该可以帮助很多典型用户。
我做了一个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
Batch
PowerShell
你可以在这里得到它。https://github.com/marcosbozzani/Win10ActiveHours
_欢迎大家提出建议和请求!
变化*
从 Scheduled task
转换为 Scheduled task
(更容易理解和维护,在我看来)
脚本检查时间范围,而不是单一的一个小时 (如该回答中的评论中建议的那样)
脚本可以安装和卸载 \Win10ActiveHours\Update
,并设置相应的设置和触发器
脚本可以手动执行 Active Hours
。如果需要的话
–创建了一个Github仓库(更容易更新和接受修改)
一般信息*
-任务将在&007
-有两个&007的窗口,时间为18小时。
有四个触发器将激活任务并在两个窗口之间切换:
这些是任务的设置:
更多信息请参见 README. md中的[README.
NoAutoRebootWithLoggedOnUsers
Configure Automatic Updates policy
的策略 我没有能力在所有的Windows版本中进行测试,也不能保证明天还能用。但下面是这两个设置的方法。
这个注册表的修改,只要有用户登录,就可以禁用强制重启。点击Win+R,键入regedit
,然后按回车键
- 导航到键
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
3.如果WindowsUpdate
或它的子键AU
都不存在,可以在右侧面板上右键单击New -> Key
,输入缺失的键名并按回车键 4.如果AU
或它的子键New
都不存在,可以手动创建。定位到DWORD (32-bit)
键后,在右侧面板中右键单击,选择NoAutoRebootWithLoggedOnUsers
,然后按gpedit.msc
。- 键入
Computer Configuration -> Administrative Templates -> Windows Components -> Windows Update
,按回车键- 双击该项,将其值改为1,按确定。
- 按Win+R,键入
Configure Automatic Updates
,然后按回车键。导航至2
。- 在右侧窗格中找到
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU
策略,然后双击它。- 选择启用和选项到
Configure Automatic Updates
(下载时通知和安装时通知)。- 单击 “应用"。按确定保存更改。
最后,重新启动电脑。
关于Windows 10企业版*
我运行的是延迟更新的Windows 10企业版。可能有什么帮助,下面是我的注册表设置,从Enabled
开始:
在本地组策略编辑器中,Option
设置为2
,&007设置为&007。
- 如果它正在运行,那么服务将被强制停止 NET STOP 确保没有Windows Update应用
- 如果它没有运行,那么进程将结束,直到下一个预定的触发器任务调度器执行为止
你需要做三件事来确保这一切都能正常运行*
- 创建一个简单的批处理脚本,检查Windows Update是否正在运行,如果是,则将其杀死
- 这只是一个重命名为
.cmd
文件扩展名的文本文档- 创建一个简单的VB脚本,它将执行批处理脚本,但要以隐藏的方式执行,这样每次运行时就不会弹出
- 这只是一个文本文档,重命名为
.vbs
文件扩展名- 用Windows任务调度器
以下是设置这三个简单的东西的详细步骤,下面是设置这三个简单的东西的详细步骤
1. 批量脚本**
NOTE:将下面的逻辑保存到一个文本文件中,并重命名为.cmd
的扩展名,例如:DisableWU.cmd
。VBS 脚本*
NOTE:将下面的逻辑保存到一个文本文件中,并重命名为.vbs
的扩展名,例如:DisableWUHidden.vbs
。另外,请确保在下面的逻辑中,将批处理文件保存的完整路径和文件名的值放在正确的位置,以代替C:\FolderPath\DisableWU.cmd
的值。任务排程器作业*
按
R
,输入taskschd.msc
并按Enter
。在右侧窗格中右键点击任务调度库选项,然后选择Create Task
*选项。
在General
选项卡中,确保是否登录用户的运行,以及最高权限的运行,所以这两个选项都被选中,并且有效。
在Triggers
选项卡中,请确保每日选项被设置为重复:1天,并检查每1分钟重复一次任务,持续1天,并检查**已被选中。
在Actions
选项卡中,确保程序脚本:指向VB脚本的完整路径,并确保开始(可选):指向同一VB脚本所在的文件夹路径。
要最终确定并保存,请按OK
(可能要按两次),然后输入用户名和密码信息,该账户(1.有权限运行任务调度器任务,2.有执行和读取权限,并在保存脚本的位置执行。
为了快速测试,确认它的工作状态,你可以这样做。
R
* ,输入services.msc
,然后按Enter
F5
刷新屏幕,看看服务状态是否改变Blank/Null/Empty/Nothing
,表示服务没有运行。如果你在停止操作过程中刷新,你可能会注意到该服务的状态值为停止 这意味着,无论你启动Windows Update、计划任务启动它,还是其他进程启动它,如果这个工作被启用并运行时,它将每隔60秒就会被杀死。这有助于确保Windows Update操作永远不会有足够的时间来完成任何更新的下载或安装。
注意:如果在某些情况下,计划时间间隔可以很容易地调整到比60秒更频繁地运行。这不是一个完全不应用Windows更新的方法,因为在许多环境中,这些更新是非常重要和必要的,所以这只是为了让您的系统在使用Windows更新*时,能更快、更快、更安全。
要禁用这个过程,以便在你准备好时手动安装Windows更新,你只需进入到你用任务调度器安排的作业中,右键单击该作业,选择禁用,然后选择任务调度器. aspx),右键单击它,然后选择禁用选项来禁用该作业,从而防止Windows更新服务被杀死。一旦应用了更新,并且您的电源循环完成后,只需简单地启用工作,就可以重新开始运行。
大家来这个帖子似乎有两个原因,就是想知道答案…..
1.如何完全禁用Windows更新,让它永远不会运行。
由于这个帖子有很多答案,而且有人要求提供Canonical的答案,所以我想,我想根据这个帖子的答案,给大家一个更明确的指导。
注: _微软发布的更新可能会改变这个相关功能的工作方式,所以如果你应用了这样的更新,那么这些过程可能无法正常工作。. .
“一般来说,一个最新的操作系统是一个安全的操作系统。Windows 10会自动检查、下载并安装新的更新到你的电脑上–不管你喜欢与否。这个新功能实际上对大多数用户来说是相当方便的,但不是每个人都希望自己的操作系统能按照微软的时间表更新”
**要完全禁用Windows更新,你可以按照下面这篇帖子上的两个具体答案中的说明,如#1和#2,并执行都*中指定的操作,但至少要执行#1,或者#1和#2,以获得额外的彻底性。在Windows 10中禁用Windows更新](https://www.cnet.com/uk/how-to/stop-windows-10-from-automatically-updating-your-pc/)
警告
请注意,在任何新修补的漏洞生效之前,可能需要重启,因此您需要了解这一点,并且在应用补丁时仍会例行性地在一定程度上及时重启,以确保系统保持安全。
控制Windows Update安装后重启*你可以按照这两个答案中的任何一个的说明来操作。. .
如果你绝对不能让系统因为Windows更新而重启,而在你在场的时候不被 “控制",或者安排停机维护时间,或者其他什么情况下,你可以禁用Windows更新服务。
**手动控制Windows更新*
这将意味着这台机器将无法获得关键的安全更新等,除非你重新启用,然后手动下载、安装、重启等,一旦打补丁完成后再禁用。这可能是危险的,不建议使用,尤其是在家庭网络环境中。但在企业或数据中心环境中,公司控制何时进行更改、安装安全更新、操作系统补丁等是很正常的。通过控制面板>管理工具,可以进入服务**。在 "服务 "窗口中,向下滚动到 "Windows Update "并关闭该进程。要关闭它,右键单击该进程,点击属性并选择已禁用。这将解决Windows更新没有在你的机器上安装的问题。
但由于Windows是一个服务现在开始,你必须保持计算机的更新。为了能够安装下一组功能或更新的版本,你需要安装早期的更新。这就是为什么如果你使用了上述的变通方法,你必须到服务中去打开服务,并偶尔打开一次,才能下载并更新你的Windows。你必须点击 "重试",以便下载并安装所有可用的更新。这可能需要两次或三次 "检查更新"。你必须继续点击 "检查更新",直到它说你的电脑是最新的。然后,你可以回去关闭Windows更新服务,直到下次你觉得自己有足够的时间来更新你的Windows 10的副本时,再关闭Windows更新服务。 _
似乎有一些与Windows Update相关的预定任务可能会触发Windows更新。导航到R
>taskschd.msc
>Enter
>Task Scheduler Library
,然后右键单击并选择Microsoft
选项,选择名为计划启动**的任务。
更新*。经过测试,我之前的解决方案失败了。
我最终的解决方案是使用一个叫StopUpdates10的工具。它结合了我在过去几个月里读到的所有技术,特别是多个注册表的更改和禁用多个服务,而不仅仅是一直被提到的那几个,但它们自己都不起作用。今天早上,我发现它已经自动重新启动了,而且Windows Update服务已经被重新启用。这不是Windows 10以前对我来说表现出来的行为。我只能假设2018年发生了一些变化,微软在今年推出了一个更新(我在手动更新系统时也会应用这个更新),重新启用了Windows Update服务即使你已经禁用了它。
此后,我又禁用了一次Windows Update服务,但现在也从HKEYLOCALMACHINE\SYSTEM\CurrentControlSetServices\wuauserv中删除了所有继承的权限,并且只给了我自己除只读权限外的任何其他权限。此外,我已经拥有了C:WindowsSystem32/sihclient.exe(负责后台更新的二进制文件)的所有权,删除了除了我自己之外的所有权限,并将其重新命名。
随着Windows规则和方法的变化,没有一种方法可以永远有效,这里有一些免费的第三方产品,可以推迟关机(以及更多)。它们可能会使用Windows API,允许任何程序否决即将关机或禁用Windows系统服务。 Windows Update Blocker
一个便携式的免费软件,可以帮助在Windows上完全禁用或启用自动更新,只需点击一个按钮就可以完全禁用或启用自动更新。它在禁用Windows Update系统服务方面做得很好,包括不可阻挡的Windows Update Medic Service. 不睡觉
一个可以阻止各种Windows事件的小程序,在2019年1月才更新的,可以从托盘栏中屏蔽各种Windows事件。
一个比较老的程序,坐在系统托盘里,防止Windows关机、重启或注销。在托盘菜单中有一些选项,例如隐藏托盘图标、暂时禁用程序和强制关机,还有一些其他的配置设置可以在.ini
文件中找到,可以用记事本编辑。可以监控和阻止关机和重启等操作,也可以根据当前正在执行的应用程序进程或窗口执行不同的操作。