Окончательно остановить таймеры пробуждения от пробуждения рабочего стола Windows 10

232

Как остановить рабочий стол Windows 10, выходящий из спящего / спящего режима без вмешательства пользователя?

Для многих пользователей это не будет проблемой, но если вы спите в той же комнате, что и ваш компьютер, то то, что ваша машина просыпается в 3:30 утра для загрузки обновлений, раздражает.

чайка
источник

Ответы:

363

Ответ

Есть несколько вещей, которые могут повлиять на это. Я знаю, что на этом сайте есть посты с подробным описанием различных способов решения этой проблемы; Этот пост направлен на то, чтобы объединить их и добавить мое собственное понимание этой проблемы, поскольку кто-то сам затронул ее.

Исправление, описанное в шаге 2, также можно использовать, чтобы не дать Windows 10 перезагрузить компьютер после установки обновлений Windows.

Это исправление работает и для осеннего обновления (1709). Вам нужно будет снова отключить задачу «Перезагрузка» и заново настроить разрешения безопасности, поскольку процесс обновления заменяет ее.

Шаг 1. Отключите таймеры пробуждения для всех профилей мощности

Ленивые технические блоггеры заставят вас поверить, что это конец ваших поисков. Несмотря на то, что этот шаг устранит несколько ошибочных отключений, существует ряд параметров и конфигураций, особенно в Windows 10, которые не соответствуют этому параметру независимо от вмешательства пользователя. Перейдите в Панель управления> Параметры электропитания. Отсюда выберите любой профиль мощности первым в списке и отключите «Таймеры пробуждения». Работа через все профили.

Настройки питания

(Спасибо пользователю StackExchange olee22 за изображение)

В Windows 10 настоятельно рекомендуется исправить этот параметр для всех профилей питания , а не только для того, который вы выбрали. Различные Windows факультеты будут использовать разные профили; это повышает ваши шансы не проснуться.

Шаг 2. Отключите непослушную запланированную задачу «перезагрузки»

Примечание. Я создал сценарий PowerShell, который можно использовать для остановки перезагрузки системы Windows 10. Вы можете найти его здесь: https://github.com/seagull/disable-automaticrestarts

Папка запланированных задач Windows 10 UpdateOrchestrator содержит задачу под названием «перезагрузка». Эта задача активирует ваш компьютер для установки обновлений независимо от того, доступны ли они. Простого удаления его разрешения для пробуждения компьютера недостаточно; Windows просто отредактирует его, чтобы снова дать ему разрешение после того, как вы покинете планировщик задач.

На панели управления введите «Администрирование», а затем просмотрите планировщик задач. Вход в планировщик задач

Диспетчер задач

Это задача, которую вы хотите - в разделе Библиотека планировщика задач> Microsoft> Windows> UpdateOrchestrator. Самые важные вещи, которые вы хотите сделать:

Удалите разрешение для задачи, чтобы разбудить ПК Отключить задачу

Отсюда вам нужно будет изменить разрешения для задачи, чтобы Windows не могла приставать к ней. Задача находится в C: \ Windows \ System32 \ Tasks \ Microsoft \ Windows \ UpdateOrchestrator . Это называется «Перезагрузка» без расширения файла. Щелкните правой кнопкой мыши, введите свойства и станьте владельцем . Наконец, настройте его так, чтобы отображалось следующее:

Перезагрузите файл только с правами на чтение

Здесь файл показан с правами только для чтения для SYSTEM. Сделайте так, чтобы ни у одной учетной записи не было прав на запись, даже ваших собственных (вы всегда можете изменить разрешения позже, если потребуется). Также убедитесь, что вы отключили все унаследованные разрешения для файла с помощью кнопки «Дополнительно» на этом экране, чтобы переопределить все существующие разрешения для корневой папки. Это на 100% остановит Windows от внесения изменений после того, как вы их внедрили.

Как только это будет установлено, вам больше не придется беспокоиться об этой запланированной задаче.

Примечание для Windows 1709 (Fall Creators 'Update)

В процессе установки Windows изменяются разрешения для файлов, поэтому после обновления обязательно просмотрите это руководство. Я слышал сообщения о том, что создается новая задача под названием «Установка электропитания переменного тока», для которой требуются те же действия, но к ней не добавлялась эта задача, созданная на моем собственном устройстве после установки обновления 16299.192 (исправление выпадения 2018-01), поэтому Я не могу советовать с абсолютной уверенностью. Те же шаги, что выполняются выше, должны работать над любой поставленной задачей.

Шаг 3. Проверьте таймеры пробуждения в PowerShell

Вы отключили функцию таймера пробуждения, но Windows 10 имеет привычку не соблюдать этот параметр, поэтому для безопасности мы собираемся запустить команду PowerShell, чтобы отсеять все задачи, которые могут, по возможности, разбудить ваш компьютер. Откройте административную командную строку PowerShell («Пуск», введите «Powershell», Ctrl + Shift + Enter) и поместите эту команду в окне:

Get-ScheduledTask | where {$_.settings.waketorun}

Пройдите по всем задачам, которые он перечисляет, и удалите их разрешение, чтобы разбудить компьютер. Вам не нужно беспокоиться о разрешениях, как мы сделали с Reboot; это был отдаленный случай.

Шаг 4: Проверьте, какое оборудование может разбудить ваш компьютер

Многие USB-устройства, когда они задействованы, могут разбудить ваш компьютер (например, клавиатура часто делает это при нажатии клавиш); wake-on-LAN, как правило, также является проблемой в этом сценарии. Для непосвященных, общая и полезная функция современного оборудования называется «Пробуждение по локальной сети». Если ваше устройство подключено к локальной сети с помощью проводного кабеля Ethernet (оно не работает для Wi-Fi), вы можете отправлять сообщения, которые разбудят ваш ПК при получении. Я часто использую эту функцию, но ее нужно привести в соответствие, поскольку ее поведение по умолчанию слишком переусердствовало.

Введите следующую команду в командной строке администратора:

powercfg -devicequery wake_armed

Вывод команды из командной строки

Отсюда найдите устройства в диспетчере устройств (панели управления) и на вкладке «Управление питанием» удалите их возможность разбудить компьютер. Если у вас есть сетевые карты, для которых вы хотите сохранить Wake-on-LAN, включите «Разбудить это устройство только в том случае, если он получает магический пакет», а не для пробуждения всего трафика, отправляемого на его пути.

Шаг 5. Проверьте групповую политику, чтобы быть полностью уверенным

Щелкните правой кнопкой мыши меню «Пуск» и выберите «Выполнить». Введите GPEdit.MSC. Найдите следующий параметр в разделе «Конфигурация компьютера»> «Административные шаблоны»> «Компоненты Windows»> «Обновления Windows»> «Включение управления питанием Центра обновления Windows» для автоматического пробуждения системы для установки запланированных обновлений. Дважды щелкните его и установите для него значение «Отключено».

Отключение функции пробуждения Центра обновления Windows

Шаг 6: отключите пробуждение вашей машины для автоматического обслуживания

У кого-то в Microsoft есть чувство юмора к этому. Если вы просыпаетесь ночью от своего компьютера, единственное, что вы хотите услышать больше всего на свете, - это хруст жесткого диска, когда он выполняет ночную дефрагментацию. Отключите эту функцию, найдя раздел «Безопасность и обслуживание» панели управления. Оттуда разверните «Обслуживание» и найдите ссылку «Изменить настройки обслуживания».

Отключить автоматическое обслуживание

Установите время для чего-то более общительного (7PM в порядке) и отключите способность машины просыпаться для выполнения этой задачи.

чайка
источник
15
Спасибо! Я особенно ценил твердое, грубое и безжалостное решение взять на себя ответственность за Rebootфайл определения задачи на уровне NTFS и сократить подлого злобного пользователя sordid SYSTEM(ab) до простого разрешения на чтение и исполнение. Надо помнить о подходе, подходящем для глупостей, если Microsoft решит развернуть дальнейшие вредоносные махинации с враждебными руками. Как и в великой песне Босса, этим утром я проснулся в пустом небе, где прошлой ночью были несохраненные облака данных в блокноте и на вкладках IE. ОС, жертвующая пользовательскими данными на алтаре Update & Reboot, явно не справляется со своей задачей.
Луми
8
Хотя ваш ответ очень исчерпывающий, кажется эффективным, и я проголосовал за него, я думаю, что он мог бы быть лучше написан, так как некоторые части очень расплывчаты и / или сбивают с толку (особенно для людей, которые не разбираются в компьютерах Super Windows). Показательный пример: какое отношение имеет информация по ссылке «сделать себя владельцем» (которая основана на командной строке) с щелчком правой кнопкой мыши на задаче перезагрузки и выбором «Свойства»?
Мартино
7
Спасибо за этот ответ. Это именно то поведение, которое я ненавижу в Windows 10 от всего сердца - меняю настройки обратно на то, что кажется хорошим, несмотря на то, что я явно нажимаю иначе. Бывает с другими вещами, такими как раскладки клавиатуры.
Дав
13
Так что я просто обновился до 1709 и не могу заставить эту задачу перезагрузки умереть. Даже после того, как я стал единственным владельцем этой задачи и получил полные права, я ничего не могу изменить, не предоставив пароль для «S-1-5-18» - есть идеи, как убить эту чертову штуку ?!
MFH
5
@MFH я имел эту проблему сам , и я нашел решение, см superuser.com/a/1285419/118910
ohaal
26

Теперь я использую этот сценарий, чтобы окончательно остановить таймеры пробуждения от пробуждения рабочего стола 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 }
}

Как вы можете видеть, он более или менее затрагивает все шаги, упомянутые в этом ответе, за исключением разрешений для файла запланированных задач. Тем не менее, поскольку я намерен запускать этот скрипт без предупреждения при каждой разблокировке / входе в систему, я надеюсь, что это вообще не будет проблемой.

mousio
источник
Это скрипт .bat?
альм
6
Похоже на сценарий PowerShell .ps1, требующий прав администратора. Чтобы правильно отключить запланированные задачи, включая разрешения, используйте комбинацию TASKEOWN, ICACLS и SCHTASKS в пакетном файле.
psouza4
У меня не сработало :(
sergiol
Get-ScheduledTaskЧасть сценария терпит неудачу , когда он находит такие задачи. Есть идеи как это решить?
thisismydesign
2
@mousio Мне пришлось запустить скрипт в административном терминале, чтобы столкнуться с ними. Решение состояло в том, чтобы получить право собственности на них и предоставить полный доступ администраторам. Что касается Set-ScheduledTaskне думаю, что он принимает ScheduledTaskобъект в качестве параметра. Это действительно помогло вам изменить задачи? Вот ссылка от кого-то еще, сообщившего об этом: social.technet.microsoft.com/Forums/en-US/…
thisismydesign
10

Я нашел другой ответ невероятно полезным и просто прокомментировал бы, если бы мог, но я хотел предоставить часть программного обеспечения, которую я быстро написал, чтобы помочь с шагами 3 и 4, найденными здесь:

https://github.com/Omniru/System-Wake-Manager/wiki/Home-&-Download

Надеюсь, это пригодится некоторым людям.

введите описание изображения здесь

введите описание изображения здесь

Вы можете увидеть это всплывающее окно, и вам нужно нажать «Подробнее», а затем «Запустить в любом случае» (если вы не уверены в этом, не стесняйтесь проверять исходный код, он находится на github): введите описание изображения здесь

Эрик
источник
1
Отличная работа, Эрик.
чайка
1
Так что, если это автоматическое обслуживание по расписанию, то почему, черт возьми, он не может вернуть компьютер в режим сна после завершения обслуживания ?! Тогда у меня не было бы проблем с этим
Витас