Чтение онлайн

ЖАНРЫ

Тонкости реестра Windows Vista. Трюки и эффекты
Шрифт:

3.9. Способы загрузки программ при входе

Рассмотрим разделы реестра, которые используются для запуска программ и библиотек при входе пользователя в систему. Кроме того, здесь будут описаны и другие параметры, которые могут находиться в этих ветвях.

Программы, запускаемые процессом WINLOGON.EXE

Ветвь HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\Winlogon используется диалогом входа пользователя в систему (программой WINLOGON.EXE) для хранения параметров реестра, влияющих на ее функционирование. Она может содержать следующие параметры.

• System – данный параметр строкового типа используется для запуска процессов с правами системы при входе пользователя

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

Примечание

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

• Userinit – этот строковый параметр применяется для определения списка программ, используемых в качестве начальных процессов оболочки (запускаются процессом lsass.exe при входе в систему и настраивают пользовательские параметры, после чего запускают оболочку пользователя).

По умолчанию значение данного параметра равно %systemroot%\system32\userinit.exe.

• VmApplet – данный строковый параметр определяет набор процессов (пишутся через запятую), которые WINLOGON будет запускать для настройки параметров виртуальной памяти. По умолчанию этот параметр содержит лишь строку rundll32 shell32, Control_RunDLL "sysdm.cpl".

• Taskman – позволяет переопределить программу, используемую в качестве Диспетчера задач.

• Shell – это, наверное, самый главный параметр, применяемый программой WINLOGON. Именно этот параметр строкового типа указывает на программу оболочки (по умолчанию EXPLORER.EXE), которая будет загружаться для данного пользователя. В данном параметре также можно указать несколько запускаемых при входе пользователя программ, перечислив их через запятую.

Примечание

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

Значение описанного выше параметра shell может быть переопределено с помощью аналогичного параметра ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System (либо той же ветви корневого раздела HKEY_LOCAL_MACHINE).

Следует заметить, что параметр shell используется только в том случае, если значение параметра REG_DWORD типа UseAlternateShell, расположенного в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\option, не равно 1. Если же значение данного параметра равно 1, то файл оболочки, загружаемый операционной системой, берется из параметра строкового типа AlternateShell, расположенного в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot.

Другие настройки процесса WINLOGON

Теперь рассмотрим другие интересные параметры данной ветви реестра. К ним можно отнести следующие.

• Passwordexpirywarning – данный REG_DWORD-параметр определяет количество дней перед истечением срока действия пароля. Когда до истечения этого срока останется столько дней, сколько указано в этом параметре, начнет появляться окно с просьбой сменить пароль. По умолчанию значение данного параметра равно 0хЕ (то есть две недели).

• LegalNoticeCaption и LegalNoticeText – эти строковые параметры определяют, соответственно, заголовок и текст окна, которое будет выводиться

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

• Background – при использовании классического окна приветствия параметр дает возможность определить цвет фона этого окна. При этом параметру следует присвоить цифровые значения трех цветовых компонент, из которых будет состоять цвет (формат RGB, то есть первая цифра определяет насыщенность красной компоненты, вторая цифра – зеленой, а третья – синей). Например, чтобы указать черный фон, этому параметру нужно присвоить значение 0 0 0, чтобы использовать белый фон – значение 255 255 255, чтобы использовать красный, зеленый или синий, соответственно, значения 255 0 0, 0 255 0, 0 0 255. Остальные значения промежуточные. По умолчанию используется голубой фон.

Стандартный способ автоматического запуска программ

Ветвь HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows также может содержать параметры, значения которых будут загружаться при входе пользователя в систему. Рассмотрим их (все они имеют строковый тип).

• Load – определяет программы (пишутся через запятую), которые будут запускаться до входа пользователя в систему.

• Run – задает программы (также пишутся через запятую), которые будут загружаться после входа пользователя в систему.

• AppInit_DLLs – определяет все библиотеки, которые должны загружаться вместе с запуском любой программы. Данный параметр находится и в соответствующей ветви корневого раздела HKEY_LOCAL_MACHINE.

От значения параметра REG_DWORD-типа LoadAppInit_DLLs зависит, будет ли использоваться содержимое параметра AppInit_DLLs. Данный параметр также находится в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows.

Ветвь HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run является стандартной и применяется для автозапуска программ при входе пользователя в систему. Чтобы запустить программу с помощью данной ветви, нужно создать в ней строковый параметр с любым названием. Значение этого параметра должно содержать путь к программе, которая будет запущена при входе пользователя в систему.

Реестр Windows позволяет не только указать программы, которые будут загружаться из этой ветви реестра, но и запретить загрузку этих программ. Для этого применяется REG_DWORD-параметр DisableCurrentUserRun, расположенный в корневых разделах HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE (параметр из корневого раздела HKEY_LOCAL_MACHINE имеет больший приоритет) ветви реестра Software\Microsoft\Windows\CurrentVersion\policies\Explorer. Если значение данного параметра будет равно 1, то запуск программ из рассматриваемой ветви (находящейся в корневом разделе HKEY_CURRENT_USER) будет запрещен. Кроме того, будет запрещен запуск программ, заданных в параметре строкового типа Run ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows (как уже говорилось, предыдущий параметр запрещает запуск программ из ветви корневого раздела HKEY_CURRENT_USER). Если вам нужно запретить запуск программ из раздела HKEY_LOCAL_MACHINE, то следует присвоить REG_DWORD-параметру DisableLocalMachineRun, который расположен в ветви Software\Microsoft\Windows\CurrentVersion\policies\Explorer, значение 1. Параметр из корневого раздела HKEY_LOCAL_MACHINE будет иметь больший приоритет, чем параметр из корневого раздела HKEY_CURRENT_USER.

Если предыдущая ветвь реестра определяла программы, которые всегда будут запускаться при входе пользователя, то ветвь HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce описывает программы, которые будут запущены лишь однажды, а именно при следующем входе пользователя в систему. После этого программы будут автоматически удалены из данной ветви. В остальном она подобна предыдущей – чтобы определить запускаемую программу, нужно создать параметр строкового типа с любым именем и присвоить ему путь к запускаемой программе.

Поделиться с друзьями: