Application restart 1 что это в автозагрузке
Перейти к содержимому

Application restart 1 что это в автозагрузке

Application Restart #2 что это в автозагрузке?

Всем привет Тут такое дело, в общем.. сделал я перезагрузку как обычно, все вроде бы нормально, но вот открыл я чистилку CCleaner и заглянул я в автозагрузку.. На вкладке Windows я обнаружил Application Restart #2 в колонке Программы. И сразу мысль — что это за дичь? Я решил разобраться с этим делом и написать все здесь, как есть на самом деле. Итак, начинаем расследование

Немного поискав в интернете, я выяснил, что у других юзеров может быть другой номер, то есть не Application Restart #2, а Application Restart #0, и.. #1, #3, может и #4 есть.. а то и #5..

В интернете никакой годной инфы нет. Вот только один чел написал, что у него после включения компа сам открывается браузер и потом загружается рекламный сайт. И говорит что посмотрел в автозагрузку и там есть запись Application Restart #0, но самое главное, чел пишет что в конце записи и есть как раз тот самый рекламный сайт.. так так.. это уже интересно

У меня лично никакой рекламный сайт автоматом не открывается. Но запись есть, правда под номером 2, то есть #2. И я ее нашел в CCleaner — запустил ярлык:

Далее пошел в Сервис > Автозагрузка:

И тут на вкладке Windows я обнаружил эту странную запись:

Сразу что бросилось в глаза — YANDEX LLC, то есть сразу понятно — это от Яндекса. Потом я мышкой потянул полосу прокрутки.. и.. в колонке Файл увидел длинный путь, или даже запись, вот она:

Да, тут конечно все не видно — строчка очень длинная. Но я покрутил вправо, покрутил и.. нашел сайт, то есть в этой строчки у меня тоже есть сайт, но он вроде безопасный, не рекламный и этот сайт — license.avira.com:

И да, у меня стоял антивирус Авира, но я его уже удалил. Возможно что.. это Авира мне оставила на прощанье, чтобы показывать скидки какие-то и ли предложения, или просто сообщать о новой версии антивируса. Я не знаю что это. Но однозначно, что в моем случае, у меня в строчке был не рекламный сайт

В общем скажу сразу — это можно удалить или отключить. Нажимаете правой кнопкой по записи и выбираете:

Я советую удалять, ибо ну.. оно точно вам не нужно, и никак не повлияет на работу браузера Такие записи в автозагрузке — это откровенный левак. Особенно если в строке есть не какой-то там безопасный сайт, как у меня, а реально странный сайт..

Что делать, если есть подозрение что в компе поселилась нечисть?

Ну ребята, тут я вас ничем не удивлю — нужно проверять ПК на вирусы. Но я вам скажу какими утилитами, их всего три, но это.. как по мне лучшая тройка утилит, можно сказать идеальная, золотая тройка Итак, напишу в виде списка:

  1. Dr Web CureIt. Лучшая утилита по поиску опасный вирусов типа троянов, червей всяких, и прочих серьезных вирусов. Реально годная и утилита номер один, находит зараженные файлы, пытается их вылечить. Находит в том числе и майнеры. Оч советую ней проверить комп. Загружается уже с антивирусными базами и с уникальным названием, это такая защита, чтобы вирусы не догадались что вы качаете утилиту которая их прикончит.
  2. AdwCleaner. Тоже супер утилита, но в отличии от предыдущей, нацелена в первую очередь на рекламные вирусы. Удаляет все эти левые расширения, проверяет ярлыки нет ли там рекламных сайтов, автозагрузку тоже проверяет, в общем.. много что проверяет, утилита отличная, и я ее тоже советую. Перед проверкой качает антивирусные базы.
  3. HitmanPro. Ну эта утилита как бы похожа на AdwCleaner, однако использует другой механизм обнаружения. Я не знаю какой, но ищет нечисть более тщательно, и порой находит то, что не смогли найти две предыдущие утилиты. Первые две утилиты бесплатны, а в этой есть 30 дней бесплатного тестового периода.. да и вроде тоже она работает бесплатно, я точно не помню, но кажется там есть опция одноразовой проверки. Нужно смотреть, уже точно не помню, сори

Вообще хотите верьте, а хотите нет, но.. у вас есть антивирус? Просто если нет, то я вам советую бесплатный Касперский. Есть бесплатная версия, реально бесплатная, и реально антивирус. Я пробовал — работает нормально, и если не запущена проверка компа, то комп не тормозит. Советую. В настройках можно выставить максимальный уровень безопасности, все настроить, в общем как для бесплатного антивируса — супер. Это не реклама, поверьте, смысл рекламировать, кто я и кто Касперский

Но мне стало интересно, что же у меня там за сайт был, вернее ссылка

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

Далее отчет предложил сохраниться в файле startup.txt, ну окей, нажимаю Сохранить:

Отчет сохранил кстати на рабочем столе. Так, теперь открываю отчет.. и там короче сохранились все пункты, а не только то, что я выбрал. Это попадос чистой воды. В блокноте снял галочку с Перенос по словам и вид уже был более понятный:

В этом отчете хорошо видно, что запись Application Restart #2 запускает Яндекс Браузер, ибо указан этот путь к файлу browser.exe:

Так, потом не спеша покрутил.. покрутил.. и докрутил до сайта моего:

И потом аккуратно выделил всю ссылку.. скопировал.. открыл режим инкогнито в Яндекс Браузере:

И самое интересное:

В итоге вот куда я попал:

То есть тут была просто реклама Avira Phantom VPN, это какой-то сервис ВПН от Авиры. Ничего криминального. Но это у меня, а у вас? Вот кому будет интересно — можете сделать так, как я сделал и сможете узнать.. но открывать ссылку нужно только в приватном режиме и если вдруг, ну вдруг пойдет закачка файла — отменить ее, а если скачалось — удалять сразу

На этом все господа, надеюсь все довольны. Удачи вам и добра. Берегите себя. Прощайте

Часть 5. Обеспечение стабильности приложений: механизм Application Restart and Recovery

В предыдущей части данной статьи мы рассказывали об обеспечении стабильной работы приложений, привели ряд рекомендаций и обсудили различные механизмы, предоставляемые для этой цели операционной системой. В настоящей статье мы поговорим о механизме Application Restart and Recovery.

Механизм Application Restart and Recovery

Все современные приложения, написанные для работы под управлением операционных систем Microsoft Windows Vista, Windows 7, а также претендующие на совместимость с будущими версиями клиентских операционных систем, должны включать базовую поддержку механизма Application Restart and Recovery. Для этого обработчик событий должен уметь обрабатывать следующие события, связанные с завершением работы приложения, и выполнять описанные ниже действия:

  • сообщение WM_QUERYENDSESSION с параметром LPARAM = ENDSESSION_CLOSEAPP(0x1) — приложение с пользовательским интерфейсом должно немедленно ответить на это сообщение отсылкой TRUE и начать подготовку к перезапуску: конкретные действия зависят от приложения, чаще всего это сохранение состояния, содержимого документов и т.п.;
  • сообщение WM_ENDSESSION с параметром LPARAM = ENDSESSION_CLOSEAPP(0x1) — приложение должно ответить на это сообщение отсылкой 0 в течение 30 с после получения сообщения и завершить работу;
  • нажатие комбинации клавиш CTRL+C — консольные приложения, получающие сообщение о нажатии данной комбинации клавиш, должны немедленно завершить работу.

Полноценная поддержка механизма Application Restart and Recovery включает регистрацию приложения в специальной структуре, поддерживаемой на уровне ядра операционной системы. Для этого следует использовать функцию RegisterApplicationRestart(), которой в качестве параметров передаются строка и набор флагов. Строка может содержать опции, которые укажут приложению на то, что оно перезапущено и, например, требуется загрузить сохраненные данные. Флаг может иметь либо нулевое значение, либо одно из значений, приведенных в табл. 1.

Таблица 1. Флаги функции RegisterApplicationRestart()

Флаг

Значение

Описание

Не перезапускать процесс, если он был завершен в результате возникновения необработанного исключения

Не перезапускать процесс, если он был завершен в результате зависания приложения

Не перезапускать процесс, если он был завершен в результате установки обновления ОС

Не перезапускать процесс, если он был завершен в результате перезапуска компьютера после установки обновления ОС

Таблица 2. Функции для расширенной поддержки механизма Application Restart and Recovery

Функция

Описание

Указывает на то, что вызывающее приложение завершило восстановление данных

Указывает на то, что вызывающее приложение продолжает восстанавливать данные

Возвращает указатель на косвенно­вызываемую функцию, зарегистрированную для указанного процесса

Возвращает информацию о перезапуске приложения для указанного процесса

Регистрирует косвенно­вызываемую функцию, используемую для восстановления приложения

Удаляет информацию о приложении из списка восстанавливаемых приложений

Удаляет информацию о приложении из списка перезагружаемых приложений

На уровне ядра операционной системы также существует ряд дополнительных функций, которые можно использовать для расширенной поддержки механизма Application Restart and Recovery (табл. 2).

Ключевой здесь является возможность регистрации косвенно­вызываемой функции — ApplicationRecoveryCallback, которая может использоваться для сохранения данных и состояния приложения в тех случаях, когда приложение зависает или возникает необрабатываемая критическая ошибка. После вызова зарегистрированной косвенно­вызываемой функции приложение должно периодически (интервал указывается при регистрации функции, по умолчанию — каждые 5 с) вызывать функцию ApplicationRecoveryInProgress(), указывая на то, что идет процесс сохранения данных, а после завершения сохранения — функцию ApplicationRecoveryFinished().

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

К таким функциям относятся функции, перечисленные в табл. 3, — все они реализованы в библиотеке Rstrtmgr.dll, а их прототипы описаны в файле RestartManager.h.

Таблица 3. Функции для принудительного завершения и перезапуска приложений

Функция

Описание

Изменяет действия, связанные с принудительным завершением работы приложений и их перезапуском

Стартует новую сессию Restart Manager. Поддерживается до 64 одновременных сессий

Включает процесс, связанный с приложением, в уже существующую сессию Restart Manager

Завершает сессию Restart Manager

Регистрирует ресурсы — имена файлов, имена сервисов или структуры RM_UNIQUE_PROCESS в сессии Restart Manager

Используется программами установки приложений для получения списка приложений, связанных
с зарегистрированными ресурсами, и их текущего статуса

Запрашивает статус изменений состояния принудительного завершения и перезапуска

Инициирует принудительное завершение приложения или процесса

Удаляет предварительно внесенные изменения в действия, связанные с принудительным завершением работы приложений и их перезапуском

Перезапускает приложения и сервисы, которые были принудительно завершены функцией RmShutdown() и зарегистрированы с помощью функции RegisterApplicationRestart()

Отменяет действия функций RmGetList(), RmShutdown() и RmRestart()

Ниже показан пример консольного приложения, использующего механизм Restart Manager для принудительного завершения и перезапуска процесса — в данном примере применяется утилита Calculator.

Базовый пример использования механизма Restart Manager

int _cdecl wmain()

DWORD dwErrCode = ERROR_SUCCESS;

DWORD dwSessionHandle = 0xFFFFFFFF;

// CCH_RM_SESSION_KEY: Число символов в названии сессии

// Число регистрируемых файлов

DWORD dwFiles = 2;

// Регистрация двух файлов — для 32­разрядной и 64­разрядной версии

UINT nAffectedApps = 0;

UINT nProcInfoNeeded = 0;

RM_REBOOT_REASON dwRebootReasons = RmRebootReasonNone;

RM_PROCESS_INFO *rgAffectedApps = NULL;

// Начало сессии Restart Manager

dwErrCode = RmStartSession(&dwSessionHandle, 0, sessKey);

if (ERROR_SUCCESS != dwErrCode)

// Регистрация файлов в Restart Manager

// Ниже регистрируются два исполняемых файла.

// Также возможна регистрация файлов, процессов и сервисов

if (ERROR_SUCCESS != dwErrCode)

// Получение списка приложений и сервисов

if (ERROR_SUCCESS == dwErrCode)

// Успешное выполнение RmGetList()

if (ERROR_MORE_DATA != dwErrCode)

// Неудачное выполнение RmGetList()

// с ошибкой, отличной от ERROR_MORE_DATA

// Запрос дополнительных данных

if (NULL != rgAffectedApps)

rgAffectedApps = new RM_PROCESS_INFO[nAffectedApps];

> while ((ERROR_MORE_DATA == dwErrCode) && (nRetry ++ < 3));

if (ERROR_SUCCESS != dwErrCode)

if (RmRebootReasonNone != dwRebootReasons)

// Невозможно выполнить перезагрузку

// Список rgAffectedApps содержит приложения и сервисы

// Число приложений и сервисов — в переменной nAffectedApps

// Основной код помещается здесь

// Завершение работы всех приложений и сервисов из списка

dwErrCode = RmShutdown(dwSessionHandle, 0, NULL);

if (ERROR_SUCCESS != dwErrCode)

// Ресурсы освобождены — возможность обновления/замены

// Основной код помещается здесь

// Перезапуск приложений и сервисов после обновления файлов

dwErrCode = RmRestart(dwSessionHandle, 0, NULL);

if (ERROR_SUCCESS != dwErrCode)

if (NULL != rgAffectedApps)

if (0xFFFFFFFF != dwSessionHandle)

// Очистка сессии Restart Manager

В следующем примере показано, как реализовать автоматический перезапуск приложения за счет регистрации в соответствующем сервисе Application Restart and Recovery:

const wchar_t* argv[],

const wchar_t* envp[]

HRESULT hr = E_FAIL;

// Обычный запуск или перезапуск?

0 == _wcsicmp (argv[1], L"/restarted"))

wprintf (L"Приложение было перезапущено.\n");

wprintf (L"Нажмите ENTER для выхода.\n");

hr = RegisterApplicationRestart (L»/restarted»,

wprintf (L"Ошибка RegisterApplicationRestart — код 0x%08X\n", hr);

wprintf (L"Успешная регистрация приложения.\n");

// Ждать как минимум 60 с и вызвать ошибку

for (i = 0; i < 62; ++i)

// Вызвать ошибку — запись в нулевой указатель

// Приложение будет перезапущено ядром ОС

wprintf (L"Crashing the application…\n");

И еще один пример использования механизма Application Restart and Recovery — возможность сохранения данных и их восстановления после перезапуска приложения:

// Информация о состоянии, сохраняемая на диске

typedef struct _STATE_BLOCK

static STATE_BLOCK g_StateBlock;

// Функция­делегат, вызываемая WER

HRESULT hr = E_FAIL;

PSTATE_BLOCK StateBlock = (PSTATE_BLOCK) pvParameter;

// Уведомление WER о восстановлении

hr = ApplicationRecoveryInProgress (&RecoveryCancelled);

// Ошибка — прервать восстановление

// Пользователь отменил восстановление

// Восстановление. Если процесс займет больше времени, чем

// RECOVERY_DEFAULT_PING_INTERVAL, нужно вызвать функцию

// ApplicationRecoveryInProgress, чтобы сообщить WER

// о том, что восстановление еще не завершено

FileHandle = CreateFile (L"recovered_data.txt",

if (INVALID_HANDLE_VALUE != FileHandle)

// Записать данные в файл

rc = WriteFile (FileHandle, StateBlock, sizeof (STATE_BLOCK), &BytesWritten, NULL);

// Ошибка записи в файл — сообщить WER

// о завершении восстановления

// Успешное завершение восстановления — сообщить WER

// Ошибка открытия файла. Сообщить WER о завершении

const wchar_t* argv[],

const wchar_t* envp[]

HRESULT hr = E_FAIL;

hr = RegisterApplicationRecoveryCallback (MyRecoveryCallback,

&g_StateBlock, RECOVERY_DEFAULT_PING_INTERVAL, 0);

wprintf (L"Ошибка RegisterApplicationRecoveryCallback.

wprintf (L"Успешная регистрация.\n");

// Заполним буфер случайными данными

sizeof (g_StateBlock.RandomNumber), «%d», rand ());

// Вызвать ошибку — запись в нулевой указатель

// Приложение будет перезапущено ядром ОС

wprintf (L"Вызываем ошибку в приложении. \n");

Сервисы приложений для управляемого кода

Сервисы приложений для управляемого кода

Использование механизма Application Restart and Recovery из управляемого кода

СС помощью Windows API Code Pack for Microsoft .NET Framework можно применять ряд перечисленных выше функций в приложениях, написанных на управляемом коде — C# или Visual Basic .NET.

Пространство имен Microsoft.WindowsAPICodePack.ApplicationServices содержит ряд классов и структур, позволяющих обращаться к функциям Restart Manager из управляемого кода (см. рисунок).

Класс ApplicationRestartRecoveryManager обеспечивает доступ к функциям механизма Application Restart and Recovery, класс RecoveryData содержит функцию­делегат (RecoveryCallback) и набор свойств для приложения, класс RecoverySettings содержит набор методов и свойств для управления процессом восстановления после перезагрузки, а класс RestartSettings задает опции для автоматической перезагрузки.

В следующей статье данного цикла мы расскажем о механизме Windows Error Reporting.

1999 1 2 3 4 5 6 7 8 9 10 11 12
2000 1 2 3 4 5 6 7 8 9 10 11 12
2001 1 2 3 4 5 6 7 8 9 10 11 12
2002 1 2 3 4 5 6 7 8 9 10 11 12
2003 1 2 3 4 5 6 7 8 9 10 11 12
2004 1 2 3 4 5 6 7 8 9 10 11 12
2005 1 2 3 4 5 6 7 8 9 10 11 12
2006 1 2 3 4 5 6 7 8 9 10 11 12
2007 1 2 3 4 5 6 7 8 9 10 11 12
2008 1 2 3 4 5 6 7 8 9 10 11 12
2009 1 2 3 4 5 6 7 8 9 10 11 12
2010 1 2 3 4 5 6 7 8 9 10 11 12
2011 1 2 3 4 5 6 7 8 9 10 11 12
2012 1 2 3 4 5 6 7 8 9 10 11 12
2013 1 2 3 4 5 6 7 8 9 10 11 12

КомпьютерПресс использует

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

Если вы перезагрузите систему, не закрывая работающие приложения, то при следующем входе в учетную запись некоторые или даже все ранее запущенные приложения откроются автоматически.

Такой сценарий неизбежно порождает ряд вопросов, на которые я отвечу сегодня. Я уже пару раз поднимал эту тему в своем канале Telegram. Но поскольку в версии 20H1 фишка обрела законченный вид, я решил написать в блог.

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

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

[+] Сегодня в программе

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

Функция АПП впервые появилась в версии 1709 без фанфар и пользовательской настройки, т.е. без возможности отключения. Единственным и неудобным обходным путем были ключи команды shutdown для перезагрузки и выключения: /r и /s . Я об этом рассказывал в канале, в т.ч. о новых ключах команды для АПП.

В версии 1803 просьбы инсайдеров добавить настройку учли, но лишь частично. Вместо создания переключателя контроль перезапуска графически привязали к автоматическому входу после установки обновлений, номер 2 на картинке выше.

В версии 20H1 (сборка 18965+) сферу АПП расширили, а также сделали отдельный переключатель в параметрах (номер 1 на картинке) и флаг совместимости. Именно эти аспекты я буду разбирать сегодня.

Как включить или выключить автоматический перезапуск приложений

Из истории вопроса следует, что это зависит от версии Windows 10.

Графический интерфейс

  • 1709: изначально было включено и не отключалось, но в феврале 2018 года имплементацию 1803↓ портировали задним числом в 1709 с помощью накопительного обновления (источник)
  • 1803 – 1909: Параметры → Учетные данные → Варианты входа → Использовать мои данные для входа…
  • 20H1 и новее: Параметры → Учетные данные → Варианты входа → Перезапустить приложения

Реестр

Переключателю в вариантах входа соответствует параметр реестра RestartApps.

Групповые политики

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

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

Исходя из документации, политики работают в 1903+. Вероятно, это относится только ко второй из них, поскольку первая поддерживалась в 1803 и была портирована в 1709.

Поскольку из коробки функция включена, надо перевести в состояние «Disabled» первую политику «Sign-in and lock last interactive user automatically after a restart», т.е. DisableAutomaticRestartSignOn = 1 . Эта политика появилась еще в Windows 8.1, но тогда АПП не было.

Дополнительно можно настроить поведение в зависимости от состояния BitLocker второй политикой — «Configure the mode of automatically signing in and locking last interactive user after a restart or cold boot».

От чего зависит автоматический перезапуск тех или иных приложений

По своей натуре функция работает не вполне очевидно. Недавно в форуме спросили, почему 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 .

Встроенные Win32

Перезапуск работает у большинства приложений. У меня он не сработал для PowerShell, cmd, а также оснасток MMC (диспетчер устройств, журнал событий), хотя сам процесс mmc.exe запускался.

Учтите, что если в предыдущем сеансе программа была запущена от имени администратора, она перезапускается с обычными правами.

Сторонние Win32

Разработчик приложения должен зарегистрировать его в системе для автоматического перезапуска. Например, зарегистрированы браузеры Chrome и Firefox, приложения Microsoft Office и т.п. Регистрацию можно форсировать, что я покажу ниже.

Условия для перезапуска

Автоматический перезапуск привязан к событию входа в систему, нежели к перезагрузке. Об этом, кстати, сказано в описании АПП в параметрах.

Другими словами, функция работает в сценарии «выход из системы → вход в систему». Перезагрузка ОС между этими событиями не играет роли.

Документации о реализации фичи мне не попадалось. Для классических приложений это работает через старый добрый раздел реестра HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce , где создаются параметры вида Application Restart #n для каждого приложения.

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

Если форсировать или подождать завершения процессов по таймауту, такое приложение может не перезапуститься. Если же отменить перезагрузку, вернуться в систему и корректно закрыть проблемное приложение, то после перезагрузки не восстановятся другие ранее запущенные программы. Ведь система успела их закрыть, и они уже не были запущены при следующем завершении сеанса.

Наконец, есть еще одно мелкое объективное ограничение – невозможность полностью восстановить состояние приложения. Например, Word запустится с ранее открытыми документами, но не окном настроек, если оно было открыто до перезагрузки.

Как форсировать автоматический перезапуск приложения

Начиная с 20H1 регистрация для перезапуска реализована в параметрах совместимости приложения. Встроенные приложения по определению должны быть совместимы с ОС, и этих настроек у них нет. Зато они есть у всех сторонних программ, в т.ч. созданных Microsoft.

В свойствах исполняемого файла или ярлыка перейдите на вкладку Совместимость и установите флажок Зарегистрируйте эту программу для перезагрузки.

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

Затем перезапустите приложение, чтобы настройка совместимости вступила в силу. Я перепробовал пяток разных приложений и неудачной была лишь попытка с Fiddler.

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

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

Но в этом случае флаг перезапуска в параметрах совместимости роли не играет. Это ожидалось, но я должен был проверить 🙂

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

Напомню, что в версиях 1803 – 1909 функция АПП привязана к настройке «Использовать мои данные для входа…». Поэтому здесь я разберу сценарии в 20H1, где есть раздельные переключатели (см. первую картинку в статье).

Включены обе настройки

  1. ОС перезагружается, появляется экран входа.
  2. Система выполняет вход от вашего имени и тут же блокирует сеанс.
  3. Запущенные до перезагрузки приложения начинают стартовать.

Если на этапе 1 подождать минуту-другую, то после входа вы сразу увидите все приложения. Визуальная проверка вполне убедительна, но можно дополнительно удостовериться с помощью старого доброго префетчинга.

Запустив с десяток разных приложений, я перезагрузился, засек время и подождал 5 минут на экране входа в систему. Затем вошел и выполнил в PowerShell от имени администратора:

Изменения файлов pf у перезапущенных приложений происходят до интерактивного входа в систему. Данные префетчинга могут обновляться не у всех приложений, но даже нескольких достаточно.

Вывод команды не публикую, потому что вы легко можете провести эксперимент самостоятельно.

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

Когда использование данных для входа отключено, АПП работает так:

  1. ОС перезагружается, появляется экран входа.
  2. Система ждет вашего входа.
  3. Запущенные до перезагрузки приложения начинают стартовать.

Включено только использование учетных данных для входа

Понятно, что перезапуска приложений в таком случае не будет. Поэтому ключевая польза от настройки проявляется в сценарии «установка обновлений вне периода активности». Последовательность такая:

  1. ОС перезагружается, появляется экран входа.
  2. Система выполняет вход от вашего имени и тут же блокирует сеанс.
  3. Система выполняет оптимизацию после установки обновлений. TiWorker, Runtime Optimization Service (.NET), реагирующий на новые файлы антивирус – вот это все.

Другими словами, нагрузка на CPU и диск приходится на момент, когда вы не пользуетесь ПК.

Об опции перезапуска приложений в меню питания в Пуске

Заключение

Видимо, АПП изначально затевалась именно ради улучшения UX установки обновлений, который в идеале должен выглядеть так:

  1. Обновления загружаются в фоне.
  2. Перезагрузка выполняется вне периода активности.
  3. Система выполняет оптимизацию, приложения перезапускаются.
  4. Пользователь входит в систему, ничего не замечая.

С учетом флага совместимости почти так и работает за исключением административных инструментов и Desktop Bridge. Такие нестыковки добавляют путаницы, поэтому без понимания процесса складывается ощущение «кто в лес, кто по дрова».

Однако знание нюансов способствует правильным ожиданиям и открывает возможности более гибкой настройки. Поэтому мне АПП нравится! А вам?

Об авторе

Вадим — владелец этого блога, и почти все записи здесь вышли из-под его пера. Подробности о блоге и авторе здесь. Поддержать автора вы можете тут.

Вас также может заинтересовать:

Я в Telegram

Подпишитесь на канал и читайте интересные записи чаще! Есть вопросы? Задайте их в чате.

комментарий 41

В целом эта настройка подходила бы для всяких телефонно-планшетных устройств. Не очень приятно включив компьютер и уже начав работать, секунд через 15-30 получить одновременную загрузку автокада, какой-нибудь программы 3d моделирования и десятка фото в режиме предосмотра.

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

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

Ваша оценка: Thumb upThumb down+1

Andrew Bondarenko: Настолько неприятно, что недоумение выражается в околоцензурных эпитетах — Кто мог это придумать и почему по умолчанию эта фишка оказалась включенной.

Свои мысли по этому поводу я озвучил. И считаю, что логика тут вполне нормальная.

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

У меня такое поведение порождает не ругань, а любопытство и желание разобраться в работе ОС 🙂

Политики я не тестировал, кстати. А вы их в какой версии проверяли?

Ваша оценка: Thumb upThumb down0

Я за версиями не слежу, скорее всего, политиками можно было отключить самую первую версию АПП (или вторую? В общем,в настройках эти переключатели уже были, но они не работали).
И это работало до осеннего обновления (под рукой этого компьютера нет, точнее не скажу).
Причем, эти политики не просто перестали работать, но не давали настроить нужное поведение теперь уже переключателями в настройках.

Желание разобраться в ОС может возникать, когда используешь компьютер для того, чтобы разбираться в ОС. Если использовать для дизайна, программирования и тп, есть очень большое желание, чтобы новые фишки добавляли в выключенном состоянии. Это кажется единственно корректным способом внести что-то новое

Ваша оценка: Thumb upThumb down0

В настройках переключатель был только один до 20H1. И он корректно работает в 1803-1909.

На работе все это должен контролировать ИТ-отдел. Например, администратор отключает политикой или с помощью предпочтений ГП определяет, в каком состоянии фича доставляется пользователю, а тот уже настраивает сам. Если же политики не настроены, вы получаете состояние из коробки.

Новые фичи, улучшающие безопасность и UX для большинства пользователей и не сопряжённые со снижением конфиденциальности должны включаться по умолчанию. Иначе вообще нет смысла их разрабатывать.

Ваша оценка: Thumb upThumb down0

Евгений Грицан

А при последнем сценарии «Включено только использование учетных данных для входа» будут ли запускаться демоны (приложения из автозагрузки)? И будет ли работать сценарий не при перезагрузке, а при пробуждении машины с помощью WakeOnLAN?

Ваша оценка: Thumb upThumb down0

Приложения из автозагрузки — да, ведь вход выполнен. Демоны — не знаю:) Такого термина в Windows нет.

Пробуждение машины… Сопоставьте это со входом в сеанс (см. раздел Условия) и получите ответ.

Вообще, вы можете это легко проверить самостоятельно, так что жду отчёт.

Ваша оценка: Thumb upThumb down+1

Any sufficiently advanced technology is.

Эта фишка очень дурно работает на ПК с несколькими пользователями. Ведь в таком случае логинятся и грузят приложения 2-3 учетных записи…
Более того: у меня ломались наушники со встроенным ЦАП — драйвер грузился у других пользователей и в основном юзере звука не было вовсе.

Ваша оценка: Thumb upThumb down+1

на ПК с несколькими пользователями. Ведь в таком случае логинятся и грузят приложения 2-3 учетных записи…

Хорошее замечание, я это не тестировал в рамках подготовки статьи. У меня не то чтобы сомнения, но есть желание перепроверить ваше утверждение ввиду того, что контролирующая автовход политика называется Sign-in and lock last interactive user automatically after a restart.

Более того: у меня ломались наушники со встроенным ЦАП — драйвер грузился у других пользователей и в основном юзере звука не было вовсе.

Вообще-то, драйвер должен грузиться вместе с системой, а не с пользователем. Поэтому предположу неудачную реализацию вендора.

Ваша оценка: Thumb upThumb down0

на лицо непонимание устройства Винды — вместе с системой грузятся Kernel-Mode драйвера, а User-Mode драйвера, как видно из названия, грузятся на уровне пользователя

Ваша оценка: Thumb upThumb down0

ALF Zetas: как видно из названия, грузятся на уровне пользователя

Это поверхностное утвержение. Даже если воспринимать его буквально, это не значит, что драйверы user-mode запускаются после интерактивного входа пользователя в систему.

UMDF работает с помощью хост-процесса Wudfhost.exe, который запускается в контексте системной учетной записи LocalService (документация).

Wudfhost.exe стартует еще до входа пользователя в систему, в чем несложно убедиться, изучив свою же автозагрузку или чужую… Вот пример, где видно, что процесс запустился до LogonUI.

Так что в третий раз в комментариях даю ссылку на эту статью.

Ваша оценка: Thumb upThumb down0

Оно не соответствует действительности на 1909 RP.

Эксперимент:
1. В двух УЗ запущены приложения, для каждой настроен переключатель «Использовать мои учетные данные…», система ожидает перезагрузки для установки обновлений.
2. Из УЗ1 инициируется перезагрузка, соглашаюсь с уведомлением, что другие учетные записи сейчас в системе и могут потерять данные.
3. После перезагрузки и достаточного ожидания выполняется вход в УЗ1 и проверяется диспетчер задач на предмет входа УЗ2 и/или приложений, ранее запущенных в ней. Результат отрицательный.
4. Выполняется вход в УЗ2. Начинают стартовать ранее запущенные приложения.

Ваша оценка: Thumb upThumb down0

Vadim Sterkin:
Но, как обычно, настройками по умолчанию всем не угодишь. Недопустимо, когда настройку не изменить, как было изначально.

Можно и настройками угодить, если подойти к решению внимательнее. Запускать АПП не параллельно, а последовательно, с низким приоритетом I/O. Мешает же людям не сам факт запуска приложений, а помехи им вызываемые. Нет помех — нет возражений.

Ваша оценка: Thumb upThumb down0

У меня нет перед глазами отчёта префетчинга, но емнип запуск осуществляется последовательно, однако не разнесен по времени как в случае с автозапуском.

Низкий приоритет — ошибочное решение для прикладных приложений. См. также Дело об автозагрузке Windows.

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

Ваша оценка: Thumb upThumb down0

Приложение вполне можно стартовать с низким IO приоритетом, открыть в бекграунде и после запуска восстановить приоритет до стандартного.
Главный тезис: нет помех — нет возражений. И все перечисленные в обсуждении помехи (отзывчивость системы, мигание окон, дублирование процессов и т.д), вполне можно устранить без особых сложностей. Можно наконец после одно-двухкратного АПП спросить пользователя, понравилось ли ему существующее или стоит отключить.

По мне, фича перспективная. Настолько, что может даже полностью заменить существующий подход к автозагрузке. У префетча/ОСи есть статистика пользовательских интересов, на основе которой формировать очередность реальной загрузки и актуализировать ее во времени. Но в данном виде, скорее раздражает, чем помогает.

Ваша оценка: Thumb upThumb down0

Приложение вполне можно стартовать с низким IO приоритетом, открыть в бекграунде и после запуска восстановить приоритет до стандартного.

Да, это возможно — пишите фидбэк.

Можно наконец после одно-двухкратного АПП спросить пользователя, понравилось ли ему существующее или стоит отключить.

После чего пользователь спросит, как этот вопрос отключить навсегда везде 🙂

Но в данном виде, скорее раздражает, чем помогает.

В данном случае вы сидите на 1607 LTSC, поэтому вас оно вообще не затрагивает никак 🙂 A в этом блоге интересен в первую очередь личный практический опыт читателей.

Ваша оценка: Thumb upThumb down0

На чем бы не сидел, не значит что не сталкиваюсь с другими машинами. Личный опыт? как раз сегодня ставил обновление — в 1607 Firefox загрузился и что-то еще. Но система глушится в гибридный спящий режим, поэтому что там происходит раз в месяц, просто плевать.

>>…пишите фидбэк.
Очевидная вещь, пришедшая в голову человеку далекому от UX и системного взаимодействия, через секунды после осознания проблемы. Мешает на этапе загрузки — делаем этап максимально фоновым. Такие вопросы или не возникают вообще, или решаются по остаточному признаку. Как думаете, какой это случай? 😉

Ваша оценка: Thumb upThumb down0

Я думаю, что это — сложный случай… Если вникнуть в историю вопроса (и согласиться с моими выводами в заключении), то д.б. более-менее ясно, что сначала просто решили задействовать АПП для приложений, которые зарегистрировались. Получили массу фидбэка (в т.ч. положительного) — начали развивать всерьез, но все же постепенно.

Но одно дело что-то там задействовать, а другое — сразу доставить на уровень, до которого уже не достают едкие намеки на ущербность. Потому что здесь нужно взаимодействие между различными командами (см. также раздел про политики — они 1903+), одобрения на более высоком уровне и т.п. Так фичу могут вообще похоронить в зародыше, особенно с учетом объективных ограничений, махрового легаси и пр.

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

Ваша оценка: Thumb upThumb down+1

Оно и так с низким приоритетом запускалось, скорее всего.
Ты такой включаешь компьютер, загружаешь outlook, браузер, начинаешь работать, а тут бах — еще один аутлук, новое окно браузера с десятком закладок, visual studio с 15 открытыми окнами, или sketchup с проектом на 300 мб.

Может, кого-то это и не раздражает.

Ваша оценка: Thumb upThumb down0

Что значит «скорее всего»? Это же легко проверяется. Ссылку на статью я дал выше, повторю с указанием на раздел.

Ваша оценка: Thumb upThumb down0

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

Ваша оценка: Thumb upThumb down0

Ваш сценарий понятен, однако он присущ людям, которые выключают ПК ежедневно. Я понимаю, что могут быть требования организации или кровать рядом с системным блоком…

Но оптимальный сценарий с точки зрения скорости работы пользователя — это сон/гибернация, а перезагрузка только для установки обновлений вне периода активности. Тогда и АПП показывает себя с наилучшей стороны.

Ваша оценка: Thumb upThumb down0

Здравствуйте! Подскажите, пожалуйста, как избавиться от автоматического запуска браузера, при включении компьютера. Автоматический запуск происходит из-за подключённого USB модема. При запуске, в браузере открывается страница модема: http://192.168.8.1/html/home.html

Ваша оценка: Thumb upThumb down0
Ваша оценка: Thumb upThumb down0

Автоматический перезапуск приложений я заметил ещё давно, но к сожалению, как вы верно написали — пока это работает из серии «кто в лес, кто по дрова». Полезной лично для меня эта функция станет тогда, когда подавляющее большинство приложений будет перезапускаться автоматически и начинать работу на том самом месте, где вы с этим приложением закончили работать. А пока это только проба пера и ещё неизвестно доведут ли её до ума или бросят на полпути.
Ну и конечно хотелось бы чтобы размер окна перезапущенного приложения и него положением на экране/экранах сохранялись.
Вот эти две простые но полезные функции сделали бы работу под Windows гораздо более приятной.

Ваша оценка: Thumb upThumb down0

Alexiz Kadev: Полезной лично для меня эта функция станет тогда, когда подавляющее большинство приложений будет перезапускаться автоматически

Это не скоро произойдет, поэтому флаг совместимости вам руки 🙂

Ваша оценка: Thumb upThumb down0

Это по типу, как гибернация, но рассчитано на выключение/перезагрузку ПК.
При гибернации большинство приложений корректно продолжают свою работу.

Ваша оценка: Thumb upThumb down0

Роман, сходство с гибернацией тут лишь визуальное, и то весьма частичное. Потому что выход из гибернации полностью восстанавливает состояние ОС и приложений. А тут простой запуск по списку, да еще со всеми нюансами из статьи (и это еще при условии, что вы не сами не начали запускать те же приложения вручную).

Ваша оценка: Thumb upThumb down0

Alexiz Kadev: Ну и конечно хотелось бы чтобы размер окна перезапущенного приложения и него положением на экране/экранах сохранялись.

Вряд ли. Слишком сложная штука, от которой отказались в Висте. XP Хранила размеры всех окон как минимум проводника, потом это «оптимизировали».

Ваша оценка: Thumb upThumb down0

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

Ваша оценка: Thumb upThumb down0

Тут не надо ждать каких-то чудес. Приложение перезапустится и заново откроет файлы/документы/изображения, которые были открыты до выхода из системы. Остальное — это уж как приложение умеет.

Ваша оценка: Thumb upThumb down0

Но оптимальный сценарий с точки зрения скорости работы пользователя — это сон/гибернация, а перезагрузка только для установки обновлений вне периода активности. Тогда и АПП показывает себя с наилучшей стороны.

Это кто придумал? Корень проблемы в том, что все эти сценарии придумывают «программисты для программистов».

Оптимальный сценарий — запускать те программы, которые мне нужны. Если я до ночи сидел над проектом в visual studio, это не значит, что и сегодня он мне нужен. Сегодня я могу открыть проект с ремонтом квартиры и двигать диваны или клеить видеоролик с ребенком. А назавтра я включу компьютер утром, чтобы по быстрому что-то посмотреть перед работой, а он мне вывалит полный экран приложений?

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

Собственно, корень проблемы в том, что если бы в настройках сделали одну галочку «восстанавливать программы после перезапуска», и нервов никаких не было бы. Просто новая фишка, которая кому-то нужна. Не нужна — выключил. Вариант «тихо логиниться и устанавливать обновления» мог бы жить отдельным пунктом. Но то, каким образом это было сделано, как проявляется, с помощью каких терминов описано в настройках — это полный фейл.

Ваша оценка: Thumb upThumb down0

Очевидно же, что сон — быстрее всего. Гибернация — это уже зависит от объема занятой памяти, ЦП и диска. См. также Что быстрее: обычное включение / перезагрузка, гибернация или быстрый запуск.

Собственно, корень проблемы в том, что если бы в настройках сделали одну галочку «восстанавливать программы после перезапуска», и нервов никаких не было бы.

Вы о чем вообще? Переключатель для контроля перезапуска есть в том или ином виде в 1803+

Ваша оценка: Thumb upThumb down0

Вот именно, что в «том или ином виде».
Слова «Use my sign in info to automatically finish setting up my device after an update or restart» ничего не говорят о том, что они влияют на перезапуск программ. Да, собственно, и не влияли, хотя именно эта настройка была указана как возможность отключить перезапуск.

Vadim Sterkin: Очевидно же, что сон — быстрее всего.

Очевидно же, что уходя из дома, человек обесточивает все ненужные электроприборы.
Утверждение ничуть не хуже.

Ваша оценка: Thumb upThumb down0

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

Это утверждение неверно технически. Я тестировал лично, равно как объяснение неоднократно предлагалось в форуме и чате в качестве решения и всех устраивало.

Остальное не комментирую и далее с вами по этому вопросу не дискутирую

Ваша оценка: Thumb upThumb down0

Vadim Sterkin: Это утверждение неверно технически. Я тестировал лично

Интернет заполнен разборками в стиле «как это отключить, если не отключается настройкой»
Гуглится.

Ваша оценка: Thumb upThumb down0

Andrew Bondarenko: Интернет заполнен разборками в стиле «как это отключить, если не отключается настройкой»
Гуглится.

Интернет перманентно заполнен проблемами с Windows, но это не повод утверждать, что та или иная фича в принципе не работает.

Ваша оценка: Thumb upThumb down0

Переписал раздел «Как включить или выключить автоматический перезапуск приложений», потому что нашел дополнительные сведения о 1709 и политиках.

Ваша оценка: Thumb upThumb down0

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

Ваша оценка: Thumb upThumb down0

Это полумеры, потому что все это основано на легаси — тому же RunOnce сто лет в обед. Со временем оно может и уйдет, но скорее все новые технологии будут реализовываться в 10х, а в легаси Windows [10] уж что портируют, тому и радоваться.

Ваша оценка: Thumb upThumb down0

simplix: Уверен, в будущем этот маразм с перезагрузками вообще уйдёт, вопрос только во времени.

Вообще-то всё идёт к обратному. В 2003 сервере ввели возможность хотпатчигна ядра, даже выпустили полтора соответствующих обновления, а в какой-то из десяток её убрали.

Ваша оценка: Thumb upThumb down0

Сроду мешал этот перезапуск пары рандомных приложений, а решение не гуглилось (может гугл испортился). Отключил, стал немного довольнее.

Ваша оценка: Thumb upThumb down0

Добавить комментарий

Ваш адрес email не будет опубликован.