LogonTrigger
LogonTrigger — это механизм автоматического запуска заданий, программ или скриптов в операционных системах семейства Windows, который срабатывает при входе пользователя в систему (логине). LogonTrigger относится к классу триггеров (событийных запускателей) и используется в планировщике заданий (Task Scheduler) для выполнения действий в момент начала пользовательского сеанса.
Принцип работы
LogonTrigger активируется при успешной аутентификации пользователя в системе Windows. В отличие от триггера при запуске системы (BootTrigger), который срабатывает до загрузки пользовательского интерфейса, LogonTrigger выполняется после того, как пользователь ввёл учётные данные и начал сеанс работы. Триггер может быть настроен на конкретного пользователя или на любого пользователя, входящего в систему.
При срабатывании триггера планировщик заданий Windows проверяет условия выполнения задачи (например, состояние питания, простаивание системы, сетевые подключения) и, если они удовлетворены, запускает указанное действие. Задачи с LogonTrigger могут выполняться с различными уровнями привилегий — от обычных прав пользователя до прав администратора (с использованием учётной записи SYSTEM или указанной учётной записи).
История
Механизм LogonTrigger появился в Windows 2000 вместе с планировщиком заданий (Task Scheduler) как часть службы «Планировщик заданий» (Task Scheduler Service). В ранних версиях Windows (95, 98, NT) для запуска программ при входе использовались автозагрузка через реестр (раздел HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run) или папку «Автозагрузка» в меню «Пуск». LogonTrigger предоставил более гибкий и управляемый способ: возможность задавать условия, повторения, задержки и параметры безопасности.
В Windows Vista и более поздних версиях (Windows 7, 8, 10, 11) планировщик заданий был значительно переработан, а LogonTrigger получил дополнительные настройки, такие как задержка запуска (Delay), возможность запуска только при определённом сетевом подключении и поддержка триггеров на основе событий.
Настройка и параметры
LogonTrigger настраивается через графический интерфейс планировщика заданий (taskschd.msc) или с помощью командлетов PowerShell (например, New-ScheduledTaskTrigger). Основные параметры триггера включают:
- Пользователь — указывает, для какого пользователя (или для всех пользователей) триггер должен срабатывать. Если задано «Любой пользователь», задача запускается при входе любого пользователя, включая системные учётные записи (например, SYSTEM).
- Задержка — время ожидания после входа пользователя перед запуском задачи. Позволяет отложить выполнение, чтобы не перегружать систему в момент входа.
- Повторение — возможность настроить повторный запуск задачи через определённые интервалы после первого срабатывания (например, каждые 10 минут в течение часа).
- Включено/отключено — состояние триггера. Отключённый триггер не срабатывает, но его настройки сохраняются.
Пример настройки через PowerShell
``powershell $Trigger = New-ScheduledTaskTrigger -AtLogOn -User "DOMAIN\User" $Action = New-ScheduledTaskAction -Execute "C:\Scripts\startup.ps1" Register-ScheduledTask -TaskName "MyLogonTask" -Trigger $Trigger -Action $Action ``
Применение
LogonTrigger широко используется в корпоративных средах и на домашних компьютерах для автоматизации действий, которые должны выполняться при каждом входе пользователя. Типичные сценарии применения:
- Запуск корпоративных приложений — например, клиентов электронной почты, мессенджеров, систем управления проектами.
- Настройка рабочего окружения — создание сетевых дисков, установка переменных среды, запуск скриптов для настройки принтеров.
- Обновление программного обеспечения — проверка и установка обновлений при входе пользователя.
- Мониторинг и аудит — запись в журнал событий факта входа пользователя, запуск скриптов для сбора информации о системе.
- Безопасность — запуск антивирусных сканеров, проверка целостности файлов.
Отличия от других триггеров
LogonTrigger отличается от других триггеров планировщика заданий:
- BootTrigger — срабатывает при запуске операционной системы, до входа любого пользователя. Подходит для задач, не зависящих от пользовательского сеанса (например, очистка временных файлов, запуск служб).
- EventTrigger — срабатывает при возникновении определённого события в системном журнале (например, ошибка диска, подключение USB-устройства).
- TimeTrigger — срабатывает по расписанию (один раз, ежедневно, еженедельно), независимо от входа пользователя.
- SessionStateChangeTrigger — срабатывает при изменении состояния сеанса (блокировка, разблокировка, подключение/отключение удалённого рабочего стола).
Ограничения и особенности
- LogonTrigger не срабатывает при входе пользователя в систему через службу удалённых рабочих столов (RDP) в некоторых конфигурациях, если задача не настроена на запуск при любом подключении.
- Если задача с LogonTrigger настроена на запуск с правами администратора, но пользователь не имеет таких прав, задача может не выполниться или запросить повышение привилегий (UAC).
- В Windows 10 и 11 существует ограничение: задачи с триггером «При входе» могут не запускаться для учётных записей Microsoft, если не настроены соответствующие политики безопасности.
- При использовании LogonTrigger для всех пользователей задача будет запускаться для каждого входящего пользователя, включая системные учётные записи, что может привести к нежелательному поведению.
Безопасность
LogonTrigger может использоваться вредоносным ПО для закрепления в системе. Злоумышленники создают задачи с LogonTrigger, которые запускают вредоносные программы при каждом входе пользователя. Для защиты от таких угроз рекомендуется:
- Регулярно проверять планировщик заданий на наличие подозрительных задач.
- Использовать антивирусные решения, отслеживающие изменения в планировщике.
- Ограничивать права на создание задач для обычных пользователей через групповые политики.
Примеры использования
Корпоративная среда
В организации с доменной структурой Active Directory администраторы могут настроить задачу с LogonTrigger для всех пользователей домена, которая запускает скрипт, подключающий сетевой диск к файловому серверу. Это гарантирует, что каждый сотрудник при входе получит доступ к общим ресурсам.
Домашний компьютер
Пользователь может создать задачу, которая при входе запускает программу для синхронизации файлов с облачным хранилищем (например, Яндекс.Диск или Google Диск). Это удобно, если программа не имеет встроенной автозагрузки.
Источники
- Microsoft Docs. «Task Scheduler Triggers». Документация по планировщику заданий Windows.
- Microsoft Developer Network (MSDN). «LogonTrigger Class». Описание класса LogonTrigger в API Windows.
- Windows IT Pro Center. «Configure Task Scheduler via Group Policy». Руководство по настройке планировщика заданий через групповые политики.
- Книга «Windows Internals, Part 1» (7-е издание) — Павел Йосифович, Марк Руссинович, Дэвид Соломон. Описание механизмов планировщика заданий.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →