Автозагрузка программ в Windows¶
Автозагрузка — механизм операционной системы, при котором программы, службы или скрипты запускаются автоматически при старте системы или входе пользователя в систему без ручного вмешательства. В Windows для этой цели используются специальные разделы реестра, папки «Автозагрузка», планировщик заданий и штатные средства системы. В Linux и macOS аналогичные функции выполняют юниты systemd, каталоги /etc/init.d, ~/.config/autostart и агенты запуска.
¶Способы добавления в автозагрузку в Windows
¶Папка «Автозагрузка» (Shell:Startup)
Самый простой способ — поместить ярлык программы в папку «Автозагрузка». Путь к ней: %APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup для конкретного пользователя или C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup для всех пользователей. Папка открывается через строку выполнения командой shell:startup. В неё помещаются ярлыки на исполняемые файлы, скрипты .bat, .vbs, документы — всё, что имеет ассоциацию для запуска.
¶Реестр Windows
Автозапуск контролируется несколькими ключами реестра:
| Ключ | Назначение |
|---|---|
HKCU\Software\Microsoft\Windows\CurrentVersion\Run | Запуск при входе текущего пользователя |
HKLM\Software\Microsoft\Windows\CurrentVersion\Run | Запуск при входе любого пользователя |
HKCU\...\RunOnce и HKLM\...\RunOnce | Однократный запуск после перезагрузки |
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup | Путь к папке «Автозагрузка» |
В ключи Run добавляются строковые параметры: имя программы — имя, значение — путь к исполняемому файлу с аргументами. Например, для запуска Notepad++ при входе создаётся параметр Notepad++ со значением C:\Program Files\Notepad++\notepad++.exe. Удаление параметра из Run убирает программу из автозагрузки.
¶Планировщик заданий Windows
Планировщик (taskschd.msc) позволяет создавать задания с триггером «При входе в систему» или «При запуске компьютера». Задание может запускать программу, скрипт PowerShell или командную строку с заданными правами (в том числе от имени администратора). Этот способ предпочтителен, когда нужен запуск до входа пользователя или с повышенными привилегиями.
¶Службы Windows
Программы могут регистрироваться как службы (services.msc, команда sc create). Служба запускается автоматически при старте системы до входа пользователя, работает в фоне и управляется через диспетчер служб. Для большинства пользовательских задач этот способ избыточен, но для серверного ПО и демонов — стандартный.
¶Средства Windows 10 и Windows 11
В Windows 10/11 раздел «Автозагрузка» в диспетчере задач (Ctrl+Shift+Esc → вкладка «Автозагрузка») показывает программы, добавленные в автозапуск, и позволяет включать или отключать их. В Windows 11 аналогичные настройки находятся в «Параметры» → «Приложения» → «Автозагрузка». Эти утилиты отображают данные из ключей Run, папки Startup и других источников.
¶Способы в Linux
¶Systemd
В современных дистрибутивах Linux автозапуск реализован через юниты systemd. Пользовательский юнит размещается в ~/.config/systemd/user/ с расширением .service, затем выполняется systemctl --user enable <имя>.service. Для системных демонов юниты лежат в /etc/systemd/system/, включение — systemctl enable <имя>.service.
¶Cron
Задачи cron (crontab -e) могут запускаться по расписанию, в том числе при старте системы (строка @reboot). Этот способ подходит для скриптов, которым не нужен постоянный демон.
¶rc.local и init.d
В старых системах с SysVinit автозапуск настраивался через скрипты в /etc/init.d/ и файл /etc/rc.local. В дистрибутивах с systemd этот файл по-прежнему поддерживается для простых случаев.
¶XDG Autostart
Графические среды Linux используют каталог ~/.config/autostart/ с .desktop-файлами, которые запускаются при входе пользователя в графическую сессию.
¶Способы в macOS
В macOS автозапуск настраивается через «Системные настройки» → «Пользователи и группы» → «Пользовательские элементы входа», где добавляются приложения. Альтернативно используются каталоги ~/Library/LaunchAgents/ (для пользователя) и /Library/LaunchDaemons/ (для системы) с plist-файлами, загружаемыми через launchctl.
¶Отключение автозагрузки
Для отключения программы из автозагрузки в Windows достаточно удалить её ярлык из папки Startup, удалить параметр из ключа Run реестра или отключить элемент в диспетчере задач. В Linux — systemctl disable или удаление .desktop-файла. В macOS — удаление элемента из списка «Пользовательские элементы входа» или выгрузка агента через launchctl unload.
¶Вредоносное ПО и автозагрузка
Автозагрузка — один из основных механизмов, используемых вредоносным ПО для закрепления в системе. Типичные векторы: ключи Run реестра, папка Startup, планировщик заданий, службы, драйверы, а также легальные утилиты типа WMI-подписок и COM-объектов. Регулярная проверка списка автозагрузки средствами диспетчера задач и антивирусом помогает выявлять подозрительные элементы.
Источники:
- Microsoft Learn. Реестр Windows: ключи автозагрузки
- Microsoft Learn. Планировщик заданий Windows
- systemd.unit(5), systemd.user(5) — руководства Linux
- Apple Support. Управление элементами входа в macOS