Роман Клименко - Тонкости реестра Windows Vista. Трюки и эффекты
• LegalNoticeCaption и LegalNoticeText – эти строковые параметры определяют, соответственно, заголовок и текст окна, которое будет выводиться перед отображением окна ввода логина и пароля пользователя. Если компьютером пользуется несколько человек, то в этом окне можно описать правила работы за ним или список логинов и паролей, с помощью которых можно зайти в систему забывчивым пользователям.
• Background – при использовании классического окна приветствия параметр дает возможность определить цвет фона этого окна. При этом параметру следует присвоить цифровые значения трех цветовых компонент, из которых будет состоять цвет (формат RGB, то есть первая цифра определяет насыщенность красной компоненты, вторая цифра – зеленой, а третья – синей). Например, чтобы указать черный фон, этому параметру нужно присвоить значение 0 0 0, чтобы использовать белый фон – значение 255 255 255, чтобы использовать красный, зеленый или синий, соответственно, значения 255 0 0, 0 255 0, 0 0 255. Остальные значения промежуточные. По умолчанию используется голубой фон.
Стандартный способ автоматического запуска программ
Ветвь HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWindows также может содержать параметры, значения которых будут загружаться при входе пользователя в систему. Рассмотрим их (все они имеют строковый тип).
• Load – определяет программы (пишутся через запятую), которые будут запускаться до входа пользователя в систему.
• Run – задает программы (также пишутся через запятую), которые будут загружаться после входа пользователя в систему.
• AppInit_DLLs – определяет все библиотеки, которые должны загружаться вместе с запуском любой программы. Данный параметр находится и в соответствующей ветви корневого раздела HKEY_LOCAL_MACHINE.
От значения параметра REG_DWORD-типа LoadAppInit_DLLs зависит, будет ли использоваться содержимое параметра AppInit_DLLs. Данный параметр также находится в ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionWindows.
Ветвь HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRun является стандартной и применяется для автозапуска программ при входе пользователя в систему. Чтобы запустить программу с помощью данной ветви, нужно создать в ней строковый параметр с любым названием. Значение этого параметра должно содержать путь к программе, которая будет запущена при входе пользователя в систему.
Реестр Windows позволяет не только указать программы, которые будут загружаться из этой ветви реестра, но и запретить загрузку этих программ. Для этого применяется REG_DWORD-параметр DisableCurrentUserRun, расположенный в корневых разделах HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE (параметр из корневого раздела HKEY_LOCAL_MACHINE имеет больший приоритет) ветви реестра SoftwareMicrosoftWindowsCurrentVersionpoliciesExplorer. Если значение данного параметра будет равно 1, то запуск программ из рассматриваемой ветви (находящейся в корневом разделе HKEY_CURRENT_USER) будет запрещен. Кроме того, будет запрещен запуск программ, заданных в параметре строкового типа Run ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindows NTCurrentVersionWindows (как уже говорилось, предыдущий параметр запрещает запуск программ из ветви корневого раздела HKEY_CURRENT_USER). Если вам нужно запретить запуск программ из раздела HKEY_LOCAL_MACHINE, то следует присвоить REG_DWORD-параметру DisableLocalMachineRun, который расположен в ветви SoftwareMicrosoftWindowsCurrentVersionpoliciesExplorer, значение 1. Параметр из корневого раздела HKEY_LOCAL_MACHINE будет иметь больший приоритет, чем параметр из корневого раздела HKEY_CURRENT_USER.
Если предыдущая ветвь реестра определяла программы, которые всегда будут запускаться при входе пользователя, то ветвь HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRunOnce описывает программы, которые будут запущены лишь однажды, а именно при следующем входе пользователя в систему. После этого программы будут автоматически удалены из данной ветви. В остальном она подобна предыдущей – чтобы определить запускаемую программу, нужно создать параметр строкового типа с любым именем и присвоить ему путь к запускаемой программе.
Аналогично предыдущей, запуск программ из этой ветви также можно запретить. Для этого используются REG_DWORD-параметры DisableCurrentUserRunOnce и DisableLocalMachineRunOnce. Первый из них запрещает рассматриваемую ветвь из корневого раздела HKEY_CURRENT_USER, а второй – из корневого раздела HKEY_LOCAL_MACHINE.
Ветвь HKEY_KEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionRunOnceEx отличается от предыдущей лишь более широкими возможностями. Например, в ней можно указать последовательность, в которой будут загружаться программы.
Использование групповых политик
Ветвь реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionPoliciesExplorerRun определяет программы, которые будут автоматически запускаться при входе пользователя в систему. Она содержит параметры строкового типа, имена которых формируются в такой последовательности: 1, 2, 3, 4, 5 и т. д. Значения этих параметров соответствуют именам запускаемых программ и путям к ним. Особенность данной ветви заключается в том, что запускаемые с ее помощью приложения нельзя увидеть в окне программы msconfig.exe.
Ветвь HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionGroup PolicyStateMachinescriptsStartup предназначена для запуска программ и сценариев с правами системы при входе пользователя. В этой ветви могут содержаться подразделы, имеющие названия в формате 1, 2, 3, 4, 5 и т. д. В каждом из этих подразделов должны содержаться подразделы, имеющие такой же формат названия (1, 2, 3, 4 и т. д.). В данных подразделах, кроме других, могут находиться два строковых параметра – Script и Parameters. Первый параметр определяет путь к программе, которая будет запускаться, а второй задает список параметров для запуска этой программы. Эту ветвь реестра использует GPO[1].
Ветвь реестра HKEY_CURRENT_USERSoftwarePoliciesMicrosoftWindowsSystemScriptsLogon подобна предыдущей, но программы, запускаемые с ее помощью, имеют права пользователя.
Запуск native-программ
Ветвь реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager включает в себя параметр BootExecute, имеющий тип REG_MULTI_SZ. Данный параметр должен содержать названия лишь специальных программ, называемых native-программами. Они работают только с функциями Native API, большинство из которых описано в библиотеке ntldr.dll. Такие функции позволяют работать с файловой системой компьютера и жестким диском, однако не могут использовать графическую подсистему Windows. Что, в общем-то, не удивительно, ведь эти программы работают на этапе запуска компьютера, на котором операционная система еще не загружена.
Известные библиотеки
Ветвь HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs содержит список известных операционной системе библиотек (в виде параметров строкового типа, значение которых определяет название библиотеки). Известные операционной системе библиотеки всегда проецируются в оперативную память (не выгружаются в файл подкачки), и их запрещено замещать локальными библиотеками, имеющими те же названия, но расположенными в папке запускаемой программы.
В данной ветви реестра также находится параметр расширенного строкового типа DllDirectory. Он задает путь к каталогу, в котором хранятся библиотеки, определенные в ветви HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerKnownDLLs.
Заметьте, что исключить определенные библиотеки из списка известных библиотек можно достаточно простым способом. Для этого нужно указать библиотекиисключения в значении параметра REG_MULTI_SZ-типа ExcludeFromKnownDlls, расположенного в ветви реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession Manager.
Службы
Ветвь HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices содержит все сведения о сервисах и службах, установленных на компьютере. Кроме того, она хранит сведения о том, будет ли служба автоматически загружаться при входе в систему (чтобы просмотреть информацию обо всех службах и способах их загрузки, введите в окне Запуск программы команду services.msc). Рассмотрим формат содержимого подразделов данной ветви.
• Description – данный параметр строкового типа определяет строку описания для соответствующей службы. Строка отображается в поле Описание окна, вызываемого двойным щелчком кнопки мыши на соответствующей службе в окне Службы.
• DisplayName – этот параметр строкового типа задает строку названия службы. Строка отображается в поле Имя службы окна свойств службы.
• ObjectName – данный параметр строкового типа определяет, от чьего имени будет выполняться запуск программы. Если значение этого параметра равно LocalSystem, то вход будет выполняться с правами системы. Если значение этого параметра равно NT AuthorityNetworkService, то вход будет произведен от имени сетевой службы. Если же нужно предоставить службе вход от имени какого-нибудь пользователя данного компьютера, то этому параметру нужно присвоить строку .логин пользователя.
• ErrorControl – этот REG_DWORD-параметр задает поведение системы при возникновении ошибок в работе службы. Если значение данного параметра равно 0, то ошибки будут игнорироваться. При значении параметра равном 1 пользователь будет предупреждаться об ошибке. Если значение параметра равно 2, то при появлении ошибки система будет перезагружаться.