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

  • Автор темы Автор темы akok
  • Дата начала Дата начала

Переводчик Google

akok

Команда форума
Администратор
Ассоциация VN
Сообщения
28,269
Решения
33
Реакции
14,693
Если вы перезагрузите систему, не закрывая работающие приложения, то при следующем входе в учетную запись некоторые или даже все ранее запущенные приложения откроются автоматически.
Такой сценарий неизбежно порождает ряд вопросов, на которые я отвечу сегодня. Я уже пару раз поднимал эту тему в своем канале Telegram. Но поскольку в версии 20H1 фишка обрела законченный вид, я решил написать в блог.

app-restart01.png
В рамках этой статьи я буду использовать аббревиатуру АПП (автоматический перезапуск приложений).

Краткая история вопроса​

Функция АПП впервые появилась в версии 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 там только Компьютер.
app-restart02.png
Также в дополнительных сведениях приложения внизу страницы указаны разрешения. Такая картина – признак Desktop Bridge.
app-restart03.png
Эти сведения берутся из манифеста приложения, который вы найдете в папке 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.
В свойствах исполняемого файла или ярлыка перейдите на вкладку Совместимость и установите флажок Зарегистрируйте эту программу для перезагрузки.
app-restart04.png
Затем перезапустите приложение, чтобы настройка совместимости вступила в силу. Я перепробовал пяток разных приложений и неудачной была лишь попытка с Fiddler.
Это не работает для магазинных приложений Desktop Bridge / MSIX. Они представляют собой упакованные Win32, поэтому в папке есть привычный исполняемый файл, пусть и не запускающий приложение двойным щелчком.
app-restart05.png
Но в этом случае флаг перезапуска в параметрах совместимости роли не играет. Это ожидалось, но я должен был проверить :)

Как связаны настройки перезапуска приложений и использования учетных данных для входа​

Напомню, что в версиях 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/
 
Последнее редактирование:

Похожие темы

Назад
Сверху Снизу