终极阻止唤醒计时器唤醒Windows 10桌面。
如何阻止Windows 10桌面在没有用户干预的情况下从睡眠/休眠电源状态下唤醒?
对于很多用户来说,这不会是一个问题,但是,如果你和你的PC睡在同一个房间里,那么让你的机器在凌晨3:30分醒来下载更新是很烦人的。
如何阻止Windows 10桌面在没有用户干预的情况下从睡眠/休眠电源状态下唤醒?
对于很多用户来说,这不会是一个问题,但是,如果你和你的PC睡在同一个房间里,那么让你的机器在凌晨3:30分醒来下载更新是很烦人的。
有很多事情会影响到这个问题。我知道在这个网站上有很多帖子,详细介绍了各种不同的方法来解决这个问题;这篇文章的目的是整合它们,并添加我自己的见解,作为一个受其影响的人。
步骤2中概述的修复方法也可用于阻止Windows 10在安装Windows更新后重新启动机器。
此修复方法同样适用于秋季更新(1709)。不过,您需要再次禁用 “重启 "任务并重新配置安全权限,因为更新过程会取代它。
懒惰的技术博客会让你相信这是你搜索的终点。虽然这一步确实可以消除一些错误的关机,但有一些设置和配置,特别是在Windows 10中,无论用户如何干预,都无法尊重这一设置。进入 "控制面板"→"电源选项"。从这里,选择列表中最先出现的任何电源配置文件,并禁用 "唤醒定时器"。通过所有的配置文件。
感谢StackExchange用户 olee22 提供的图片。
在Windows 10上,强烈建议您对所有电源配置文件**进行修正,而不仅仅是您选择使用的那个配置文件。不同的Windows系会使用不同的配置文件;这可以提高您不被唤醒的机会。
reboot
计划任务注:我创建了一个PowerShell脚本,可以用来阻止你的Windows 10系统重启。你可以在这里找到它。 github.com/seagull/disable-automaticrestarts 。
Windows 10的UpdateOrchestrator计划任务文件夹中包含一个名为 "重新启动 "的任务。无论是否有可用的更新,该任务都会唤醒计算机以安装更新。仅仅删除其唤醒计算机的权限是不够的;Windows只会在你离开任务调度器后编辑它,再次给自己权限。
从这里开始,你需要改变任务的权限,这样Windows就不能骚扰它了。任务位于C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator
。它的名字是Reboot
,没有文件扩展名。右键单击它,进入属性和 让自己成为所有者。最后,对它进行配置,使其显示如下。
这里的文件显示为SYSTEM的只读权限。使其没有任何账户有写的权限,甚至你自己的账户也没有(如果你需要的话,你可以在以后随时更改权限)。还请确保你在这个屏幕上的高级按钮中禁用该文件的任何继承权限,以覆盖根文件夹上的任何现有权限。这将100%地阻止Windows在你执行了你的更改后对其进行破坏。
一旦设置了这个,你就不需要再担心那个计划任务了。
UpdateOrchestrator
任务的权限改变
UpdateOrchestrator
的任务现在需要SYSTEM
的权限,administrator
和TrustedInstaller
的权限都没有。 绕过这个问题的方法之一是通过 。
1.安装微软自己的 PsTools
.
2. 以管理员身份打开命令提示符,然后cd
进入你的本地PsTools
文件夹。
3. 执行。
psexec.exe -i -s %windir%\system32\mmc.exe /s taskschd.msc
4. 进入 UpdateOrchestrator
并禁用 Reboot
任务,如前所述。
Windows安装过程中会改变文件的权限,所以升级后一定要再看一遍本指南。
我听说有报道称,制作了一个名为AC Power Install
的新任务,需要应用同样的步骤,但我没有在安装16299.192(2018-01 Meltdown补丁)更新后,在自己的设备上看到这个任务的产生,所以我不能绝对肯定地建议。与上面执行的步骤相同,应该可以适用于任何已经引入的任务。
你已经禁用了唤醒定时器功能,但Windows 10有一个不尊重该设置的习惯,所以为了安全起见,我们要运行PowerShell命令,以剔除所有可以,可行地唤醒你的PC的任务。打开一个管理型PowerShell命令提示符(开始,键入'Powershell',Ctrl+Shift+Enter),并将此命令放在窗口中。
Get-ScheduledTask | where {$_.settings.waketorun}
查看所有任务列表,并删除其唤醒电脑的权限。你不应该像我们对Reboot
那样担心权限问题,那是个例外的情况。
许多USB 当硬件启动时,有能力唤醒您的PC(例如,键盘经常在按下按键时唤醒);在这种情况下,局域网唤醒通常也是一个问题。对于不了解的人来说,现代硬件的一个常见且有用的功能叫做 "Wake on LAN"。如果你的设备通过有线以太网电缆连接到本地网络(它不适用于Wi-Fi),你可以通过它发送通信,当收到通信时将唤醒你的PC。这是我经常使用的功能,但必须将其纳入行列,因为它的默认行为太过热心。
在管理命令提示符中输入以下命令。
powercfg -devicequery wake_armed
从这里,在设备管理器(控制面板)中找到设备,在电源管理选项卡下,移除它们唤醒电脑的功能。如果你有网络接口卡,你想保持Wake-on-LAN的功能,请启用Only wake this device if it receives a magic packet as opposed to wake up for all traffic sent its way。
右键单击 "开始 "菜单,选择 "运行"。输入GPEdit.MSC
。在 "计算机配置"→"管理模板"→"Windows组件"→"Windows更新"→"启用Windows更新电源管理 "下找到以下设置,以自动唤醒系统安装预定更新。双击它,将其设置为 "禁用"。
微软有人对这个有幽默感。如果你在晚上被你的电脑吵醒,你最想听到的是硬盘驱动器嘎吱嘎吱的声音,因为它每晚都会进行一次碎片整理。通过找到 "控制面板 "的 "安全和维护 "部分来禁用此功能。从那里,展开 "维护",寻找 "更改维护设置 "的链接。
将时间设置为比较交际的时间(7PM就可以了),并禁用机器自己唤醒任务的功能。
我现在使用这个脚本来最终阻止唤醒计时器唤醒Windows 10桌面:
# disable wake for enabled scheduled tasks that are allowed to wake
Get-ScheduledTask |
?{ $_.Settings.WakeToRun -eq $true -and $_.State -ne 'Disabled' } |
%{
write-host $_
$_.Settings.WakeToRun = $false;
Set-ScheduledTask $_
}
# disable wake for devices that are allowed to wake (list of wake capable devices: powercfg -devicequery wake_from_any)
powercfg -devicequery wake_armed |
%{
write-host $_
if ($_ -notmatch '^(NONE)?$')
{ powercfg -devicedisablewake $_ }
}
# disable wake timers for all power schemes
powercfg -list | Select-String 'GUID' |
%{
write-host $_
$guid = $_ -replace '^.*:\s+(\S+?)\s+.*$', '$1'
powercfg -setdcvalueindex $guid SUB_SLEEP RTCWAKE 0
powercfg -setacvalueindex $guid SUB_SLEEP RTCWAKE 0
}
# disable wake for automatic updates and for automatic maintenance
'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\AUPowerManagement',
'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance\WakeUp' |
%{
write-host $_
$key = split-path $_
$name = split-path $_ -leaf
$type = 'DWORD'
$value = 0
if (!(Test-Path $key))
{ New-Item -Path $key -Force | Out-Null }
if ((Get-ItemProperty $key $name 2>$null).$name -ne $value)
{ Set-ItemProperty $key $name $value -type $type }
}
如你所见,它或多或少地解决了这个答案中提到的所有步骤,除了预定任务文件权限。然而,由于我打算在每次解锁/登录时默默地运行这个脚本,我希望这不会是一个问题。
我发现其他的答案非常有帮助,如果可以的话,我就会发表评论,但我想贡献一个我快速编写的软件来帮助完成这里的步骤3和4。 https://github.com/Omniru/System-Wake-Manager/wiki/Home-&-Download
希望对某些人有帮助。
你可能会看到这个弹出的对话框,不得不点击 “更多信息",然后 "无论如何都要运行"(如果你不确定,请随时检查源代码,毕竟它在github上):