INFO: Описание разделов реестра Run, RunOnce, RunServices, RunServicesOnce и Startup
Аннотация
В данной статье описано, как разделы реестра Run, RunOnce, RunServices, RunServicesOnce и RunOnce\Setup связаны друг с другом и с папкой «Автозагрузка». Также в статье описывается порядок загрузки данных разделов.
Сведения, содержащиеся в этой статье, являются дополнением к следующей статье базы знаний Майкрософт:
137367 Назначение разделов «Run» системного реестра WindowsСм. в данной статье подробные сведения о каждом из этих разделов.
Дополнительная информация
В операционных системах Microsoft Windows 95, Windows 98 и Windows Millennium Edition (Me), в которых поддерживаются все разделы, данные разделы загружаются в следующем порядке:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnceЗа исключением раздела HKEY_LOCAL_MACHINE\. \RunOnce, все разделы и записи в них загружаются асинхронно. Таким образом, все записи в разделах RunServices и RunServicesOnce могут выполняться одновременно.
Записи раздела HKEY_LOCAL_MACHINE\. \RunOnce загружаются синхронно, в неопределенном порядке.
Поскольку раздел HKEY_LOCAL_MACHINE\. \RunOnce загружается синхронно, все его записи должны быть загружены до того, как загрузятся записи разделов HKEY_LOCAL_MACHINE\. \Run, HKEY_CURRENT_USER\. \Run, HKEY_CURRENT_USER\. \RunOnce и папки «Автозагрузка».
Разделы RunServicesOnce и RunServices загружаются до входа пользователя в систему Windows 95, Windows 98 или Windows Me. Поскольку эти два раздела запускаются неодновременно с диалоговым окном входа в систему, их запуск может продолжаться и после входа пользователя. Однако, поскольку раздел HKEY_LOCAL_MACHINE\. \RunOnce должен загружаться синхронно, его записи не начнут загружаться, пока не закончится загрузка разделов RunServicesOnce и RunServices.
Так как конфигурация системы может быть различной (например, компьютер может быть сконфигурирован на автоматический вход в систему), следует иметь в виду, что загрузка приложения, которое зависит от других приложений, выполняющихся по завершении загрузки данных разделов, начнется только после полной загрузки этих приложений. В остальном же приведенное выше описание относится также к Microsoft Windows NT 4.0, Windows 2000 и Windows XP.
Система Windows NT 3.51 не поддерживает разделы RunOnce.
При запуске Windows 2000 и Windows XP в безопасном режиме разделы RunOnce игнорируются.
Ссылки
Дополнительные сведения о разделе реестра RunOnceEx см. в следующей статье базы знаний Майкрософт:
232487 Описание раздела реестра RunOnceEx (эта ссылка может указывать на содержимое полностью или частично на английском языке)Дополнительные сведения см. также в следующей статье базы знаний Майкрософт:
137367Назначение разделов «Run» системного реестра Windows
Хочется взять и расстрелять, или ликбез о том, почему не стоит использовать make install
| К написанию сей заметки меня сподвигло то, что я устал делать развёрнутые замечания на эту тему в комментариях к статьям, где в качестве части инструкции по сборке и настройке чего-либо для конкретного дистра предлагают выполнить make install. |
Суть сводится к тому, что эту команду в виде «make install» или «sudo make install» использовать в современных дистрибутивах нельзя.
Но ведь авторы программ в руководствах по установке пишут, что нужно использовать эту команду, возможно, скажете вы. Да, пишут. Но это лишь означает, что они не знают, какой у вас дистрибутив, и дистрибутив ли это вообще, может, вы вступили в секту и обкурилисьчитались LFS и теперь решили под свою хтоническую систему скомпилять их творение. А make install является универсальным, хоть и зачастую неправильным способом это сделать.
Лирическое отступление
Как известно, для нормальной работы большинство софта должно быть не только скомпилировано, но и правильно установлено в системе. Программы ожидают найти нужные им файлы в определённых местах, и места эти в большинстве *nix-систем зашиты в код на этапе компиляции. Помимо этого аспекта основным отличием процесса установки в linux/freebsd/whatever от таковой в Windows и MacOS является то, что программа не просто складывает кучу файлов в отдельную директорию в Program Files или /Applications, а «размазывает» себя по всей файловой системе. Библиотеки идут в lib, исполняемые файлы в bin, конфиги в etc, разного рода данные в var и так далее. Если вам вдруг понадобится её обновить, то всё это надо сначала как-то вычистить, т. к. при использовании новой версии остатки файлов от старой могут привести к совершенно непредсказуемым последствиям, зачастую нехорошим. Вероятность этого события не так велика, но оно вам надо на боевом сервере?
И что с того?
Так вот, если вы делали установку напрямую через make install, то нормально удалить или обновить софтину вы, скорее всего, не сможете. Более того, установка новой версии поверх старой, скорее всего, затрёт ваши изменения в конфигах. make install делает ровно то, что ему сказано — производит установку файлов в нужные места, игнорируя тот факт, что там что-то уже есть. После этого процесса совершенно никакой информации о том, что и куда ставилось, получить в удобоваримом виде невозможно. Иногда, конечно, Makefile поддерживает действие uninstall, но это встречается не так часто, да и не факт, что корректно работает. Помимо этого хранить для деинсталяции распакованное дерево исходников и правил сборки как-то странно.
Как бороться?
Поскольку в дистрибутивах пакеты имеют свойство иногда всё-таки обновляться, для решения этой проблемы придумали такую штуку как пакетный менеджер. При его использовании установка происходит примерно так:
В этом случае при обновлении можно безболезненно поудалять лишнее, а заодно посмотреть, не поменялись ли в системе файлы, помеченные как конфигурационные и спросить, что делать, если в новой версии их содержимое отличается. Помимо этого, пакетный менеджер не даст затереть файлы одного пакета при установке другого. В общем, много полезных штук он может сделать.
Если вы по незнанию/лени скопипастили make install из инструкции, то в системе появляются файлы, о которых пакетный менеджер не знает. Со всеми вытекающими, если вам мало того, что было перечислено ранее.
Что делать?
Так что надо собирать пакет.
У меня нет времени, чтобы ***ться с этим, лучше ещё раз сделаю make install, всё просто и понятно!
Спокойно, спокойно. Он у нас за ноги привязан. Всё не так уж страшно и сложно, как кажется на первый взгляд.
checkinstall
Данная чудесная утилита, будучи запущенной вместо make install задаст несколько вопросов, после чего сама соберёт и установит пакет. Всё, при обновлении никаких проблем с вычисткой старого хлама у вас не будет.
Сборка deb-пакета вручную
После чего получаем в свежесозданной директории весь тот набор файлов. Кстати, мы сейчас находимся в fakeroot-окружении, т. е. можно невозбранно менять владельца и права доступа файлов, но физически в системе владельцем останетесь вы сами. Софт же внутри fakeroot-сессии будет получать изменённую информацию, что позволит упаковать в архив файлы с корректными правами.
Далее создадим в «корне пакета» директорию DEBIAN и сложим в DEBIAN/conffiles список всех файлов, которые должны попасть в /etc:
После чего создаём файл DEBIAN/control следующего содержания:
При необходимости там же можно создать скрипты preinst, postinst, prerm и postrm.
«Правильный» процесс с предварительным созданием пакета исходного кода выходит за рамки данной заметки, а потому описан не будет, но для ваших целей оно обычно и не нужно.
Заключение
Как видите, тут нет абсолютно ничего сложного, но выполнение этих действий избавит вас от огромного числа проблем в будущем.
А авторам статей на хабре просьба: пишите checkinstall вместо make install. Не надо давать вредные советы.
Просто о make
Меня всегда привлекал минимализм. Идея о том, что одна вещь должна выполнять одну функцию, но при этом выполнять ее как можно лучше, вылилась в создание UNIX. И хотя UNIX давно уже нельзя назвать простой системой, да и минимализм в ней узреть не так то просто, ее можно считать наглядным примером количество- качественной трансформации множества простых и понятных вещей в одну весьма непростую и не прозрачную. В своем развитии make прошел примерно такой же путь: простота и ясность, с ростом масштабов, превратилась в жуткого монстра (вспомните свои ощущения, когда впервые открыли мэйкфайл).
Мое упорное игнорирование make в течении долгого времени, было обусловлено удобством используемых IDE, и нежеланием разбираться в этом ‘пережитке прошлого’ (по сути — ленью). Однако, все эти надоедливые кнопочки, менюшки ит.п. атрибуты всевозможных студий, заставили меня искать альтернативу тому методу работы, который я практиковал до сих пор. Нет, я не стал гуру make, но полученных мною знаний вполне достаточно для моих небольших проектов. Данная статья предназначена для тех, кто так же как и я еще совсем недавно, желают вырваться из уютного оконного рабства в аскетичный, но свободный мир шелла.
Make- основные сведения
make — утилита предназначенная для автоматизации преобразования файлов из одной формы в другую. Правила преобразования задаются в скрипте с именем Makefile, который должен находиться в корне рабочей директории проекта. Сам скрипт состоит из набора правил, которые в свою очередь описываются:
1) целями (то, что данное правило делает);
2) реквизитами (то, что необходимо для выполнения правила и получения целей);
3) командами (выполняющими данные преобразования).
В общем виде синтаксис makefile можно представить так:
То есть, правило make это ответы на три вопроса:
Несложно заметить что процессы трансляции и компиляции очень красиво ложатся на эту схему:
Простейший Makefile
Предположим, у нас имеется программа, состоящая всего из одного файла:
Для его компиляции достаточно очень простого мэйкфайла:
Компиляция из множества исходников
Предположим, что у нас имеется программа, состоящая из 2 файлов:
main.c
Makefile, выполняющий компиляцию этой программы может выглядеть так:
Он вполне работоспособен, однако имеет один значительный недостаток: какой — раскроем далее.
Инкрементная компиляция
Представим, что наша программа состоит из десятка- другого исходных файлов. Мы вносим изменения в один из них, и хотим ее пересобрать. Использование подхода описанного в предыдущем примере приведет к тому, что все без исключения исходные файлы будут снова скомпилированы, что негативно скажется на времени перекомпиляции. Решение — разделить компиляцию на два этапа: этап трансляции и этап линковки.
Теперь, после изменения одного из исходных файлов, достаточно произвести его трансляцию и линковку всех объектных файлов. При этом мы пропускаем этап трансляции не затронутых изменениями реквизитов, что сокращает время компиляции в целом. Такой подход называется инкрементной компиляцией. Для ее поддержки make сопоставляет время изменения целей и их реквизитов (используя данные файловой системы), благодаря чему самостоятельно решает какие правила следует выполнить, а какие можно просто проигнорировать:
Попробуйте собрать этот проект. Для его сборки необходимо явно указать цель, т.е. дать команду make hello.
После- измените любой из исходных файлов и соберите его снова. Обратите внимание на то, что во время второй компиляции, транслироваться будет только измененный файл.
После запуска make попытается сразу получить цель hello, но для ее создания необходимы файлы main.o и hello.o, которых пока еще нет. Поэтому выполнение правила будет отложено и make станет искать правила, описывающие получение недостающих реквизитов. Как только все реквизиты будут получены, make вернется к выполнению отложенной цели. Отсюда следует, что make выполняет правила рекурсивно.
Фиктивные цели
На самом деле, в качестве make целей могут выступать не только реальные файлы. Все, кому приходилось собирать программы из исходных кодов должны быть знакомы с двумя стандартными в мире UNIX командами:
Командой make производят компиляцию программы, командой make install — установку. Такой подход весьма удобен, поскольку все необходимое для сборки и развертывания приложения в целевой системе включено в один файл (забудем на время о скрипте configure). Обратите внимание на то, что в первом случае мы не указываем цель, а во втором целью является вовсе не создание файла install, а процесс установки приложения в систему. Проделывать такие фокусы нам позволяют так называемые фиктивные (phony) цели. Вот краткий список стандартных целей:
Теперь мы можем собрать нашу программу, произвести ее инсталлцию/деинсталляцию, а так же очистить рабочий каталог, используя для этого стандартные make цели.
Обратите внимание на то, что в цели all не указаны команды; все что ей нужно — получить реквизит hello. Зная о рекурсивной природе make, не сложно предположить как будет работать этот скрипт. Так же следует обратить особое внимание на то, что если файл hello уже имеется (остался после предыдущей компиляции) и его реквизиты не были изменены, то команда make ничего не станет пересобирать. Это классические грабли make. Так например, изменив заголовочный файл, случайно не включенный в список реквизитов, можно получить долгие часы головной боли. Поэтому, чтобы гарантированно полностью пересобрать проект, нужно предварительно очистить рабочий каталог:
Для выполнения целей install/uninstall вам потребуются использовать sudo.
Переменные
Все те, кто знакомы с правилом DRY (Don’t repeat yourself), наверняка уже заметили неладное, а именно — наш Makefile содержит большое число повторяющихся фрагментов, что может привести к путанице при последующих попытках его расширить или изменить. В императивных языках для этих целей у нас имеются переменные и константы; make тоже располагает подобными средствами. Переменные в make представляют собой именованные строки и определяются очень просто:
Существует негласное правило, согласно которому следует именовать переменные в верхнем регистре, например:
Ниже представлен мэйкфайл, использующий две переменные: TARGET — для определения имени целевой программы и PREFIX — для определения пути установки программы в систему.
Это уже посимпатичней. Думаю, теперь вышеприведенный пример для вас в особых комментариях не нуждается.
Автоматические переменные
Автоматические переменные предназначены для упрощения мейкфайлов, но на мой взгляд негативно сказываются на их читабельности. Как бы то ни было, я приведу здесь несколько наиболее часто используемых переменных, а что с ними делать (и делать ли вообще) решать вам:
Автозагрузка в Windows 7
Сегодня сложно найти организацию, которая не подвергалась бы вирусным атакам. И хотя практически везде уже установлено антивирусное ПО, иногда возникает необходимость вручную посмотреть, где же в реестре стартует то или иное вредоносное ПО, причем даже не обязательно вредоносное. При поиске резидентного вредоносного ПО нас не могут не волновать следующие вопросы:
Именно этому и будет посвящена эта статья.
Существует много способов автозагрузки. Ниже приведены несколько вариантов. Надеюсь, что это сможет вам помочь в розыске и удалении вредоносного ПО из автозагрузки.
Способы автозагрузки
Реестр
В реестре Windows 7 автозагрузка представлена в нескольких ветвях:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] — программы, запускаемые при входе в систему.
Программы, которые запускаются в этом разделе, запускаются для всех пользователей в системе (рис.1).
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce] — программы, запускаемые только один раз при входе пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра.
Программы, которые запускаются в этом разделе, запускаются для всех пользователей в системе.
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] — программы, которые запускаются при входе текущего пользователя в систему
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] — программы, которые запускаются только один раз при входе текущего пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра.
Например, чтобы автоматически запускать Блокнот при входе текущего пользователя, открываем Редактор реестра (regedit.exe), переходим в раздел
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] и добавляем следующий ключ:
«NOTEPAD.EXE»=»C:\WINDOWS\System32\notepad.exe»
Использование групповой политики для автозапуска
Откройте оснастку «Групповая политика» (gpedit.msc), перейдите на вкладку «Конфигурация компьютера — Административные шаблоны — Система». В правой части оснастки перейдите на пункт «Вход в систему». (рис.2).
Фактически в данном разделе локальной групповой политики можно указать дополнительную программу или документ, который будет выполняться при входе пользователя в систему.
Внимание! Данный пункт политики доступен в Конфигурации компьютера и Конфигурации пользователя. Если заданы оба пункта политики, то вначале будет запущена программа из Конфигурации компьютера, а затем уже пользователя.
При этом в системном реестре в разделе [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies] создается подраздел \Explorer\Run с ключами добавленных программ.
Пример:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run]
«1»=»notepad.exe»
В итоге получаем запуск Блокнота (рис 3).
Аналогично задается автозапуск для текущих пользователей, в оснастке «Групповая политика» это путь «Конфигурация пользователя — Административные шаблоны — Система» (рис 2), а в реестре раздел [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]
Внимание! При этом программы из этого списка не отображаются в списке программ доступных для отключения в msconfig.exe, а также определяются не всеми менеджерами автозагрузки.
Игнорировать списки автозагрузки программ выполняемых однажды
Настраивается с помощью групповой политики: «Конфигурация компьютера — Административные шаблоны — Система — Вход в систему — Не обрабатывать список однократного запуска программ»
Если эту политику включить, то не будут запускаться программы, запускаемые из списка
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce] Если эта политика включена, в реестре создается следующий ключ:
Так же настраивается политика для текущих пользователей: «Конфигурация пользователя — Административные шаблоны — Система — Вход в систему — Не обрабатывать список однократного запуска программ» Параметры реестра:
Назначенные задания
Программы могут запускаться с помощью «Планировщика заданий». Посмотреть список установленных заданий, а также добавить новое можно так: «Пуск — Все программы — Стандартные — Служебные — Планировщик заданий» — при этом откроется окно Планировщика заданий, в котором отображены назначенные задания (рис.4).
Чтобы добавить новое задание, нужно из меню «Действия» выбрать пункт «Создать простую задачу» (рис.5).
Запуск программ с помощью этого мастера возможен однократно, при входе в Windows, при включении компьютера, а также по расписанию.
Папка «Автозагрузка»
Папка, в которой хранятся ярлыки для программ запускаемых после входа пользователя в систему. Ярлыки в эту папку могут добавляться программами при их установке или пользователем самостоятельно. Существует две папки — общая для всех пользователей и индивидуальная для текущего пользователя. По умолчанию эти папки находятся здесь:
.. \Users\All Users\Microsoft\Windows\Start Menu\Programs\Startup — это папка, программы из которой будут запускаться для всех пользователей компьютера.
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup — это папка, программы из которой будут запускаться для текущего пользователя.
Посмотреть какие программы у вас запускаются таким способом можно открыв меню «Пуск — Все программы — Автозагрузка». Если вы создадите в этой папке ярлык для какой-то программы, она будет запускаться автоматически после входа пользователя в систему.
Смена папки автозагрузки
Windows считывает данные о пути к папке «Автозагрузка» из реестра. Этот путь прописан в следующих разделах:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
«Common Startup»=«%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup» — для всех пользователей системы.
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
«Startup»=«%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup»
— для текущего пользователя. Сменив путь к папке, мы получим автозагрузку всех программ из указанной папки.
Пример:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
«Startup»=»c:\mystartup» — система загрузит все программы, ярлыки которых находятся в папке c:\mystartup\, при этом папка «Автозагрузка» все так же будет отображаться в меню «Пуск», а если у пользователя в ней ничего не было, то он и не заметит подмены.
Подмена ярлыка для программы из списка автозагрузки
Допустим у вас установлен пакет Acrobat. Тогда в папке «Автозагрузка» у вас будет находиться ярлык «Adobe Reader Speed Launch» — этот ярлык устанавливается туда по умолчанию. Но вовсе необязательно этот ярлык ссылается именно на соответствующее приложение — вместо него может быть запущена любая другая программа, тем более что на функциональности Acrobat это не скажется.
Добавление программы к программе запускаемой из списка автозагрузки
Модификация предыдущего варианта — одновременно с загрузкой какой-либо программы из списка автозагрузки у вас будет стартовать другая программа — дело в том, что можно «склеить» два исполняемых файла в один и они будут запускаться одновременно. Существуют программы для такой «склейки». Или ярлык может ссылаться на командный файл, из которого и будут запускаться как оригинальная программа из списка, так и добавленные посторонние программы.
Посмотреть список автоматически загружаемых программ можно открыв программу «Сведения о системе» (откройте «Пуск — Все программы — Стандартные — Служебные — Сведения о системе» или наберите msinfo32.exe в командной строке) и перейдя в пункт «Программная среда — Автоматически загружаемые программы». Программа «Свойства системы» отображает группы автозагрузки из реестра и папок «Автозагрузка» (рис.6).
Другая программа, позволяющая посмотреть список программ автозагрузки — «Настройка системы» (для запуска наберите msconfig.exe из командной строки). Эта программа кроме просмотра списка автозагрузки предоставляет возможность отключения всех пунктов автозагрузки (вкладка «Общие») или выборочных программ (вкладка «Автозагрузка»).
Заключение
Безусловно, сведения, приведенные в данной статье нельзя считать исчерпывающими, однако, надеюсь, они помогут вам в нелегком труде борьбы с вредоносным ПО.
Автозагрузка в Windows 7
Сегодня сложно найти организацию, которая не подвергалась бы вирусным атакам. И хотя практически везде уже установлено антивирусное ПО, иногда возникает необходимость вручную посмотреть, где же в реестре стартует то или иное вредоносное ПО.
Безмалый В.Ф.
MVP Consumer Security
Сегодня сложно найти организацию, которая не подвергалась бы вирусным атакам. И хотя практически везде уже установлено антивирусное ПО, иногда возникает необходимость вручную посмотреть, где же в реестре стартует то или иное вредоносное ПО, причем даже не обязательно вредоносное. При поиске резидентного вредоносного ПО нас не могут не волновать следующие вопросы:
Именно этому и будет посвящена эта статья.
Существует много способов автозагрузки. Ниже приведены несколько вариантов. Надеюсь, что это сможет вам помочь в розыске и удалении вредоносного ПО из автозагрузки.
Способы автозагрузки
Реестр
В реестре Windows 7 автозагрузка представлена в нескольких ветвях:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run] ‐ программы, запускаемые при входе в систему.
Программы, которые запускаются в этом разделе, запускаются для всех пользователей в системе (рис.1).

Рисунок 1 Автозапуск для всех пользователей
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce] ‐ программы, запускаемые только один раз при входе пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра.
Программы, которые запускаются в этом разделе, запускаются для всех пользователей в системе.
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] ‐ программы, которые запускаются при входе текущего пользователя в систему
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce] ‐ программы, которые запускаются только один раз при входе текущего пользователя в систему. После этого ключи программ автоматически удаляются из данного раздела реестра.
Например, чтобы автоматически запускать Блокнот при входе текущего пользователя, открываем Редактор реестра (regedit.exe), переходим в раздел
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] и добавляем следующий ключ:
«NOTEPAD.EXE»=»C:\WINDOWS\System32\notepad.exe»
Использование групповой политики для автозапуска
Откройте оснастку «Групповая политика» (gpedit.msc), перейдите на вкладку «Конфигурация компьютера ‐ Административные шаблоны ‐ Система». В правой части оснастки перейдите на пункт «Вход в систему». (рис.2).

Рисунок 2 Использование групповой политики для автозапуска (для всех пользователей)
Фактически в данном разделе локальной групповой политики можно указать дополнительную программу или документ, который будет выполняться при входе пользователя в систему.
Внимание! Данный пункт политики доступен в Конфигурации компьютера и Конфигурации пользователя. Если заданы оба пункта политики, то вначале будет запущена программа из Конфигурации компьютера, а затем уже пользователя.
При этом в системном реестре в разделе [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies] создается подраздел \Explorer\Run с ключами добавленных программ.
Пример:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer\Run]
«1»=»notepad.exe»
В итоге получаем запуск Блокнота (рис 3).

Рисунок 3 Запуск Блокнота с помощью локальной групповой политики
Аналогично задается автозапуск для текущих пользователей, в оснастке «Групповая политика» это путь «Конфигурация пользователя ‐ Административные шаблоны ‐ Система» (рис 2), а в реестре раздел [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer\Run]
Внимание! При этом программы из этого списка не отображаются в списке программ доступных для отключения в msconfig.exe, а также определяются не всеми менеджерами автозагрузки.
Игнорировать списки автозагрузки программ выполняемых однажды
Если эту политику включить, то не будут запускаться программы, запускаемые из списка
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce] Если эта политика
включена, в реестре создается следующий ключ:
Назначенные задания

Рисунок 4 Окно Планировщика заданий
Чтобы добавить новое задание, нужно из меню «Действия» выбрать пункт «Создать простую задачу» (рис.5).

Рисунок 5 Создание простой задачи в Планировщике задач
Запуск программ с помощью этого мастера возможен однократно, при входе в Windows, при включении компьютера, а также по расписанию.
Папка «Автозагрузка»
Папка, в которой хранятся ярлыки для программ запускаемых после входа пользователя в систему. Ярлыки в эту папку могут добавляться программами при их установке или пользователем самостоятельно. Существует две папки ‐ общая для всех пользователей и индивидуальная для текущего пользователя. По умолчанию эти папки находятся здесь:
.. \Users\All Users\Microsoft\Windows\Start Menu\Programs\Startup ‐ это папка, программы из которой будут запускаться для всех пользователей компьютера.
%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup ‐ это папка, программы из которой будут запускаться для текущего пользователя.
Посмотреть какие программы у вас запускаются таким способом можно открыв меню «Пуск ‐ Все программы ‐ Автозагрузка». Если вы создадите в этой папке ярлык для какой-то программы, она будет запускаться автоматически после входа пользователя в систему.
Смена папки автозагрузки
Windows считывает данные о пути к папке «Автозагрузка» из реестра. Этот путь прописан в следующих разделах:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
«Common Startup»=«%ProgramData%\Microsoft\Windows\Start Menu\Programs\Startup»‐ для всех пользователей системы.
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
«Startup»=«%USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup»
‐ для текущего пользователя. Сменив путь к папке, мы получим автозагрузку всех программ из указанной папки.
[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders]
«Startup»=»c:\mystartup» ‐ система загрузит все программы, ярлыки которых находятся в папке c:\mystartup\, при этом папка «Автозагрузка» все так же будет отображаться в меню «Пуск», а если у пользователя в ней ничего не было, то он и не заметит подмены.
Подмена ярлыка для программы из списка автозагрузки
Допустим у вас установлен пакет Acrobat. Тогда в папке «Автозагрузка» у вас будет находиться ярлык «Adobe Reader Speed Launch» ‐ этот ярлык устанавливается туда по умолчанию. Но вовсе необязательно этот ярлык ссылается именно на соответствующее приложение ‐ вместо него может быть запущена любая другая программа, тем более что на функциональности Acrobat это не скажется.
Добавление программы к программе запускаемой из списка автозагрузки
Модификация предыдущего варианта ‐ одновременно с загрузкой какой-либо программы из списка автозагрузки у вас будет стартовать другая программа ‐ дело в том, что можно «склеить» два исполняемых файла в один и они будут запускаться одновременно. Существуют программы для такой «склейки». Или ярлык может ссылаться на командный файл, из которого и будут запускаться как оригинальная программа из списка, так и добавленные посторонние программы.
Посмотреть список автоматически загружаемых программ можно открыв программу «Сведения о системе» (откройте «Пуск ‐ Все программы ‐ Стандартные ‐ Служебные ‐ Сведения о системе» или наберите msinfo32.exe в командной строке) и перейдя в пункт «Программная среда ‐ Автоматически загружаемые программы». Программа «Свойства системы» отображает группы автозагрузки из реестра и папок «Автозагрузка» (рис.6).

Рисунок 6 Автоматически загружаемые программы
Другая программа, позволяющая посмотреть список программ автозагрузки ‐ «Настройка системы» (для запуска наберите msconfig.exe из командной строки). Эта программа кроме просмотра списка автозагрузки предоставляет возможность отключения всех пунктов автозагрузки (вкладка «Общие») или выборочных программ (вкладка «Автозагрузка»).
Заключение
Безусловно, сведения, приведенные в данной статье нельзя считать исчерпывающими, однако, надеюсь, они помогут вам в нелегком труде борьбы с вредоносным ПО.









