Windows 10 Нюансы автоматического перезапуска приложений в Windows 10

akok

Команда форума
Администратор
Сообщения
19,096
Реакции
13,215
Баллы
2,203
Если вы перезагрузите систему, не закрывая работающие приложения, то при следующем входе в учетную запись некоторые или даже все ранее запущенные приложения откроются автоматически.
Такой сценарий неизбежно порождает ряд вопросов, на которые я отвечу сегодня. Я уже пару раз поднимал эту тему в своем канале Telegram. Но поскольку в версии 20H1 фишка обрела законченный вид, я решил написать в блог.

Автоматический перезапуск приложений

В рамках этой статьи я буду использовать аббревиатуру АПП (автоматический перезапуск приложений).
[+] Сегодня в программе
Краткая история вопроса
Функция АПП впервые появилась в версии 1709 без фанфар и пользовательской настройки, т.е. без возможности отключения. Единственным и неудобным обходным путем были ключи команды shutdown для перезагрузки и выключения: /r и /s. Я об этом рассказывал в канале, в т.ч. о новых ключах команды для АПП.
В версии 1803 просьбы инсайдеров добавить настройку учли, но лишь частично. Вместо создания переключателя контроль перезапуска графически привязали к автоматическому входу после установки обновлений, номер 2 на картинке выше.
В версии 20H1 (сборка 18965+) сферу АПП расширили, а также сделали отдельный переключатель в параметрах (номер 1 на картинке) и флаг совместимости. Именно эти аспекты я буду разбирать сегодня.
Как включить или выключить автоматический перезапуск приложений
Из истории вопроса следует, что это зависит от версии Windows 10:
  • 1709: включено и не отключается
  • 1803 – 1909: Параметры → Учетные данные → Варианты входа → Использовать мои данные для входа…
  • 20H1 и новее: Параметры → Учетные данные → Варианты входа → Перезапустить приложения
От чего зависит автоматический перезапуск тех или иных приложений
По своей натуре функция работает не вполне очевидно. Недавно в форуме спросили, почему Firefox сам стартует после перезагрузки. В чате инсайдеров задавали и обратный вопрос – почему приложения не перезапускаются (я предложил проверить на диспетчере задач, и оказалось, что АПП работает корректно).
Типы приложений
Список актуален для версии 20H1, потому что в предыдущих версиях ОС все ограничивается лишь некоторыми встроенными и сторонними приложениями Win32.
Магазинные
В магазине приложения бывают разные:
  • UWP – должны перезапускаться все. Например, у меня сработало с идущими в комплекте с ОС приложениями, а также с загруженным из магазина Unigram.
  • Desktop Bridge / MSIX — перезапуск не работает. В частности, не перезапустились TreeSize, CrystalDiskMark и Windows Terminal.
Отличить UWP от Desktop Bridge / MSIX можно в магазине по описанию приложения. Я сужу навскидку по списку доступных платформ. HoloLens и Xbox – признак UWP, а у Desktop Bridge там только Компьютер.
Автоматический перезапуск приложений

Также в дополнительных сведениях приложения внизу страницы указаны разрешения. Такая картина – признак Desktop Bridge.
Автоматический перезапуск приложений

Эти сведения берутся из манифеста приложения, который вы найдете в папке Program Files\WindowsApps. Картинке выше соответствует runFullTrust.
1
2
3
4
<Capabilities>
<Capability Name="internetClient" />
<rescap:Capability Name="runFullTrust" />
</Capabilities>
Встроенные Win32
Перезапуск работает у большинства приложений. У меня он не сработал для PowerShell, cmd, а также оснасток MMC (диспетчер устройств, журнал событий), хотя сам процесс mmc.exe запускался.
Учтите, что если в предыдущем сеансе программа была запущена от имени администратора, она перезапускается с обычными правами.
Сторонние Win32
Разработчик приложения должен зарегистрировать его в системе для автоматического перезапуска. Например, зарегистрированы браузеры Chrome и Firefox, приложения Microsoft Office и т.п. Регистрацию можно форсировать, что я покажу ниже.
Условия для перезапуска
Автоматический перезапуск привязан к событию входа в систему, нежели к перезагрузке. Об этом, кстати, сказано в описании АПП в параметрах.
Другими словами, функция работает в сценарии «выход из системы → вход в систему». Перезагрузка ОС между этими событиями не играет роли.
Приложение может не перезапуститься, если системе не удалось корректно завершить его. Например, выполняется перезагрузка, а у программы есть несохраненные файлы, и она сигнализирует об этом. Вам предлагается отменить перезагрузку или форсировать ее.
Если форсировать или подождать завершения процессов по таймауту, такое приложение может не перезапуститься. Если же отменить перезагрузку, вернуться в систему и корректно закрыть проблемное приложение, то после перезагрузки не восстановятся другие ранее запущенные программы. Ведь система успела их закрыть, и они уже не были запущены при следующем завершении сеанса.
Наконец, есть еще одно мелкое объективное ограничение – невозможность полностью восстановить состояние приложения. Например, Word запустится с ранее открытыми документами, но не окном настроек, если оно было открыто до перезагрузки.
Как форсировать автоматический перезапуск приложения
Регистрация для перезапуска реализована в параметрах совместимости приложения. Встроенные приложения по определению должны быть совместимы с ОС, и этих настроек у них нет. Зато они есть у всех сторонних программ, в т.ч. созданных Microsoft.
В свойствах исполняемого файла или ярлыка перейдите на вкладку Совместимость и установите флажок Зарегистрируйте эту программу для перезагрузки.
Автоматический перезапуск приложений

Затем перезапустите приложение, чтобы настройка совместимости вступила в силу. Я перепробовал пяток разных приложений и неудачной была лишь попытка с Fiddler.
Это не работает для магазинных приложений Desktop Bridge / MSIX. Они представляют собой упакованные Win32, поэтому в папке есть привычный исполняемый файл, пусть и не запускающий приложение двойным щелчком.
Автоматический перезапуск приложений

Но в этом случае флаг перезапуска в параметрах совместимости роли не играет. Это ожидалось, но я должен был проверить :)
Как связаны настройки перезапуска приложений и использования учетных данных для входа
Напомню, что в версиях 1803 – 1909 функция АПП привязана к настройке «Использовать мои данные для входа…». Поэтому здесь я разберу сценарии в 20H1, где есть раздельные переключатели (см. первую картинку в статье).
Включены обе настройки
Последовательность такая:
  1. ОС перезагружается, появляется экран входа.
  2. Система выполняет вход от вашего имени и тут же блокирует сеанс.
  3. Запущенные до перезагрузки приложения начинают стартовать.
Если на этапе 1 подождать минуту-другую, то после входа вы сразу увидите все приложения. Визуальная проверка вполне убедительна, но можно дополнительно удостовериться с помощью старого доброго префетчинга.
Запустив с десяток разных приложений, я перезагрузился, засек время и подождал 5 минут на экране входа в систему. Затем вошел и выполнил в PowerShell от имени администратора:
1dir C:\windows\prefetch | sort LastWriteTime
Изменения файлов pf у перезапущенных приложений происходят до интерактивного входа в систему. Данные префетчинга могут обновляться не у всех приложений, но даже нескольких достаточно.
Вывод команды не публикую, потому что вы легко можете провести эксперимент самостоятельно.
Включен только автоматический перезапуск приложений
Когда использование данных для входа отключено, АПП работает так:
  1. ОС перезагружается, появляется экран входа.
  2. Система ждет вашего входа.
  3. Запущенные до перезагрузки приложения начинают стартовать.
Включено только использование учетных данных для входа
Понятно, что перезапуска приложений в таком случае не будет. Поэтому ключевая польза от настройки проявляется в сценарии «установка обновлений вне периода активности». Последовательность такая:
  1. ОС перезагружается, появляется экран входа.
  2. Система выполняет вход от вашего имени и тут же блокирует сеанс.
  3. Система выполняет оптимизацию после установки обновлений. TiWorker, Runtime Optimization Service (.NET), реагирующий на новые файлы антивирус – вот это все.
Другими словами, нагрузка на CPU и диск приходится на момент, когда вы не пользуетесь ПК.
Заключение
Видимо, АПП изначально затевалась именно ради улучшения UX установки обновлений, который в идеале должен выглядеть так:
  1. Обновления загружаются в фоне.
  2. Перезагрузка выполняется вне периода активности.
  3. Система выполняет оптимизацию, приложения перезапускаются.
  4. Пользователь входит в систему, ничего не замечая.
С учетом флага совместимости почти так и работает за исключением административных инструментов и Desktop Bridge. Такие нестыковки добавляют путаницы, поэтому без понимания процесса складывается ощущение «кто в лес, кто по дрова».
Однако знание нюансов способствует правильным ожиданиям и открывает возможности более гибкой настройки.

http://www.outsidethebox.ms/
 
Последнее редактирование:
Сверху Снизу