Часть 2 Реестр Windows XP

Глава 4 Корневой раздел HKEY_CLASSES_ROOT

В данной главе будет рассмотрен корневой раздел реестра HKEY_CLASSES_ROOT. Начнем с общих сведений о реестре.

Реестр Windows — это большая база данных, хранящая сведения обо всех настройках операционной системы. Будь то настройка цвета окна или пароль пользователя для входа в систему — все, вплоть до самого маленького флажка самого маленького диалогового окна, находится в реестре Windows.

Так уж получилось, что в Windows XP реестр реализован в виде набора файлов, доступ к которым можно получить только программным путем. Здесь не будет описываться содержимое этих файлов — это не является главной темой книги. Не будет описана и работа с программами для доступа к реестру — данная часть предназначена для тех, кто уже имеет некоторый опыт в использовании реестра. Но, несмотря на это, хотелось бы привести некоторую информацию для тех, кто уже забыл, как работать с реестром (но имеет опыт работы с ним — иначе стоит купить отдельную книгу, посвященную именно этой теме).

Для доступа к реестру в Windows XP применяется стандартная программа операционной системы regedit.exe, расположенная в каталоге %systemroot%. После ее запуска перед вами отобразится окно, состоящее из двух областей — в левой области отображаются ветви реестра, а в правой — содержащиеся в них параметры и их значения. Ветви реестра не произрастают из ничего, они имеют определенную точку монтирования — папку Мой компьютер. При этом стоит сказать, что от точки монтирования отходит пять ветвей (ни больше, ни меньше), называемых корневыми разделами и делящих содержащуюся в реестре информацию на определенные категории. Кратко опишем эти корневые разделы.

■ HKEY_CLASSES_ROOT — содержит сведения обо всех расширениях файлов и ActiveX-объектах, зарегистрированных в системе. Глава 4 посвящена содержимому этого раздела.

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

■ HKEY_USERS — сведения для построения предыдущего раздела хранятся именно в этом корневом разделе. Раздел HKEY_USERS содержит данные о настройках оболочки Windows, применяемых для пользователя, впервые вошедшего в систему (в разделе . DEFAULT данного корневого раздела), а также настройки определенных классов пользователей и текущих пользователей системы. Другими словами, если в Windows 9x данный корневой раздел хранил сведения о настройках всех пользователей системы, то в Windows XP он хранит настройки только текущих пользователей, зарегистрированных в системе. Но если войти в программу regedit.exe от имени другого пользователя, то данный корневой раздел будет содержать настройки как пользователя, который сейчас зарегистрирован в системе, так и пользователя, от чьего имени был произведен запуск программы.

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

■ HKEY_CURRENT_CONFIG — корневой раздел включает в себя копию содержимого ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\Current и создается для совместимости с предыдущими версиями операционной системы.

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

■ REG_SZ — строковый параметр, содержимым которого может быть строка символов Unicode.

■ REG_EXPAND_SZ — расширяемый строковый параметр. Его содержимым может быть как произвольный текст, так и определенные переменные, которые после обработки системой преобразуются в статические пути к каталогам Windows (например, переменная %systemroot% преобразуется в каталог, в котором установлена текущая версия Windows, а переменная %username% преобразуется в имя текущего пользователя, работающего в системе).

■ REG_MULTI_SZ — мультистроковый параметр, содержимым которого могут быть несколько строк текста, разграниченных NULL.

■ REG_DWORD — если все предыдущие типы параметров хранили строковые данные, то данный тип определяет числовое значение длиной не более 4 байт.

■ REG_BINARY — этот параметр хранит данные любой длины, но в основном применяется длина в 4 байта (по аналогии с REG_DWORD).

ПРИМЕЧАНИЕ

В основном нет никакой разницы между типами параметров реестра, поэтому вместо REG_DWORD-типа можно создавать параметры REG_BINARY-типа, вместо REG_SZ-типа можно создавать параметры REG_EXPAND_SZ-типа и т.д.

Битовая маска — это название, используемое для описания значения параметров типа REG_DWORD и REG_BINARY, при котором отдельно описывается результат установки каждого бита данного параметра. Например, в этой книге можно встретить абзацы, в которых будет содержаться подобный текст:

0х00000001 — описание1

0х00000002 — описание2

0x00000004 — описание3

0x00000008 — описание4

0x00000010 — описание5

0x00000020 — описание6

Приведенный абзац можно расшифровать так: если первый бит параметра будет установлен, то описание1, если второй бит параметра установлен, то описание2, если третий бит параметра установлен — описание3 и т.д.

При этом следует еще сказать, что в параметре может быть установлено сразу несколько битов, в этом случае выполняемое им действие определяется суммой соответствующих описаний. Битовая маска не только упрощает описание сложных параметров (по аналогии со способом их описания эти параметры будут также называться битовыми масками), но и позволяет легко установить отдельные биты параметра. Например, чтобы установить все приведенные выше биты параметра, нужно записать в него значение, равное 1 + 2 + 4 + 8 + 10 + 20 = 7 + 38 = 3F (расчет ведется в шестнадцатиричной системе счисления).

Рассмотрим наиболее интересные параметры реестра. Первым корневым разделом, структура которого будет описана, станет раздел HKEY_CLASSES_ROOT. Хотя, если быть точным, содержимое этого раздела строится на основе двух ветвей других корневых разделов: HKEY_LOCAL_MACHINE\SOFTWARE\Classes и HKEY_CURRENT_USER\Software\Classes. Первая ветвь реестра включает в себя информацию о расширениях файлов, используемую всеми пользователями компьютера для построения карты расширений. Вторая ветвь содержит информацию о расширениях, которые либо используются только текущим пользователем, либо переопределяют собой информацию из ветви корневого раздела HKEY_LOCAL_ MACHINE. Иначе говоря, если информация о каком-нибудь расширении содержится как в корневом разделе HKEY_LOCAL_MACHINE, так и в HKEY_CURRENT_USER, то сведения из этих ветвей будут объединяться. При этом сведения из ветви HKEY_CURRENT_USER будут заменять собой сведения из ветви HKEY_LOCAL_MACHINE.

Корневой раздел HKEY_CLASSES_ROOT имеет более-менее статичную структуру. Если остальные корневые разделы могут хранить любую информацию, какую только захотят поместить в них программисты (любое название параметра и любой путь, ведущий к этому параметру), то HKEY_CLASSES_ROOT содержит параметры, названия которых не зависят от прихотей программистов, разрабатывающих соответствующее расширение файла или ActiveX-объект.

Как уже говорилось выше, корневой раздел HKEY_CLASSES_ROOT включает в себя всю информацию о расширениях файлов, которые зарегистрированы в вашей системе, а также описывает те действия, которые вы можете выполнить с файлами данного расширения (команды контекстного меню). Ветвь также содержит сведения обо всех зарегистрированных в системе ActiveX-компонентах, но о них будет рассказано чуть позже, а сейчас разберемся с хранением сведений о расширениях файлов.

Расширения файлов

Есть два способа хранения в реестре информации о расширении файлов — правильный и не очень. Второй применялся в старых версиях операционной системы Windows, хотя поддерживается и Windows XP. При его использовании все параметры и дочерние подразделы записываются в один раздел HKEY_CLASSES_ROOT. Таким образом, все то, что будет рассмотрено далее в этом разделе, при использовании неправильного способа хранения будет содержаться в одном подразделе корневого раздела HKEY_CLASSES_ROOT. Правильный же способ хранения параметров расширения файла определяет для их хранения два раздела. Первый из них назван в честь расширения файла, например, для файлов с расширением TXT он будет называться .txt. Этот раздел еще называют разделом расширения. Он практически ничего интересного не содержит, но зато в параметре (По умолчанию) находится название второго раздела. Вот этот раздел реестра как раз и включает в себя всю интересную и увлекательную информацию о расширении. Он еще называется разделом идентификатора.

Рис. 4.1. Разделы описания расширения файла


В книге будут описываться параметры и дочерние разделы, используемые в регистрации расширения с помощью правильного способа. Но сначала посмотрите на рис. 4.1. Он иллюстрирует правильный способ хранения информации для файлов с расширением TXT.

Раздел расширения

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

■ Content Type — определяет тип расширения MIME, который ассоциирован с файлами соответствующего расширения. Те, кто занимался веб-программированием, конечно знают, что такое MIME. Именно строка MIME используется браузером для определения того, что же ему нужно делать с соответствующим расширением (то ли открыть, то ли воспроизвести, то ли еще что-нибудь).

На рис. 4.1 видно, что текстовые файлы (TXT) используют расширение text/plain, которое определяет содержимое данных файлов как неформатированный текст.

■ PerceivedType — говорит системе о том, в каком виде хранится информация с соответствующим расширением. Этот параметр может принимать такие значения: Text, Image, Audio, Video, System, Compressed.

■ Generic — если значение равно System, то файлы с соответствующим расширением являются собственностью системы и сведения о них лучше не удалять.

■ NoOpen — применяется только в том случае, когда параметр (По умолчанию) раздела расширения не имеет никакого значения. Если данный параметр присутствует, то при попытке открытия соответствующего файла перед отображением диалога Открыть с помощью будет выводиться диалог Внимание, с сообщением о том, что файлы с данным расширением используются системой и их лучше не открывать.

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

Как сказано выше, подраздел ShellNew должен содержать определенный параметр. Этот параметр как раз и определяет, что именно система должна сделать после того, как пользователь выбрал соответствующую команду меню Создать. Рассмотрим возможные параметры (в подразделе ShellNew должен находиться только один из этих параметров).

■ Command — этот параметр строкового типа определяет команду, которая будет выполняться при выборе соответствующего пункта меню Создать.

■ NullFile — данный строковый параметр вообще не должен содержать никакого значения (при этом после выбора создания соответствующего расширения будет создаваться пустой файл).

■ FileName — этот параметр строкового типа определяет путь и имя файла, который будет создаваться (просто копироваться в текущую папку) после выбора соответствующей команды меню Создать. При этом если файл находится в каталоге, определяемом содержимым параметра строкового типа Templates, расположенного в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ShellFolders, то достаточно присвоить параметру FileName только имя необходимого файла.

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

Для примера попробуем создать свою собственную команду в списке Создать. Поскольку большая часть книги посвящена описанию работы с сервером сценариев Windows, сначала будет описан шаблон для быстрого создания основы файла сценария VBS. Для этого нужно воспользоваться ветвью реестра HKEY_CLASSES_ROOT\.vbs\ShellNew. Необходимо создать в ней расширяемый строковый параметр FileName, которому нужно присвоить путь к файлу шаблона. Поскольку в шаблоне будут строки вызова объектов Windows, другие параметры данной ветви не подойдут. Например, присвойте данному параметру значение %systemroot%\WSHtemplate.vbs. Файл шаблона должен содержать следующие данные:

set wshshell = WScript.CreateObject("WScript.Shell")

Пока хватит и этого вызова, когда вы займетесь непосредственно созданиями сценариев, то модифицируете файл шаблона. Теперь присвойте созданному файлу имя WSHtemplate.vbs и посмотрите на результат (рис. 4.2).

Рис. 4.2. Результат создания команды контекстного меню

Раздел идентификатора

Теперь поговорим о содержимом второго раздела, используемого для описания расширения.

Кроме разделов идентификаторов для расширений файлов, в системе также существуют стандартные идентификаторы Windows, описывающие такие объекты, как папка, диск, неизвестные расширения.

■ Folder — содержит настройки для папок Windows. Команды контекстного меню, описываемые данным идентификатором, могут использоваться в построении контекстного меню таких объектов, как диски, директории, значки Корзина и Мой компьютер.

■ Directory — определяет настройки контекстного меню для директорий Windows и содержит подраздел Background. Содержимое этого подраздела определяет команды Упорядочить значки и Создать для контекстного меню Рабочего стола и Проводника.

■ Drive — содержит настройки значков дисков в системе. При этом системой могут применяться и дополнительные идентификаторы для отображения дисков, например, если в данный момент в привод компакт-дисков вставлен музыкальный диск, то будет использоваться идентификатор AudioCD.

■ CompressedFolder — определяет настройки сжатых папок.

■ * — если все предыдущие идентификаторы описывали настройки конкретных файлов расширений, то данный идентификатор определяет настройки для всех расширений файлов, зарегистрированных в системе. Именно сюда довольно часто добавляют свои команды контекстного меню различные программы. Например, идентификатор используется программами WinRAR и «Антивирус Касперского» для добавления своих команд в контекстное меню файлов.

■ Unknown — определяет настройки для всех файлов, не зарегистрированных в системе. Обычно он описывает только команду Открыть с помощью.

■ AllFilesystemObjects — является родительским для всех других идентификаторов. Он определяет настройки для всего: для зарегистрированных файлов, для незарегистрированных файлов, для папок, дисков и т.д. По умолчанию данный идентификатор определяет только команду Отправить.

Параметры раздела идентификатора

Раздел идентификатора может содержать следующие параметры.

■ EditFlags — данный параметр DWORD-типа определяет различные ограничения на модификацию параметров данного расширения при помощи вкладки Типы файлов диалога Свойства папки. Например, если значение равно 0х00000001, то соответствующего расширения в списке зарегистрированных файлов данной вкладки вы не найдете. Если же значение равно 0х00000008, то кнопка Дополнительно вкладки Типы файлов для данного расширения будет заблокирована. Если же значение равно 0х00000200, то будет запрещена возможность смены значка для данного расширения.

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

Рис. 4.3. Запрет на удаление, изменение, смену описания и смену значка


Для примера на рис. 4.3 приведен диалог изменения ТХТ-файла с установленным значением параметра в 0x000003c0, то есть используются следующие битовые маски:

• 0х00000040 — делает недоступной кнопку Изменить диалога Изменение свойств типа файлов (диалог вызывается при нажатии кнопки Дополнительно на вкладке Типы файлов);

• 0х00000080 — делает недоступной кнопку Удалить диалога Изменение свойств типа файлов;

• 0х00000100— запрещает пользователю изменение описания файлов с данным расширением при помощи поля диалога Изменение свойств типа файлов;

• 0х00000200 — запрещает пользователю изменение пиктограммы, присвоенной файлам с данным расширением, при помощи кнопки Сменить значок в окне Изменение свойств типа файлов.

■ AlwaysShowExt и NeverShowExt — два эти параметра строкового типа являются взаимоисключающими, то есть если в разделе присутствует один из них, то другого там быть не должно (значения им присваивать не нужно). Если в разделе будет присутствовать первый параметр, то соответствующее расширение файла всегда будет отображаться. Независимо от того, как настроена система (здесь имеется в виду возможность скрытия зарегистрированных расширений при помощи соответствующего флажка вкладки Вид диалога Свойства папки). Если присутствует второй параметр, то расширение всегда будет скрыто.

■ InfoTip — этот параметр строкового типа определяет подсказку, которая будет отображаться при удержании указателя мыши над файлом данного расширения. Параметр может содержать или произвольный текст, или специальные зарезервированные слова (если присутствуют обычные слова, то зарезервированные также считаются обычными и не выполняют заложенные в них действия). Зарезервированные слова пишутся после строки prop:. К таким словам относятся следующие.

• Comment — в подсказке будет выводиться комментарий, вводимый в диалоге Свойства данного файла.

• Size — отображается размер файла.

• Access — отображаются права на доступ к файлу.

• Owner — отображается логин создателя файла.

• Year и другие. Несколько зарезервированных слов пишутся через точку с запятой.

На рис. 4.1 можно увидеть, что для ТХТ-файлов в подсказке отображаются сведения о размере, а также описание файла, задаваемое в параметре (По умол-чанию) раздела идентификатора.

Параметр (По умолчанию) раздела идентификатора содержит строку описания, отображаемую в поле Тип файла диалога Свойства. Значение данного параметра также отображается как название команды в пункте меню Создать контекстного меню Рабочего стола или Проводника.

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

■ BrowseInPlace — очень интересный строковый параметр, значение которого можно не указывать. Он используется только для идентификаторов, файлы которых открывают окно Проводника — например, для идентификатора Directory. Если данный идентификатор будет содержать параметр строкового типа BrowseInPlace, то все папки в системе будут открываться с помощью браузера Internet Explorer. Например, если попытаться открыть папку С:\Windows, то браузер будет искать сайт с адресом C:\Windows. Конечно, у него это не получится, поэтому с помощью данного параметра строкового типа можно запретить пользователям доступ к папкам системы.

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

■ Thumbnail — еще один параметр строкового типа. Его значение указывает на файл изображения, который будет использоваться для отображения в виде эскиза страницы для файлов с соответствующим расширением (правда, данный параметр применяется не для всех идентификаторов). Например, если создать данный параметр в разделе идентификатора Drive, то все диски при использовании вида Эскизы страниц будут представлены с помощью указанного вами изображения. Если же создать данный параметр в разделе идентификатора Folder, то ваш значок будет использоваться для отображения значка Корзины.

■ DefaultDropEffect — данный параметр DWORD-типа определяет, какую именно операцию будет выполнять система при перемещении в другое окно файлов с данным расширением. По умолчанию при этом она перемещает файл любого расширения в соответствующую папку, но если значение этого параметра равно 1, то файл с соответствующим расширением будет копироваться.

Разделы ветви идентификатора

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

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

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

■ Shell — это, наверное, самый интересный раздел идентификатора, ведь именно его содержимое и определяет команды контекстного меню для расширения, а также их свойства. Параметр (По умолчанию) данного раздела определяет название глагола (глаголы являются подразделами раздела shell), команда которого будет использоваться при выполнении попытки открытия файлов соответствующего расширения двойным щелчком кнопкой мыши. Параметр (По умолчанию) может также хранить перечисление всех глаголов раздела — в этом случае он описывает последовательность, в которой они будут расположены в контекстном меню файла.

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

Данное правило не распространяется на так называемые стандартные глаголы системы — если их параметр (По умолчанию) не определен, то будет использоваться название команды контекстного меню, заложенное в системе для данных глаголов. К стандартным можно отнести следующие глаголы:

■ Open — добавляет в контекстное меню команду Открыть;

■ Explore — Проводник;

■ Find— Найти;

■ Openas — Открыть с помощью;

■ Runas — Запуск от имени;

■ Print — Печать;

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

Глаголы могут содержать следующие параметры.

■ MUIVerb — если этот параметр строкового типа присутствует в системе, то его значение будет переопределять значение параметра (По умолчанию) данного глагола.

■ FriendlyAppName — еще один параметр строкового типа. Он переопределяет команду, отображаемую в списке Открыть с помощью и идентифицирующую программу, запускаемую с помощью данного глагола. Например, если создать этот параметр в ветви реестра HKEY_CLASSES_ROOT\txtfile\shell\open и присвоить ему значение, допустим, Мой блокнотик, то можно будет увидеть диалог, представленный на рис. 4.4.

Рис. 4.4. Создание синонима программы


■ BrowserFlags — этот параметр иногда можно встретить в ветви реестра HKEY_CLASSES_ROOT\Folder\shell\open. Он является битовой маской и может определять способ открытия папки и всех ее дочерних объектов в Windows. Например, если в значении этого параметра присутствует битовая маска 0x00000020, то папки будут открываться с помощью Проводника, то есть с открытой панелью папок в левой части окна.

■ Extended — если данный параметр строкового типа существует в подразделе глагола, то описываемая этим подразделом команда не будет отображаться в контекстном меню файлов соответствующего расширения.

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

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

ПРИМЕЧАНИЕ

В реестре Windows XP существует ветвь, переопределяющая программу, которая будет запускаться при двойном щелчке кнопкой мыши на файле (то есть переопределяющая параметр (По умолчанию) подраздела command для глагола open). Этой ветвью является HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\«расширение». Она может хранить строковый параметр Application, который как раз и определяет приложение, запускаемое при двойном щелчке на файле с соответствующим расширением.

■ Ddeexec — подраздел необязателен. Его содержимое определяет команду DDE, которая будет исполняться вместе с указанной командой подраздела command при выборе из контекстного меню соответствующего действия. Само сообщение DDE описано в параметре (По умолчанию) данного подраздела, а параметры для его исполнения записаны в дочерних подразделах. Более подробно об этих параметрах можно узнать из базы данных, поставляемой с книгой (в самой книге эти параметры рассмотрены не будут, так как на практике обычные пользователи их применяют не часто).

ПРИМЕЧАНИЕ

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

Но не только раздел shell может хранить настройки контекстного меню файлов с соответствующим расширением — команды контекстного меню могут содержаться и в разделе shellex. Нет, это не избыточность — раздел shellex имеет совершенно не такое назначение, как shell. Если раздел shell создан специально для того, чтобы описывать команды меню, вызывающие различные программы с помощью стандартного диалога Запуск программы, то shellex хранит сведения о дополнительных расширениях, которые могут использоваться при отображении значка, контекстного меню или диалога свойств для файлов данного расширения. Эти расширения реализованы в системе с помощью ActiveX-объектов, но о них мы скажем чуть позже, когда будет рассматриваться ветвь реестра, содержащая сведения обо всех установленных на компьютере ActiveX-объектах.

В зависимости от назначения ActiveX-объекта его описание должно находиться в одном из дочерних подразделов раздела shellex. Например, в подразделе PropertySheetHandlers хранятся дополнительные вкладки для диалога Свойства файлов данного расширения. В подразделе ContextMenuHandlers определяются дополнительные команды контекстного меню, использующие для своей работы ActiveX-объекты. В подразделе DropHandler определяется обработчик для операций drag-and-drop, выполняемых с файлами соответствующего расширения, а в подразделе IconHandler находятся сведения об обработчиках значков, которые будут выводить соответствующий значок в диалоге свойств или вместо стандартного значка файла.

Независимо от того, какой подраздел используется для описания расширения ActiveX-файла, его содержимое должно быть представлено в одной из следующих форм.

■ С помощью набора подразделов, названных в честь соответствующих CLSID-номеров ActiveX-объектов (один подраздел — описание одного расширения).

■ С использованием подразделов, название которых не имеет значения. В этом случае параметры (По умолчанию) данных подразделов должны хранить значения, названные в честь соответствующих CLSID-номеров ActiveX-объектов (один подраздел — описание одного расширения).

Подразделы корневого раздела

Как видите, сведения о расширениях файлов хранятся в реестре в виде упорядоченных данных (чего, к сожалению, нельзя сказать о других корневых разделах реестра, структура которых если и прослеживается, то только в некоторых местах).

Но не только сведения о расширениях файлов можно найти в корневом разделе HKEY_CLASSES_ROOT — в нем также хранятся сведения обо всех установленных на компьютере ActiveX-объектах и некоторые другие разделы, описание которых приведено далее.

CLSID

В данной главе книги уже несколько раз упоминалось о таких объектах Windows, как ActiveX, но еще ни слова не говорилось о том, что же это такое и для чего необходимо. Но этот пробел будет восполнен, ведь сейчас начнется рассказ о структуре раздела CLSID, который включает в себя сведения об ActiveX-объектах.

ActiveX-объекты — это специальные, уже скомпилированные программы, доступ к которым нельзя получить напрямую, но их можно вызвать с помощью операционной системы Windows. Всем известными примерами ActiveX-объектов могут быть следующие значки: Мой компьютер, Мои документы, Корзина, Назначенные задания, Панель управления и т.д.

Каждый ActiveX-объект имеет свой уникальный идентификатор — CLSID-номер, который служит в системе в качестве названия ActiveX-объекта. CLSID-номера не берутся из головы — для их создания предназначены специальные программы. Например, программа GUIDgen, входящая в стандартную поставку компилятора Microsoft Visual C++ 6.0.

CLSID-номер является 32-байтным номером, состоящим из шестнадцатиричных чисел, первые восемь байт которого генерируются случайным образом. Следующие четыре байта используют для своего создания текущее значение даты и времени, а остальные генерируются на основе конфигурационных данных компьютера. При этом CLSID-номер берется в фигурные кавычки и имеет такой формат написания: {ХХХХХХХХХ-ХХХХ-ХХХХ-ХХХХ-ХХХХХХХХХХХХ}.

Перечень CLSID-номеров наиболее интересных ActiveX-объектов можно просмотреть в приложении 4.

Параметры раздела ActiveX-объекта

Раздел CLSID включает в себя список вложенных подразделов, каждый из которых назван на основе CLSID-номера ActiveX-объекта, который он описывает, и хранит сведения только об этом ActiveX-объекте. Подраздел ActiveX-объекта может содержать следующие параметры.

■ (По умолчанию) — определяет дружественное название ActiveX-объекта, предназначенное для отображения в качестве имени значка или команды. Например, если изменить значение параметра (По умолчанию) для ActiveX-объекта {645FF040-5081-101B-9F08-00AA002F954E} (значок Корзины), то изменится и само название Корзины, отображаемое под ее значком. Если изменить значение параметра (По умолчанию) ActiveX-объекта {21EC2020-3AEA-1069-A2DD-08002B30309D}, то изменится заголовок и адрес панели управления при ее отображении (рис. 4.5).

ПРИМЕЧАНИЕ

Если вам необходимо изменить имя сетевого клиента (по умолчанию это имя — Microsoft Windows Network, но можно изменить его на любое другое, например Моя сеть), которое можно найти по пути Сетевое окружение►Вся сеть, то ActiveX-объект сетевого клиента не поможет. Данное имя считывается из параметра строкового типа Name ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\NetworkProvider — именно этот параметр и нужно изменять.

Рис. 4.5. Результат изменения названия Панели управления


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

■ SortOrderIndex — этот параметр DWORD-типа может присутствовать в некоторых подразделах ActiveX-объектов, отображаемых на Рабочем столе, например в подразделах ActiveX-объектов Мой компьютер, Мои документы и Корзина. Он определяет порядок расположения этих ActiveX-объектов на Рабочем столе.

■ InfoTip — данный параметр строкового типа определяет строку подсказки, отображаемую для значка соответствующего ActiveX-объекта при наведении и удержании на нем указателя мыши.

Подразделы ветви ActiveX-объекта

Подразделы, описывающие ActiveX-объекты, кроме параметров, могут содержать множество дочерних подразделов. Среди них могут присутствовать и уже рассмотренные shell и shellex, а также некоторые из следующих подразделов.

■ DefaultIcon — параметр (По умолчанию) данного подраздела определяет путь к файлу рисунка, применяемому для отображения значка ActiveX-объекта (например, этот параметр ActiveX-объекта {20D04FE0-3AEA-1069-A2D8-08002B30309D} определяет значок для папки Мой компьютер).

■ Данный подраздел может также хранить параметр строкового типа OpenIcon, который определяет путь к файлу рисунка, используемому вместо стандартного рисунка значка открытого ActiveX-объекта. На рис. 4.6 можно увидеть результат изменения этого параметра для приведенного выше ActiveX-объекта {20D04FE0-3AEA-1069-A2D8-08002B30309D}.

Рис. 4.6. Изменение значка на панели заголовка папки Мой компьютер


ПРИМЕЧАНИЕ

Значение приведенного выше параметра (а также некоторых других параметров, которые будут описаны) может быть переопределено в ветви реестра HKEY_CURRENT_ USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CLSID\{CLSID+Hомep ActiveX-объекта}.

■ ShellFolder — параметры этого подраздела определяют различные свойства значка ActiveX-объекта, а также команд его контекстного меню. Подраздел может включать в себя следующие параметры.

• WantsFORDISPLAY— присутствие этого параметра строкового типа запрещает системе выводить название соответствующего ActiveX-объекта под его значком. Например, если создать этот параметр в ветви реестра {645FF040-5081-101B-9F08-00AA002F954E}, то можно добиться такого же эффекта, как и на рис. 4.7.

Рис. 4.7. Скрытие названия значка Корзины


• HideInWebView — присутствие этого параметра строкового типа говорит системе о том, что она должна скрывать значки, соответствующие данному ActiveX-объекту, при использовании нового вида окна Проводника (при установке переключателя в положение Отображение списка типичных задач в папках на вкладке Общие диалога Свойства папки).

• HideFolderVerbs — присутствие данного параметра строкового типа говорит системе о том, что она не должна добавлять к контекстному меню значка ActiveX-объекта команды контекстного меню стандартного идентификатора Folder.

ПРИМЕЧАНИЕ

Существует и альтернативная возможность — сказать системе, что она обязана добавить к контекстному меню данного ActiveX-объекта команды, определяемые идентификатором Folder. Для этого необходимо установить битовую маску 0х20000000 в параметре DWORD-типа Attributes, описание которого приведено ниже.

• Attributes — значение данного параметра DWORD-типа определяет, будут ли отображаться различные стандартные команды контекстного меню для значка данного ActiveX-объекта. Параметр является битовой маской, биты которой имеют следующую функциональность: 0х00000001 — определяет присутствие команды Копировать; 0х00000002 — устанавливает присутствие команды Вырезать; 0х00000010 — определяет команду Переименовать; 0х00000020 —устанавливает команду Удалить; 0х00000040 — определяет отображение команды Свойства; 0х00000100 — устанавливает отображение команды Вставить; 0х00200000 — определяет отображение команд, содержащихся в подразделе ContextMenuHandlers (он является дочерним по отношению к разделу shellex, который, в свою очередь, располагается в одном из разделов идентификаторов).

Например, на рис. 4.8 отображено контекстное меню значка Корзины с использованием значения параметра Attributes, равного 0х20000030.

Рис. 4.8. Редактирование контекстного меню значка Корзины


ПРИМЕЧАНИЕ

В подразделе ShellFolder может присутствовать DWORD-параметр CallForAttributes. Если его значение отлично от 0, то система не будет использовать содержимое параметра Attributes для ограничения контекстного меню значка данного ActiveX-объекта.

Это далеко не все подразделы, которые могут находиться в ветви ActiveX-объекта, но это самые интересные из них (с точки зрения возможностей изменения). О других подразделах ветви ActiveX-объекта можно узнать в базе данных по реестру, поставляемой вместе с этой книгой.

Другие разделы корневого раздела

Уже была рассмотрена большая часть содержимого корневого раздела реестра HKEY_CLASSES_ROOT — разделы расширения, идентификатора и раздел CLSID, но, кроме них, корневой раздел включает в себя еще несколько разделов, которые стоит описать. Некоторые из описываемых в разделах параметров реализуют уникальные возможности, которых в Windows больше никакими другими способами достичь нельзя.

■ DeskLink — реализует возможность создания ярлыков на Рабочем столе с помощью команды контекстного меню файлов Отправить. Он описывает ActiveX-объект, предназначенный для выполнения этой операции. Если удалить или переименовать этот раздел, то соответствующая возможность будет запрещена.

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

Раздел Applications имеет и противоположную описанной выше функции возможность — он определяет те программы, которые никогда не будут отображаться в диалоге Открыть с помощью. Если программа не должна отображаться в диалоге, то в дочернем подразделе раздела Applications, названном в честь данной программы, нужно создать параметр строкового типа NoOpenWith. Значение этого параметра не используется.

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

Еще один параметр строкового типа, который может содержаться в подразделе, названном в честь необходимой программы, — TaskbarGroupIcon. Его значение определяет путь к файлу рисунка, который будет использоваться в качестве значка сгруппированных программ на Панели задач. Например, можно создать данный параметр в ветви реестра HKEY_CLASSES_ROOT\Applications\explorer.exe (рис. 4.9).

Рис. 4.9. Изменение рисунка группы программ


Но, кроме параметров, раздел Applications может хранить и другие подразделы. Например, в нем может находиться подраздел shell, включающий в себя дополнительные глаголы (или переопределение уже существующих) для файлов, ассоциированных с соответствующей программой уже после того, как будет изменено содержимое подраздела shell ветви HKEY_CLASSES_ROOT\Applications\«приложение».

Кроме подраздела shell, в некоторых разделах ветви системного реестра HKEY_CLASSES_ROOT\Applications могут находиться и другие подразделы. Например, в ветви HKEY_CLASSES_ROOT\Applications\explorer.exe может располагаться подраздел drives. С его помощью можно переопределить файлы рисунков, применяемые в качестве значков логических дисков. Для этого достаточно в подразделе drives создать вложенный подраздел с названием соответствующим букве диска, значок которого нужно изменить, а в созданном подразделе нужно создать еще один — DefaultIcon. Параметр (По умолчанию) этого подраздела как раз и определяет значок, используемый для отображения данного диска. Например, чтобы сменить значок диска H:, нужно изменить параметр (По умолчанию) ветви реестра HKEY_CLASSES_ROOT\Applications\explorer.exe\drives\h\DefaultIcon.

■ MIME — содержит сведения обо всех типах MIME, зарегистрированных на компьютере. Описание всех этих типов находится в ветви системного реестра HKEY_CLASSES_ROOT\MIME\Database\Content Type, включающей в себя подразделы с именами, соответствующими типу (audio/basic, image/bmp, text/plain и т.д.). Эти подразделы могут хранить следующие параметры:

• CLSID — определяет CLSID-номер сервера ActiveX, который будет обслуживать данный тип;

• Extension — устанавливает расширение файла, которое использует данный тип MIME;

• Encoding — данный параметр BINARY-типа определяет код для кодировки данных MIME.

■ AppID — предназначен для определения настроек удаленной активизации и защиты различных ActiveX-объектов, описанных в разделе CLSID. Как и CLSID, раздел AppID хранит список подразделов, названных в честь конкретного CLSID-номера ActiveX-объекта. О параметрах и подразделах этих ветвей реестра здесь рассказано не будет. Тем не менее если эта тема вам интересна, то в базе данных по реестру, поставляемой вместе с книгой, есть сведения о параметрах и подразделах этой ветви реестра.

Глава 5 Настройка оболочки

В предыдущей главе была полностью рассмотрена структура корневого раздела HKEY_CLASSES_ROOT. Структура остальных корневых разделов в этой книге рассматриваться не будет, так как она по своей природе не статична — нельзя точно предположить, какое название параметра решат использовать программисты при написании своего приложения и в какой ветви им захочется его создать. Поэтому структура таких корневых разделов системного реестра, как HKEY_CURRENT_USER и HKEY_LOCAL_MACHINE (за исключением ветви HKEY_LOCAL_MACHINE\SYSTEM), не будет рассматриваться вообще. Вместо этого будут описаны отдельные параметры, которые могут находиться в данных корневых разделах.

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

Значки

Но начнем наконец рассматривать параметры реестра. Для начала будут описаны различные настройки значков файлов или ActiveX-объектов, которые можно изменить в операционной системе Windows XP (эта глава не содержит информации о настройках из корневого раздела HKEY_CLASSES_ROOT).

Изображения

Все уже привыкли к стандартным значкам Windows, таким как значок диска, файла неизвестного расширения, папки и т.д. Но иногда все-таки хочется разнообразия, поэтому сейчас попробуем изменить некоторые стандартные значки, применяемые в операционной системе для файлов расширений. Для этого понадобится ветвь реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellIcons. Она как раз и содержит список параметров строкового типа, определяющих пути к файлам рисунков, которые будут использоваться при следующем входе в систему для построения изображений стандартных значков. Значения этих строковых параметров определяют путь к файлу изображения, а имя параметра соответствует индексу данного значка в библиотеке shell32.dll (этот индекс указывает на изображение по умолчанию для данного значка). Список всех индексов и соответствующих им значков можно просмотреть в приложении 5. Пока, чтобы не отвлекаться на перелистывание книги, скажем, что для отображения значка дисковода используется значок с индексом 6, для отображения «руки» под общедоступной папкой используется значок с индексом 28, а для отображения значка файлов справки используется значок с индексом 23. Попробуем изменить файлы рисунков для данных индексов.

По умолчанию ветвь HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Icons не присутствует в реестре, поэтому ее придется создать самостоятельно. После этого нужно создать в ней параметр строкового типа, имя которого равно 6 (для значка дисковода), а значение параметра определяет путь к новому файлу рисунка. Аналогично создаются параметры для изменения других значков.

ПРИМЕЧАНИЕ

Не всегда внесенные изменения вступают в силу сразу после перезагрузки — иногда нужно подождать некоторое время, чтобы система внесла изменения в файл shelliconcache (данный файл используется как кэш, содержащий все файлы изображений, используемые для отображения значков в системе). Если же ждать не хочется, то можно попробовать самому удалить этот файл. Для этого нужно в командной строке ввести del shelliconcache или самостоятельно найти данный файл и удалить его (файл является суперскрытым, поэтому, чтобы он отобразился, необходимо установить соответствующий флажок на вкладке Вид диалога Свойства папки).

Кстати, существует также возможность изменения размера этого файла. Для этого предназначен параметр строкового типа Max Cached Icons, расположенный в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer.

На рис. 5.1 можно увидеть результат изменения.

Рис. 5.1. Изменение изображения, используемого для отображения «руки» общедоступных папок и значка дисковода


Другой возможностью, которую предоставляет операционная система Windows, является изменение значков отдельно для каждого логического диска. Это делается с помощью ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons. Ветвь должна содержать разделы, каждый из которых назван в честь буквы логического диска (например, для диска С: создаваемый подраздел должен называться С). Внутри раздела диска могут находиться еще два подраздела. Первый из них называется DefaultIcon — его параметр (По умолчанию) как раз и определяет путь к значку, который будет использоваться для отображения дисков. Второй же подраздел называется DefaultLabel — если он присутствует, то значение его параметра (По умолчанию) определяет название метки данного логического диска, применяемой, если диск не имеет своей собственной метки.

ПРИМЕЧАНИЕ

Не забывайте и о ветви реестра HKEY_CLASSES_ROOT\Applications\explorer.exe\drives\«буква диска»\Defaultlcon, с помощью которой также можно изменить значок для конкретного диска.

Кроме значка и метки диска, операционная система Windows XP позволяет выполнить еще один хакинг — определить, в каком месте названия будет находиться буква логического диска. По умолчанию буква отображается в конце названия, что в некоторых случаях не совсем удобно — буква может скрываться, если название слишком длинное. Поэтому, чтобы исправить этот недостаток, можно воспользоваться DWORD-параметром ShowDriveLettersFirst, расположенным в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer. Он может принимать следующие значения:

■ 1 — установлено по умолчанию, что как раз и соответствует отображению значка диска справа от его метки;

■ 2 — вообще скрывает букву диска из его названия;

■ 4 — буква диска будет отображаться слева от его метки, то есть название, которое раньше отображалось как, например, System (С:), после присвоения данному параметру значения 4 и последующей перезагрузки компьютера будет отображаться как (С:) System.

При выполнении хакинга со значками диска следует учитывать, что если вы в данный момент используете вид Эскизы страниц и описываемый в предыдущем разделе параметр thumbnail для идентификатора диска содержит путь к рисунку, то будет применяться именно рисунок из параметра thumbnail, а не изменяемый значок диска.

Следует также учитывать, что существует еще один параметр, определяющий изображение, которое будет накладываться поверх эскиза папки (если вы будете изменять эскиз для папки с помощью параметра thumbnail). Он находится в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Shell\Bags\AllFolders\Shell и называется Logo (имеет строковый тип). Его значение определяет путь к рисунку, который будет накладываться поверх папки при использовании режима отображения Эскизы страниц.

Раз уж выше была затронута тема эскизов страниц, то мы еще немного поговорим и о них. Параметры отображения эскизов расположены в ветви системного реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer. Эта ветвь может содержать два параметра DWORD-типа, имеющих названия ThumbnailQuality и ThumbnailSize. Первый определяет качество создаваемых системой эскизов страниц и может принимать значения от 50 до 100 (значение по умолчанию — 90). Второй же параметр определяет размер эскизов. Он может принимать значения от 32 до 255 (по умолчанию его значение равно 96).

Теперь несколько слов о настройке цвета названий различных значков операционной системы Windows. Здесь не будет рассказано о том, что можно изменить с помощью диалога Свойства: Экран, поэтому получится не очень много, но тем не менее.

Существует возможность изменения цвета зашифрованных и сжатых файлов в операционной системе Windows. Для этого применяются два параметра REG_BINARY-типа, имеющие следующий формат: 0xR 0xG 0хВ 00, где 0xR определяет красную составляющую цвета, 0xG — зеленую, а 0хВ — синюю (например, значение 00FF0000 определяет зеленый цвет имени файлов соответствующего типа). Эти параметры расположены в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer. Первый из этих параметров называется AltColor и определяет цвет сжатых файлов, а второй — AltEncryptionColor — служит для изменения цвета зашифрованных файлов.

Последний трюк относится к цвету отображения названия определенного ActiveX-объекта. Все дело в том, что в Windows существует возможность указать операционной системе, что название конкретного ActiveX-объекта будет отображаться синим цветом (или цветом, который будет определен вышеописанным параметром AltEncryptionColor). Для этого используется параметр Attributes, расположенный в разделе ShellFolder ветви реестра, определяющей необходимый ActiveX-объект. В предыдущей главе уже рассматривался этот параметр, но еще не упоминалось о такой возможности.

Итак, чтобы отобразить название ActiveX-объекта, расположенное под его значком, синим цветом, достаточно установить данному параметру DWORD-типа битовую маску 0x04000000. Например, чтобы изменить цвет названия значка Панель задач и меню Пуск, расположенного в папке Панель управления, необходимо отредактировать параметр Attributes из ветви реестра HKEY_CLASSES_ROOT\clsid\{0DF44EAA-FF21-4412-828E-260A8728E7F1}\ShellFolder. К сожалению, на черно-белом изображении изменение цвета практически незаметно, поэтому рисунок не приводится.

Можно также заставить систему отобразить название ActiveX-объекта зеленым цветом (или цветом, который будет определен вышеописанным параметром AltColor). Для этого нужно присвоить параметру Attributes битовую маску 0x00002000. Следует только учесть, что в этом случае битовая маска 0x04000000 должна быть сброшена.

Последняя возможность битовой маски Attributes, которая будет рассмотрена, — эффект полупрозрачности значка ActiveX-объекта. Чтобы добиться такого эффекта, нужно присвоить параметру Attributes битовую маску 0x00008000.

ПРИМЕЧАНИЕ

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

Расположение

Кроме изменения значков различных файлов Windows, существует возможность управления расположением значков на Рабочем столе. Само расположение значков описано в разделе HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop, поэтому если вы уже идеально настроили свой Рабочий стол, то можно запретить полный доступ к этому разделу системе, своей учетной записи и группе, к которой принадлежит ваша учетная запись, оставив только доступ на чтение.

Можно также заставить значок Корзины при следующем входе в систему отображаться в правом нижнем углу. Для этого нужно присвоить DWORD-параметру AdjustRecycleBinPosition значение, равное 1 (рис. 5.2). Он расположен в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\ScreenResFixer. После следующего входа в систему Windows, независимо от настроек раздела HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop, отобразит значок Корзины в правом нижнем углу. После этого система изменит значение параметра AdjustRecycleBinPosition на 2 (то есть разрешит изменение расположения значка Корзины). Если же вы не хотите, чтобы расположение этого значка можно было изменить, то следует также запретить полный доступ и к этой ветви реестра, оставив только доступ на чтение.

Рис. 5.2. Расположение значка Корзины

ПРИМЕЧАНИЕ

Есть возможность определить порядок расположения ActiveX-объектов на Рабочем столе. Для этого применяется DWORD-параметр SortOrderIndex, расположенный в разделе ActiveX-объекта ветви реестра HKEY_CLASSES_ROOT\clsid. Например, если значение этого параметра для значка Корзины будет равно 0x00000060, для значка папки Мой компьютер — 0x00000054, а для значка Мои документы — 0x00000048, то на первом месте Рабочего стола будет отображаться Корзина, на втором — Мой компьютер, а на третьем — Мои документы.

Отображение

Еще одной возможностью, которую предоставляет пользователям Windows, является определение тех значков ActiveX-объектов, которые будут отображаться на Рабочем столе, в папках Панель управления и Мой компьютер.

ActiveX-объекты

Для определения тех значков ActiveX-объектов, которые будут отображаться на Рабочем столе, в папках Панель управления и Мой компьютер, применяются следующие ветви реестра.

■ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace — определяет те из ActiveX-объектов, которые будут отображаться на Рабочем столе. Раздел NameSpace содержит набор дочерних подразделов, названных в честь CLSID-номера ActiveX-объекта, который должен отображаться на Рабочем столе. Например, чтобы отобразить на Рабочем столе значок, вызывающий диалог Запуск программы, необходимо создать в данном разделе подраздел {2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}. Результат можно видеть на рис. 5.3.

Рис. 5.3. Отображение на Рабочем столе значка Запуск программы


Раздел Name Space можно создать в аналогичной ветви корневого раздела HKEY_LOCAL_MACHINE. В этом случае ActiveX-объект будет отображаться на Рабочем столе всех пользователей компьютера, а не только данного пользователя.

ВНИМАНИЕ

Данная ветвь реестра, кроме значков ActiveX-объектов, которые будут отображаться на Рабочем столе, включает в себя еще и определение CLSID-номера {1f4de370-d627-11d1-ba4f-00a0c91eedba}. He удаляйте определение этого номера, так как оно необходимо для корректной работы с функцией поиска и его удаление сделает невозможным использование диалога, вызываемого комбинацией клавиш Windows+F.

■ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\HideDesktopIcons — если предыдущая ветвь реестра определяла те из значков ActiveX-объектов, которые будут отображаться на Рабочем столе, то эта ветвь устанавливает совершенно противоположную возможность — она указывает на те ActiveX-объекты, которые не будут отображаться на Рабочем столе. При этом можно указать отдельные наборы скрываемых значков в зависимости от типа меню Пуск, используемого в данный момент, ведь данная ветвь хранит два дочерних раздела — ClassicStartMenu и NewStartPanel. Если вы определите CLSID-номера в разделе ClassicStartMenu, то данные значки ActiveX-объектов не будут отображаться на Рабочем столе при использовании классического меню Пуск. Если же вы определите CLSID-номера в разделе NewStartPanel, то данные значки ActiveX-объектов не будут отображаться на Рабочем столе при использовании нового меню Пуск.

Чтобы определить CLSID-номер скрываемого ActiveX-объекта, достаточно в необходимом разделе создать параметр DWORD-типа, названный в честь этого CLSID-номера. Значение параметра должно быть равно 1 (если значение равно 0, то значок ActiveX-объекта будет отображаться). Например, чтобы скрыть значок диалога Запуск программы, который был недавно добавлен, необходимо создать в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu (если используется классическое меню Пуск) параметр DWORD-типа {2559a1f3-21d7-11d4-bdaf-00c04f60b9f0}, значение которого должно быть равно 1.

Данную ветвь можно использовать и в корневом разделе HKEY_LOCAL_MACHINE.

ПРИМЕЧАНИЕ

Существует один интересный CLSID-номер ActiveX-объекта, описания которого вы не встретите в ветви реестра HKEY_CLASSES_ROOT\CLSID. Это CLSID-номер {00000000-0000-0000-0000-000000000000}. Если запретить отображение данного CLSID-номера на Рабочем столе с помощью вышеописанной ветви реестра, то после перезагрузки оболочки на Рабочем столе останутся только значки Корзина и Мой компьютер — остальные ActiveX-объекты, папки и файлы Рабочего стола будут скрыты.

■ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace — определяет список CLSID-номеров ActiveX-объектов, которые будут отображаться в папке Мой компьютер. Формат данной ветви полностью аналогичен формату описанной выше ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace. Если использовать такую ветвь реестра, расположенную в корневом разделе HKEY_LOCAL_MACHINE, то определяемый ею значок будет отображен для всех пользователей системы.

ПРИМЕЧАНИЕ

Но между приведенными ветвями реестра для различных корневых разделов существует небольшое отличие — ветвь реестра из корневого раздела HKEY_LOCAL_MACHINE также может хранить раздел DelegateFolders, содержимым которого является подраздел {59031a47-3f7244a7-89c5-5595fe6b30ee}. Этот подраздел определяет общие папки, отображаемые в папке Мой компьютер, и если удалить или просто переименовать раздел DelegateFolders, то общие папки в папке Мой компьютер отображаться не будут.

Например, можно попробовать самостоятельно добавить в папку Мой компьютер значок ActiveX-объекта. На этот раз нужно создать свой собственный ActiveX-объект.

Как уже говорилось ранее, для создания уникального CLSID-номера ActiveX-объекта применяется программа guidgen.exe, входящая в стандартную поставку таких компиляторов, как Microsoft Visual Studio .NET, а также Microsoft Visual C++. После запуска данной программы перед вами появится диалог, в котором требуется определить, какой именно уникальный идентификатор нужно создать. Чтобы создать CLSID-номер, необходимо установить переключатель 4. Registry Format. После выбора типа уникального идентификатора нужно выбрать сам созданный идентификатор — нажимайте кнопку Next GUID до тех пор, пока программа не создаст идентификатор, который вам понравится. После этого достаточно нажать кнопку Сору, чтобы поместить этот идентификатор в буфер обмена.

Все, уникальный CLSID-номер у вас уже есть. Например, таким номером является {23D0F57C-5E2C-4fb2-BE50-B27DBD7EFB76}, созданный с помощью программы guidgen.exe. После создания CLSID-номера нужно зарегистрировать его в системе. Для этого используется ветвь системного реестра HKEY_CLASSES_ROOT\CLSID, формат содержимого которой был описан в предыдущей главе. Создайте в этой ветви дочерний раздел, названный в честь CLSID-номера, созданного программой guidgen. Теперь необходимо назвать значок ActiveX-объекта — для этого используется параметр (По умолчанию) созданного раздела. После этого нужно зарегистрировать для созданного ActiveX-объекта значок, с этой целью применяется параметр DefaultIcon дочернего раздела ветви созданного CLSID-номера. После создания значка нужно скрыть все стандартные команды его контекстного меню — для этого присвойте DWORD-параметру Attributes значение 0. Он должен находиться в разделе ShellFolder ветви созданного CLSID-номера. И наконец, можно создавать содержимое пользовательского контекстного меню — для этого используется раздел shell ветви CLSID-номера. Создайте в нем необходимые глаголы, а в них — подраздел command, параметр (По умолчанию) которого и будет определять команду, вызываемую при выборе из контекстного меню вашего значка соответствующего действия.

Теперь у вас есть не только уникальный CLSID-номер, но и свой собственный ActiveX-объект. Осталось только создать подраздел {23D0F57C-5E2C-4fb2-BE50-B27DBD7EFB76} в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace и смотреть на то, что получилось (рис. 5.4).

Рис. 5.4. Создание своего ActiveX-объекта и расположение его в папке Мой компьютер


■ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\HideMyComputerIcons — скрывает значки из папки Мой компьютер. Ее формат аналогичен формату уже описанной ветви системного реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\ Explorer\HideDesktopIcons, поэтому рассматривать ее мы не будем. Эту ветвь можно использовать и в корневом разделе HKEY_LOCAL_MACHINE.

Например, чтобы скрыть только что созданный значок ActiveX-объекта из паки Мой компьютер, необходимо создать DWORD-параметр {23D0F57C-5E2C-4fb2-BE50-B27DBD7EFB76} и присвоить ему значение, равное 1. Создавать его нужно в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideMyComputerIcons.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace — содержит ссылки на те ActiveX-объекты, значки которых будут отображаться в папке Панель управления. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX-объектов.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\NetworkNeighborhood\NameSpace — определяет те ActiveX-объекты, значки которых будут отображаться в папке Сетевое окружение. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX-объектов.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\RemoteComputer\NameSpace — определяет те ActiveX-объекты, значки которых будут отображаться в папке Удаленные компьютеры. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX-объектов.

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

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\NonEnum — раздел более категоричен, чем все рассмотренные ранее, — он определяет те из ActiveX-объектов, которые вообще не будут отображаться в оболочке пользователей (или конкретного пользователя, если применяется ветвь из корневого раздела HKEY_CURRENT_USER). Все ActiveX-объекты, описанные в этой ветви, не будут применяться при построении пользовательского интерфейса.

Чтобы запретить использование какого-либо ActiveX-объекта, достаточно создать в данной ветви реестра параметр DWORD-типа, названный в честь CLSID-номера скрываемого ActiveX-объекта, и присвоить ему значение, равное 1.

Хотелось бы сказать еще об одной недокументированной возможности скрытия ActiveX-объекта из всех мест оболочки, где он используется, — о параметре Attributes, находящемся в подразделе ShellFolder раздела скрываемого нами ActiveX-объекта. Содержимое данного параметра уже было описано в предыдущей главе, но не упоминалось об этой возможности.

Итак, чтобы скрыть значок ActiveX-объекта, достаточно его параметру Attributes присвоить битовую маску 0x00100000.

Скрытие CPL-файлов

Кроме скрытия ActiveX-объектов, существует еще и возможность скрытия CPL-файлов из содержимого окна Панель управления. Для этого могут применяться две стандартные ветви реестра Windows, первой из которых является ветвь реестра HKEY_CURRENT_USER\Control Panel\don't load. Она может хранить список параметров строкового типа, названных в честь CPL-файлов, значения которых не важны. Все CPL-файлы, чьи имена описаны в качестве параметров ветви HKEY_CURRENT_USER\Control Panel\don't load, не будут отображаться в Панели управления. Например, чтобы скрыть апплет Мышь, необходимо в данной ветви реестра создать параметр строкового типа main.cpl (будет также скрыт апплет Клавиатура).

Предыдущая ветвь имеет один существенный недостаток применения — пользователь может удалить все созданные вами параметры. Если же вы не хотите, чтобы он мог это сделать, то нужно запретить полный доступ к данной ветви реестра, оставив только доступ на чтение. Можно просто воспользоваться другой ветвью реестра — HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Control Panel\don't load. Она имеет такой же формат, что и предыдущая ветвь, но скрывает апплеты Панели управления для всех пользователей системы.

Другие возможности

Теперь рассмотрим другие возможности реестра, которые можно использовать в своей системе.

■ Чтобы при создании ярлыка файла к его названию не добавлялся префикс Ярлык для, необходимо присвоить параметру REG_BINARY-типа link значение 0. Он расположен в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer (можно также использовать корневой раздел HKEY_LOCAL_MACHINE).

■ Еще одной возможностью, которую предоставляет пользователю Windows, является определение области вокруг значка, в пределе которой его перемещение не будет считаться перемещением как таковым — значок вернется на свое прежнее место (довольно часто при быстром двойном щелчке на значке можно его случайно переместить, что может испортить весь стиль оформления Рабочего стола). Для этого используются два параметра строкового типа, расположенных в ветви реестра HKEY_CURRENT_USER\Control Panel\Desktop. Первый из этих параметров называется DragHeight и определяет расстояние в пикселах, в пределах которого перемещение значка или окна по вертикали не приводит к перетаскиванию. Например, если значение этого параметра равно 35, то при перемещении значка на 35 пикселов вверх/вниз он останется на своем прежнем месте. Второй параметр называется DragWidth — определяет расстояние в пикселах, в пределах которого перемещение значка или окна по горизонтали не приводит к перетаскиванию.

Проводник

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

Оформление

В стандартной поставке операционная система Windows имеет довольно строгий стиль оформления. Это можно заметить уже при первом взгляде на панель инструментов и меню окон Проводника. Уже стало стандартом то, как данные элементы окна выглядят, и кажется, что любой другой стиль оформления данных элементов будет неправильным и излишним. Но так ли это? Попробуйте изменить элементы оформления окна, а через некоторое время решите, оставить ли эти изменения в системе. Для себя автор данной книги уже решил — обязательно оставить, так как с некоторых пор стандартный стиль оформления окон ему кажется просто ужасным.

Итак, что же можно изменить? Всем известен трюк с изменением фона панели инструментов. Для его реализации понадобится один параметр строкового типа и одна ветвь реестра. Возьмем ветвь реестра HKEY_CURRENT_USER\Software\Microsoft\ Internet Explorer\Toolbar. Чтобы изменить рисунок фона панели инструментов для Проводника, достаточно создать в этой ветви строковый параметр BackBitmapShell и присвоить ему путь к файлу рисунка, который будет использоваться для отображения в качестве фона.

Теперь, если стандартный логотип Microsoft не подходит по цвету или стилевому оформлению к только что измененной панели инструментов, можно изменить и его. Для этого используется та же ветвь реестра, что и при изменении фона панели инструментов, — HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar. Но теперь вам понадобятся сразу два строковых параметра — один для указания пути к файлу рисунка, используемого для отображения логотипа Microsoft при обычном виде Проводника, а второй — для указания пути к файлу рисунка, используемого при полноэкранном виде Проводника (после нажатия клавиши F11). Первым из этих параметров является параметр строкового типа SHBigBitMap. Вторым — параметр строкового типа SHSmallBitMap.

ВНИМАНИЕ

Кроме того, нужно изменить значения параметров строкового типа BrandBitMap, а также SmBrandBitMap, которые расположены в той же ветви реестра, что и описываемые параметры. Пока что просто присвойте им те же значения, что и параметрам SHSmallBitMap и SHBigBitMap — о них будет рассказано позже. Если не изменить значения параметров BrandBitMap и SmBrandBitMap, то изменить логотип Проводника не получится.

На рис. 5.5 можно увидеть, что получилось.

Рис. 5.5. Изменение логотипа и фона панели инструментов


ПРИМЕЧАНИЕ

Еще одной возможностью, которую позволяет выполнить оболочка, является уменьшение значка логотипа. Для этого применяется DWORD-параметр BrandHeight, расположенный в указанной ветви реестра. Если его значение равно 50 или меньше, то будет использоваться стандартный размер логотипа, а если значение от 60 до 800, то уменьшенный.

Операционная система Windows позволяет выполнить еще один хакинг — увеличение высоты панели инструментов. Для этого опять-таки применяется ветвь реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar. Чтобы увеличить высоту панели инструментов, достаточно создать в этой ветви реестра DWORD-параметр SmBrandHeight и присвоить ему значение, равное количеству пикселов, на которое вы хотели бы увеличить панель инструментов. Например, на рис. 5.6 можно увидеть то же изображение, что и на рис. 5.5, но с использованием параметра SmBrandHeight, значение которого равно 50.

Рис. 5.6. Увеличение размера панели инструментов

Стандартные папки Windows

Еще одной возможностью, которая вам может быть интересна, является изменение путей к стандартным папкам Windows, таким как Мои документы, Избранное, Моя музыка, Program Files и т.д. Для реализации этой возможности используется несколько ветвей реестра, но большая часть параметров, определяющих пути к папкам, без сомнения, находится в ветви реестра HKEY_CURRENT_USER\Software\ Microsoft\Windows\CurrentVersion\Explorer\Shell Folders. Вот именно с содержимого данной ветви нужно начинать (все параметры этой ветви имеют тип REG_SZ).

ПРИМЕЧАНИЕ

В реестре Windows существует ветвь HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders, определяющая путь к папкам, применяемым всеми пользователями, а не конкретным.

■ Administrative Tools — определяет путь к папке Администрирование, содержимое которой используется для построения одноименной ветви меню Пуск.

■ AltStartup — хранит путь к папке, содержимое которой будет запускаться при входе пользователя в систему. Разница между данным параметром реестра и параметром Startup состоит в том, что ссылки из каталога, определяемого параметром AltStartup, не отображаются на вкладке Автозагрузка программы msconfig.exe.

■ AppData — определяет расположение каталога Application Data, который используется различными приложениями для хранения своих данных.

■ Cache — указывает путь к папке Temporary Internet Files, используемой браузером Internet Explorer для хранения частей загружаемых документов.

■ CD Burning — определяет путь к папке, используемой стандартной программой записи компакт-дисков для хранения самих компакт-дисков и необходимой информации (каталог CD Burning, содержащийся в подкаталоге Microsoft каталога Application Data).

■ Cookies — хранит путь к папке Cookies, используемой браузером Internet Explorer.

■ Desktop — определяет путь к папке Рабочий стол, содержащей все файлы, которые расположены на Рабочем столе текущего пользователя.

■ Favorites — указывает путь к папке Избранное, используемой Internet Explorer для хранения ссылок на избранные страницы пользователя.

■ Fonts — определяет путь к папке Шрифты, содержащей все шрифты, установленные на компьютере. Доступ к данной папке можно также получить с помощью ActiveX-объекта {D20EA4E1-3957-11d2-A40B-0C5020524152}.

■ History — хранит путь к папке History, содержимое которой используется для формирования журнала всех сайтов, которые посещались пользователем в те чение последних двух недель.

■ Local AppData — содержит тот же путь, что и параметр AppData.

■ Local Settings — указывает путь к папке Local Settings, содержимым которой являются папки, определяемые параметрами AppData, History, Cache.

■ My Music — определяет путь к папке, которая будет использоваться такими программами, как, например, Проигрыватель Windows Media, для копирования в них музыкальных файлов.

■ My Pictures — хранит путь к папке Мои рисунки.

■ My Video — определяет путь к папке Мое видео.

■ NetHood — указывает путь к папке NetHood, содержащей ссылки на сетевые папки, к которым вы получали доступ в последнее время.

■ PrintHood — определяет путь к папке PrintHood, содержащей ссылки на сетевые принтеры, к которым вы получали доступ в последнее время.

■ Personal — хранит путь к папке Мои документы. Конечно, местоположение папки Мои документы можно определить и с помощью диалога Свойства, но посредством данного параметра можно, например, указать логический диск в качестве папки Мои документы.

■ Programs — определяет путь к папке Программы, содержимое которой используется для построения ветви Программы меню Пуск. Данную папку можно также вызвать с помощью ActiveX-объекта {7be9d83c-a729-4d97-b5a7-1b7313c39e0a}. При этом вы сможете просмотреть не только программы меню Пуск, отображаемые для вашей учетной записи, но и программы, отображаемые для всех учетных записей.

■ Recent — хранит путь к папке Recent, содержащей ссылки на все файлы и папки, к которым вы получали доступ в последнее время.

■ SendTo — определяет путь к папке SendTo, содержимое которой используется для построения списка Отправить контекстного меню файлов и папок.

■ Start Menu — указывает путь к папке Главное меню, содержимое которой отображается в виде разделов меню Пуск.

■ Startup — хранит путь к папке Автозагрузка, содержимое которой используется для построения соответствующей ветви меню Пуск. В отличие от папки, определяемой параметром AltStartup, содержимое этой папки можно просмотреть с помощью вкладки Автозагрузка программы msconfig.exe.

■ Templates — определяет путь к папке Templates. Содержимое именно этой папки определяет те файлы шаблонов, которые будут создаваться после выбора соответствующей команды из списка Создать диалога контекстного меню Рабочего стола или Проводника, если для создания файла используется параметр реестра FileName (он содержится в корневом разделе HKEY_CLASSES_ROOT и описывался в предыдущей главе).

ПРИМЕЧАНИЕ

Если вы хотите удалить какой-нибудь параметр из приведенной выше ветви реестра, то необходимо будет удалить его также из ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders, иначе через некоторое время он будет создан заново. Следует также учитывать, что лучше не удалять полностью параметры приведенной ветви реестра — лучше просто удалить их значения.

Другой ветвью, которая содержит некоторые пути к стандартным папкам Windows, является ветвь реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. Для описания пути к таким папкам используются следующие параметры.

■ WallPaperDir — определяет путь к папке, содержимое которой используется при построении списка Фоновый рисунок вкладки Рабочий стол диалога Свойства: Экран. Он является параметром REG_EXPAND_SZ-типа.

■ SM_GamesName — этот параметр строкового типа указывает название папки, содержимое которой будет использоваться при построении соответствующего списка меню Пуск (по умолчанию списка Игры). В дальнейшем именно к этой папке будут обращаться программы при попытке записи в список Игры новых элементов.

■ SM_AccessoriesName — параметр строкового типа, определяет название папки, содержимое которой будет использоваться при построении соответствующего списка меню Пуск (по умолчанию списка Стандартные). В дальнейшем именно к этой папке будут обращаться программы при попытке записи в список Стандартные новых элементов.

Некоторые пути к стандартным каталогам можно встретить в ветви реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup.

■ DriverCachePath — определяет путь к папке Driver Cache, используемой для хранения резервных копий всех системных библиотек и программ операционной системы Windows. Если вы пользуетесь несколькими операционными системами Windows XP, то можно в каждой из них указать путь к общей папке, в которой будут храниться все резервные копии библиотек, используемых всеми операционными системами Windows XP.

■ SourcePath — хранит путь к папке, содержащей установочные файлы текущей операционной системы. По умолчанию он определяет букву дисковода, с которого вы устанавливали операционную систему, и именно к этому дисководу система обращается, когда ей необходимо установить дополнительные компоненты. Если дистрибутив вашей операционной системы хранится у вас на жестком диске, то в этом параметре можно описать путь к нему (в этом случае нужно будет присвоить DWORD-параметру CDInstall данной ветви реестра значение, равное 0). Теперь при необходимости установки дополнительных компонентов Windows будет всегда обращаться к папке дистрибутива на вашем жестком диске, не мучая вас просьбой вставить диск дистрибутива в привод компакт-дисков.

■ ServicePackSourcePath — определяет путь к папке, которая содержит файлы установленного на вашем компьютере пакета обновлений. Именно к этой папке Windows обращается, если ей необходимо заново установить файлы пакета обновлений (например, если оригинальные версии файлов изменены или удалены).

Конфигурация

Теперь рассмотрим несколько параметров строкового типа, предназначенных для настройки конфигурации Проводника.

■ MenuShowDelay — определяет задержку перед отображением меню, которую оболочка будет ожидать. Он расположен в ветви реестра HKEY_CURRENT_USER\Control Panel\Desktop. По умолчанию его значение равно 400.

■ BrowseNewProcess — определяет, будет ли открываться каждое окно Проводника и браузера Internet Explorer в виде отдельного процесса или все они будут открываться как часть одного процесса. Если значение этого параметра равно YES, то каждое окно Проводника и браузера Internet Explorer будет открываться как отдельный процесс. Плюсом этого метода можно считать большую стабильность — если возникнет ошибка в работе одного окна Проводника, то оно закроется, но остальные окна останутся рабочими. Если же значение равно NO, то все окна Проводника и браузера Internet Explorer будут открываться как часть оболочки. Этот метод имеет как минусы, так и плюсы. К минусам можно отнести невысокую стабильность работы системы по сравнению с предыдущим методом — если возникнет ошибка в одном из окон Проводника или браузера, то будут закрыты все открытые окна и начнется перезагрузка самой оболочки Windows. К плюсам же можно причислить меньший размер занимаемой оперативной памяти при открытии нескольких окон, а также более быстрое открытие каждого нового окна Проводника или браузера.

Параметр расположен в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\BrowseNewProcess.

Диалоги

Еще одной возможностью, которую предоставляет пользователям Windows, является редактирование различных списков стандартных диалогов операционной системы, а также скрытие некоторых вкладок диалогов без использования групповых политик и консоли управления безопасностью. Например, операционная система позволяет редактировать содержимое списка Дополнительные параметры на вкладке Вид диалога Свойства папки или содержимое списка Параметры на вкладке Дополнительно диалога Свойства: Интернет.

Содержимое списков

Для формирования содержимого некоторых списков стандартных диалогов Windows используется ряд стандартных параметров (о ветвях, используемых для формирования списков стандартных диалогов, будет рассказано чуть позже). Эти параметры создаются в дочерних папках ветвей (одна папка — один элемент списка), формирующих конкретные списки диалогов.

■ Text — этот параметр строкового типа определяет текст надписи, отображаемой в соответствующем списке диалога. Надпись находится напротив подкаталога или флажка, который она идентифицирует.

■ HKeyRoot — параметр DWORD-типа, указывает корневой раздел реестра, в котором находится параметр, изменяющийся при смене состояния соответствующе

го флажка или переключателя. Параметр может принимать следующие значения:

• 0x80000000 — находится в корневом разделе HKEY_CLASSES_ROOT;

• 0x80000001 — хранится в корневом разделе HKEY_CURRENT_USER;

• 0x80000002 — находится в корневом разделе HKEY_LOCAL_MACHINE;

• 0x80000003 — хранится в корневом разделе HKEY_USERS.

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

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

■ DefaultValue — определяет значение по умолчанию изменяемого описываемым элементом списка параметра. Это значение используется в том случае, когда в указанной ветви реестра не существует параметр, значение которого изменяется данным элементом списка. Тип параметра DefaultValue зависит от типа изменяемого данным элементом списка параметра. Например, если изменяемый параметра имеет тип REG_SZ, то и параметр DefaultValue будет иметь тип REG_SZ.

■ CheckedValue — хранит значение, которое будет присвоено изменяемому параметру после установки соответствующего флажка или переключателя и нажатия кнопки Применить. Тип параметра CheckedValue, так же как и в предыдущем случае, зависит от типа параметра, изменяемого данным элементом списка.

■ UncheckedValue — если предыдущий параметр определял значение изменяемого параметра при установке флажка или переключателя, то UncheckedValue определяет значение изменяемого параметра при снятом флажке (естественно, что при создании переключателя этот параметр не используется, так как переключатель не может быть снятым). Тип параметра UncheckedValue, так же как и тип двух предыдущих параметров, зависит от типа параметра, изменяемого данным элементом списка.

■ Bitmap — этот параметр строкового типа определяет путь к файлу рисунка, используемого для отображения подпапки в списке. К сожалению, нет никакой возможности изменить рисунок флажка или переключателя с помощью данного параметра.

■ Mask — если в разделе, определяющем соответствующий элемент списка, присутствует этот параметр DWORD-типа, то изменяемый параметр является битовой маской и система должна не переписать параметр заново, а просто изменить один из его битов — именно битовая маска этого бита и указывается в данном параметре.

■ Туре — этот параметр строкового типа определяет, какой именно элемент списка будет создан. Если значение этого параметра равно group, то будет создана подпапка. Если значение равно checkbox, то будет создан флажок, а если значение равно radio, то в списке появится переключатель.

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

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced — определяет содержимое списка Дополнительные параметры вкладки Вид диалога Свойства папки.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VisualEffects — хранит содержимое списка Особые эффекты, отображаемого на вкладке Визуальные эффекты диалога Параметры быстродействия. Чтобы отобразить этот диалог, необходимо нажать кнопку Параметры, расположенную на вкладке Дополнительно диалога Свойства системы.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AdvancedOptions — определяет содержимое списка Параметры вкладки Дополнительно диалога Свойства: Интернет.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartMenu — хранит содержимое списка Дополнительные параметры меню "Пуск" диалога Настройки классического меню "Пуск". Чтобы вызвать данный диалог, необходимо нажать кнопку Настроить, расположенную напротив переключателя Классическое меню "Пуск" на вкладке Меню "Пуск" диалога Свойства панели задач и меню "Пуск".

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\StartMenu\StartPanel — определяет содержимое списка Элементы меню "Пуск", расположенного на вкладке Дополнительно диалога Настройка меню "Пуск". Чтобы вызвать данный диалог, необходимо нажать кнопку Настроить, расположенную напротив переключателя Меню "Пуск" на вкладке Меню "Пуск" диалога Свойства панели задач и меню "Пуск".

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\SO — хранит содержимое списка Параметры диалога Параметры безопасности. Этот диалог можно вызвать с помощью нажатия кнопки Другой на вкладке Безопасность диалога Свойства: Интернет браузера Internet Explorer. Аналогичные настройки можно встретить в ветви системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\SOIEAK.

Например, можно добавить свой элемент списка в один из диалогов, чтобы больше не искать его в реестре при необходимости модификации (рис. 5.7).

Рис. 5.7. Добавление своих элементов списка диалогового окна

Скрытие вкладок и других элементов диалогового окна

Теперь поговорим о параметрах реестра Windows, предназначенных для скрытия различных вкладок стандартных диалогов. В данном разделе книги не будут упоминаться параметры, используемые консолью mmc.exe, — этому посвящена отдельная глава книги. Сейчас же будут рассмотрены параметры, используемые самой операционной системой, хотя их не так уж и много.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\DateTime — содержит сведения о серверах, используемых для синхронизации системных часов с указанным сервером времени. Но, кроме этого, она может хранить DWORD-параметр Support Internet Time. Если его значение равно 0, то из диалога Дата и время исчезнет вкладка Время Интернета, которая применяется для настройки синхронизации системного времени с сервером Интернета.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig — определяет настройки стандартной программы msconfig. Одним из параметров этой ветви может быть DWORD-параметр boot.ini. Если он действительно содержится в приведенной ветви реестра, то из программы msconfig.exe исчезнет вкладка BOOT.INI, предназначенная для облегчения создания данного файла в мультизагрузочных системах.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\«название программы» — хранит всю информацию, необходимую для построения элемента списка апплета Установка и удаление программ, определяемого разделом «название программы». Но здесь не будут перечислены те параметры реестра, которые могут находиться в приведенной выше ветви. Намного интереснее рассмотреть несколько параметров данной ветви, с помощью которых можно заблокировать те или иные кнопки для соответствующего элемента списка.

• NoRemove — параметр DWORD-типа определяет, будет ли для соответствующей программы в списке апплета Установка и удаление программ отображаться кнопка Удалить. Если значение данного параметра равно 1, то для элемента списка, определяющего программу, кнопка Удалить отображаться не будет.

• NoModify — этот параметр DWORD-типа определяет, будет ли для соответствующей программы в списке апплета Установка и удаление программ отображаться кнопка Изменить. Если значение данного параметра равно 1, то для элемента списка, определяющего программу, кнопка Изменить отображаться не будет.

• NoRepair — данный параметр DWORD-типа определяет, будет ли для соответствующей программы в списке апплета Установка и удаление программотображаться кнопка Восстановить. Если значение данного параметра равно 1, то для элемента списка, определяющего программу, кнопка Восстановить отображаться не будет.

ВНИМАНИЕ

Несмотря на то, что кнопка Удалить скрыта из диалога Установка и удаление программ, программу по-прежнему можно будет удалить с помощью команды rundll32.exe appwiz.cpl, WOW64Uninstall_RunDLL , , , «название раздела программы в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall».

Другие возможности

Здесь будут рассмотрены другие параметры операционной системы Windows XP, которые не используются для настройки конфигурации значков или окон Windows, но тем не менее могут быть вам интересны.

■ HKEY_CURRENT_USER\Control Panel\Desktop — довольно интересной возможностью, которую позволяет выполнить операционная система Windows XP, является вывод сведений о версии Windows XP в правом нижнем углу экрана Рабочего стола. Для ее реализации достаточно присвоить DWORD-параметру PaintDesktopVersion значение, равное 1 (рис. 5.8).

Другой возможностью, которую предоставляет пользователям операционная система Windows, является вывод обоев Windows, начиная с определенной точки экрана. Для этого используются два параметра строкового типа WallpaperOriginX и WallpaperOriginY. Первый из них определяет смещение левой стороны рисунка обоев от левой стороны экрана. Второй же параметр определяет смещение верхней стороны рисунка обоев от верхней стороны экрана.

Рис. 5.8. Отображение версии Windows в правом нижнем углу экрана


С помощью данной ветви реестра можно проделать другой трюк — изменение количества строк и столбцов в выводимом после нажатия комбинации клавиш Alt+Tab диалоге. Для этого применяются два параметра строкового типа CoolSwitchRows и CoolSwitchColumns. Первый из них определяет количество строк в диалоге, а второй — количество столбцов. Например, на рис. 5.9 можно увидеть результат присвоения этим параметрам значений 3 и 3 (чтобы изменения вступили в силу, необходима перезагрузка компьютера или выход из системы — обычный перезапуск оболочки Windows не поможет).


Рис. 5.9. Изменение количества строк и столбцов диалога


■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey — содержит команды, которые будут выполняться при нажатии дополнительных клавиш клавиатуры, таких, например, как My Computer, Calculator, E-mail, Stop и т.д. Не секрет, что не всегда функциональная возможность данных клавиш может быть необходима, например, если у вас нет доступа к Интернету, зачем вам такие клавиши быстрого доступа, как Refresh, Forward, Back, Home? Поэтому предлагаю переопределить команды, вызываемые соответствующими клавишами, чтобы они вызывали вашу любимую игру или программу.

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

Структура ветви реестра рассмотрена. Осталось только определить идентификаторы клавиш и названия самих клавиш, которые им соответствуют:

• 1 — Back (определяет кнопку Назад в окне браузера);

• 2 — Forward (указывает кнопку Вперед в окне браузера);

• 3 — Refresh (определяет кнопку Обновить в окне браузера);

• 4 — Stop (указывает кнопку Стоп в окне браузера);

• 5 — Search (аналогична комбинации клавиш Windows+F);

• 6 — Favorites (определяет кнопку Избранное в окне браузера);

• 7 — Home (указывает кнопку Домой в окне браузера);

• 8 — Mute (отключает звук в проигрывателе, назначение данной клавиши переопределить нельзя);

• 15 — E-mail (аналогична вызову программы Outlook Express);

• 16 — Media (аналогична вызову программы, ассоциированной с расширением CDA (по умолчанию Проигрыватель Windows Media));

• 17 — My Computer (аналогична вызову окна Мой компьютер);

• 18 — Calculator (аналогична вызову программы calc.exe).

Например, чтобы присвоить дополнительной клавише Back команду, открывающую вашу папку с играми, допустим D:\Games, нужно присвоить параметру ShellExecute, расположенному в ветви реестра HKEY_LOCAL_MACHINE\ SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey\1, значение, равное explorer /root, d:\games.

ПРИМЕЧАНИЕ

После изменения команд некоторых функциональных клавиш у них появляется двойной набор команд. Чтобы показать это на примере, достаточно изменить команду клавиши, открывающей программу Outlook Express. Теперь если вы нажмете эту клавишу при установке фокуса на окне какой-либо папки, то по-прежнему откроется окно Outlook Express. Но если вы нажмете клавишу, когда фокус установлен на Рабочем столе или окне другой программы, то выполнится та команда, которую вы заложили в эту клавишу с помощью ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Explorer\AppKey.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppPaths — определяет все те команды, которые вы вводите в диалоге Запуск программы, чтобы открыть необходимую программу, расположенную в каталогах, отличных от %systemroot%\system32 и %systemroot%. Например, если у вас на компьютере установлен графический пакет Adobe Photoshop, то для его вызова из диалога Запуск программы вы используете команду Photoshop. И, несмотря на то, что, скорее всего, данный пакет установлен в одном из разделов ветви %programfiles%, команда Photoshop все равно открывает его окно.

Такой феномен возможен лишь потому, что в приведенной выше ветви реестра существует раздел, имеющий название photoshop.exe (все разделы приведенной ветви реестра должны оканчиваться расширением EXE, иначе определяемые ими псевдонимы команд работать не будут). В этом разделе существует параметр (По умолчанию), хранящий путь к программе, которая будет запускаться после ввода соответствующего ей псевдонима в диалоге Запуск программы.

Что вам дает знание данной ветви реестра? Ну, если пофантазировать, то можно изменить название раздела photoshop.exe на, допустим, ph.exe. Теперь вы сможете вызвать программу Photoshop вводом всего двух символов.

Можно создать свой собственный псевдоним для любимой программы. Для этого нужно просто создать новый раздел с любым названием (не забывайте, что раздел должен оканчиваться расширением EXE) в ветви системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\ App Paths. После этого в параметре (По умолчанию) созданного раздела нужно определить путь к своей любимой программе.

ПРИМЕЧАНИЕ

Некоторые программы, кроме создания псевдонима, могут содержать в приведенной выше ветви реестра и другие параметры. Например, в ветви системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\AppPaths\setup.exe (принадлежит программе установки других приложений) может находиться DWORD-параметр RunAsOnNonAdminInstall. Если его значение равно 1, то при каждом запуске программы Setup.exe для установки какой-нибудь программы пользователем, не имеющим на это привилегий, будет выводиться диалог Запуск от имени, в котором можно зарегистрироваться под учетной записью, имеющей права на установку программ в системе.

Точно такой же параметр может храниться в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\winnt32.exe, а также в ветви HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\install.exe.

Есть и еще один общий для всех разделов параметр строкового типа — RunAsCommand. Если он присутствует в разделе и его значение равно, допустим, 0, то ни один пользователь не сможет запустить программу, определяемую данным псевдонимом. Имеется в виду, что не сможет запустить не только из диалога Запуск программы, но и с помощью ярлыков или самого файла программы (можно только с помощью консоли cmd.exe).

■ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced — может содержать один интересный параметр DWORD-типа, который называется NewDragImages. Он может принимать значения 0 или 1. В зависимости от используемого значения вы сможете увидеть одно из изображений, приведенных на рис. 5.10 (рисунок слева создан при копировании пункта меню Пуск на Рабочий стол с использованием значения параметра, равного 1, а рисунок справа создан при использовании значения, равного 0).

Рис. 5.10. Изменение способа отображения копируемого файла


■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer — мы с вами уже рассматривали содержимое раздела NameSpace этой ветви реестра, но, кроме него, ветвь корневого раздела HKEY_LOCAL_MACHINE имеет еще три раздела: BackupPath, cleanuppath и DefragPath. Все эти ветви включают в себя параметр (По умолчанию), значение которого определяет команду, выполняющуюся при нажатии той или иной кнопки на вкладке Сервис диалога Свойства: Диск (параметр первого раздела определяет команду кнопки Выполнить архивацию, второго — Выполнить проверку, а третьего — Выполнить очистку).

Например, если присвоить параметру (По умолчанию) раздела BackupPath значение, допустим, cmd.exe, то после нажатия кнопки Выполнить архивацию перед вами отобразится командный процессор cmd.exe. Конечно, пример с программой cmd.exe не совсем удачен, но если вы используете для перечисленных выше действий программы сторонних производителей, то именно их вызов можно присвоить параметрам (По умолчанию) разделов BackupPath, cleanuppath и DefragPath.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FindExtensions\Static — определяет содержимое пункта Найти меню Пуск. Оно строится в следующем формате: сначала идет набор разделов, каждый из которых определяет одну команду меню Пуск. Например, в приведенной ветви реестра могут находиться следующие разделы:

• ShellSearch — определяет команду Файлы и папки пункта Найти меню Пуск;

• WabFind — задает команду Людей пункта Найти меню Пуск;

• WebSearch — определяет команду В Интернете пункта Найти меню Пуск.

Параметр (По умолчанию) каждого из этих разделов определяет ActiveX-объект, который обрабатывает выбор соответствующей команды из пункта Найти меню Пуск. Кроме этого параметра, разделы могут содержать другие разделы, названия которых определяются в формате 0, 1, 2, 3. Параметр (По умолчанию) каждого из этих разделов определяет соответствующую строку названия (если в разделе не существует параметра строкового типа LocalizedString, значение которого, как известно, всегда переопределяет параметр (По умолчанию)). При этом только значение параметра (По умолчанию) раздела 0 может отображаться в качестве названия команды пункта Найти меню Пуск. Каждый из разделов 0, 1, 2…, в свою очередь, должен содержать подраздел, который называется DefaultIcon. Параметр (По умолчанию) этого подраздела определяет значок, отображаемый напротив названия команды пункта Найти меню Пуск.

Зачем же все это нужно? Во-первых, для того, чтобы удалить ненужные команды пункта Найти меню Пуск. Во-вторых, что уже интересней, чтобы добавить свои команды к данному меню. Например, попробуйте добавить к данному меню команду вызова апплета Установка и удаление программ. Для этого нужно создать раздел с любым именем в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FindExtensions\Static и его параметру (По умолчанию) присвоить значение {2559A1F7-21D7-11D4-BDAF-00C04F60B9F0}. После этого нужно создать дочерний раздел 0 и его параметру (По умолчанию) присвоить строку названия, например незамысловатое Установка и удаление программ. И наконец, в параметре (По умолчанию) подраздела DefaultIcon, который должен быть создан в дочернем разделе, нужно определить путь к файлу рисунка, используемого в качестве значка (рис. 5.11).

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileAssociation — раз уж чуть выше речь зашла о меню Пуск, то поговорим еще о двух параметрах строкового типа, предназначенных для выполнения конфигурации нового меню Пуск, — AddRemoveApps и AddRemoveNames. Первый из них определяет имена программ (пишутся через точку с запятой), которые не будут помещаться в новое меню Пуск, сколько бы их ни вызывали. Второй же содержит части названия имен файлов, ссылки на которые не будут помещаться в новое меню Пуск, сколько бы их ни вызывали.

Рис. 5.11. Создание своей команды пункта Найти меню Пуск


■ HKEY_CURRENT_USER\Software\Microsoft\Java VM — еще одна интересная ветвь реестра, параметры которой определяют настройки консоли Java. К контексту данной главы эти параметры не очень подходят. Все, кроме одного, имеющего название EnableJavaConsole. Параметр имеет тип REG_BINARY, и если его значение будет равно 1, то в своем меню Вид Проводника и браузера Internet Explorer вы сможете встретить команду Окно языка Java, после нажатия которой перед вами предстанет окно, подобное изображенному на рис. 5.12. Автор не очень разбирается в языке Java, поэтому судить о важности данной команды предоставляет читателям.

Рис. 5.12. Добавление к меню Вид вызова консоли языка Java


■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon — используется для хранения установок сервиса WINLOGON — именно ему мы доверяем свой логин и пароль при входе в систему. Конечно, установки WINLOGON малопригодны для настройки оболочки, но все-таки существует один параметр, который подходит к описываемой теме. Этот параметр имеет строковый тип и называется Background. Его значение определяет цвет фона, который будет использоваться для отображения Рабочего стола при выводе диалога регистрации в системе (только если используется классический вход в систему), и имеет уже знакомый вам RGB-формат. Например, если присвоить этому параметру значение 000, то вместо стандартного голубоватого фона вы получите строгий черный.

■ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer — содержит очень интересный параметр, имеющий DWORD-тип, — MaximizeApps. Если его значение будет равно 1, то все запускаемые вами программы будут открываться на весь экран. Предположительно этот параметр применяется для отображения на весть экран командной строки cmd.exe при использовании альтернативного входа в систему Безопасный режим с использованием командной строки.

■ HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Network\Persistent Connections — содержит параметр строкового типа SaveConnections. Его значение определяет, будет ли операционная система по умолчанию создавать перманентные подключения к сетевым папкам и принтерам (перманентные подключения — это подключения, которые будут восстанавливаться после следующего входа пользователя в систему). Если значение равно no, то перманентные подключения создаваться не будут. По умолчанию значение равно yes, хотя иногда это может нарушить систему безопасности (например, когда в системе используются скрытые сетевые ресурсы, заканчивающиеся на знак $ и при этом администратор не хотел бы, чтобы пользователи знали о таких сетевых ресурсах).

■ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\NetworkProvider — может содержать DWORD-параметр RestoreConnection. По умолчанию его значение равно 0, что говорит о том, что Windows разрешено использовать фантомные подключения. Если значение равно 1, то это будет запрещено.

ПРИМЕЧАНИЕ

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

■ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\Shares — раз уж зашла речь о сети, то немного продолжим эту тему. В предыдущей части книги упоминалась команда (даже несколько команд), с помощью которой можно было создать общедоступную папку. Но это не единственная возможность операционной системы, предназначенная для работы с общедоступными папками, ведь вы уже знаете, что большую часть всей своей конфигурационной информации Windows хранит в реестре. Информация о общедоступных папках не является исключением — именно для ее хранения и применяется описываемая ветвь реестра.

Ветвь включает в себя список параметров REG_MULTI_SZ-типа, каждый из которых описывает один общедоступный ресурс (имя параметра равно названию общедоступной папки) (рис. 5.13). Описание ресурса состоит из следующих строк (находятся в значении параметра):

• CSCFlags — определяет флаги кэширования папки для работы в автономном режиме (например, если данный параметр равен 48, то кэширование выполняться не будет, если равен 16, то будет выполняться кэширование документов в автоматическом режиме, если равен 0, то кэширование будет выполняться в ручном режиме);

• MaxUses — определяет количество пользователей, которые могут одновременно получить доступ к ресурсу (если определено неограниченное количество пользователей, то эта строка примет вид MaxUses=4294967295);

• Permissions — назначение неизвестно (всегда равен 0);

• Remark — определяет примечание к общедоступному ресурсу (оно создается с помощью поля Примечание на вкладке Доступ);

• Туре — назначение неизвестно (для папок всегда равен 0, а для принтеров равен 1).

Рис. 5.13. Хранение сведений о папках, к которым открыт общий доступ


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

Глава 6 Internet Explorer и Outlook Express

Уже были рассмотрены настройки оболочки Windows, доступ к которым нельзя получить с помощью диалоговых окон операционной системы Windows. Был также рассмотрен формат хранения в реестре информации о расширениях файлов и ActiveX-объектов. Сейчас же опишем подобные настройки Internet Explorer и Outlook Express. Иначе говоря, те настройки, доступ к которым нельзя получить с помощью диалоговых окон данного браузера или почтового клиента, но можно — с помощью реестра Windows XP.

Internet Explorer

Первой программой, настройки которой будут рассмотрены, станет стандартный браузер для просмотра страниц Интернета, входящий в поставку операционной системы Windows XP, — Internet Explorer. Как говорилось раньше, в поставку Windows XP входит браузер Internet Explorer версии 6.0 (версию браузера можно посмотреть в параметре строкового типа Version из ветви системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer).

Параметры браузера хранятся в нескольких ветвях реестра. Основные пользовательские параметры оболочки браузера Internet Explorer расположены в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer. Настройки самого браузера, не зависящие от конкретного пользователя, который находится в данный момент в системе, хранятся в ветви системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer. Параметры конфигурации браузера Internet Explorer для текущего пользователя расположены в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings. Параметры конфигурации браузера для всех пользователей — в ветви реестра HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft\Windows\CurrentVersion\Internet Settings.

Оболочка

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

В рассказе о настройках оболочки Windows упоминалось о способе, используемом для изменения фона панели инструментов Проводника. То же самое можно сделать и для панели инструментов браузера Internet Explorer и почтового клиента Outlook Express. Для этого также применяется параметр строкового типа из ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar. Эта ветвь содержит два параметра строкового типа, определяющих фон панели инструментов браузера Internet Explorer, — BackBitmap и BackBitmapIE5. Если вы будете использовать первый из этих параметров для указания пути к рисунку фона панели инструментов, то фон изменится не только в браузере, но и в почтовом клиенте Outlook Express и Проводнике Windows (если фон для Проводника не был переопределен параметром BackBitmapShell). Если же вы будете использовать второй параметр, то указанный рисунок фона будет применяться только для отображения на панели инструментов браузера Internet Explorer.

В разделе о параметрах оболочки Windows рассказывалось, как изменить логотип, используемый в Проводнике и отображаемый в верхнем правом углу окна. То же самое можно сделать и для браузера Internet Explorer (а также для почтового клиента Outlook Express) — для этого применяется ветвь реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar. Если для настройки логотипов Проводника использовались параметры SHSmallBitMap и SHBigBitMap, то для настройки логотипов браузера Internet Explorer применяются параметры строкового типа BrandBitMap и SmBrandBitMap. Параметр BrandBitMap определяет путь к файлу изображения (BMP), который будет использоваться при нормальном отображении окна браузера (не в полноэкранном режиме). Параметр SmBrandBitMap определяет изображение, которое применяется в полноэкранном отображении браузера (его можно вызвать нажатием клавиши F11).

Изменить логотип можно и с помощью параметров строкового типа BigBitmap и SmallBitmap, расположенных в этой же ветви реестра, — они переопределяют собой параметры BrandBitMap и SmBrandBitMap. Пример изменения параметров логотипа приведен на рис. 6.1.

Рис. 6.1. Изменение интерфейса браузера


ПРИМЕЧАНИЕ

Если при изменении логотипа в Проводнике ничего не говорилось о размерах, так как Проводник автоматически изменял размеры файла рисунка (если его размер был в пределах 50 пикселов), когда он был слишком большим, то при изменении логотипа браузера Internet Explorer — стоит сказать. Параметр BrandBitMap должен указывать на изображение размером 38×38 пикселов, а параметр SmBrandBitMap — на изображение размером 22×22 пиксела. Если изображение будет больше, то браузер его обрежет.

Еще одним элементом, который можно настроить в браузере Internet Explorer, является название ссылок, отображаемое напротив адресной строки панели инструментов (на рис. 6.1 показан пример, где соответствующий строковый параметр имеет значение, равное Чисто ссылки, вот). Для этого применяется параметр строкового типа LinksFolderName, который содержит имя списка для ссылок и находится в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Toolbar.

ПРИМЕЧАНИЕ

При изменении значения параметра LinksFolderName в меню Избранное автоматически создается папка с указанным в параметре именем — ссылки именно из этой папки будут содержаться в списке напротив адресной строки.

Можно также добавить к заголовку браузера произвольный текст. Для этого предназначен параметр строкового типа Window Title, расположенный в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\lnternet Explorer\Main.

Вы хотите изменить имя зоны, отображаемое в правом нижнем углу окна браузера? Это тоже можно сделать. Например, можно изменить имя зоны Интернет на имя Интернетишка (см. рис. 6.1). Для реализации этого трюка понадобится всего одна ветвь реестра — HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\3. Она хранит настройки уровня безопасности зоны Интернета, среди которых находится параметр строкового типа DisplayName. По умолчанию его значение равно Интернет, но вы можете изменить его на то, которое захотите видеть в браузере. Можно также изменить и названия других зон — все они содержатся в параметрах строкового типа DisplayName различных разделов, дочерних по отношению к разделу HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones. Например, к таким разделам относятся следующие: 0 — зона Мой компьютер; 1 — Местная интрасеть; 2 — Надежные узлы; 3 — Интернет; 4 — Ограниченные узлы.

Кроме названий зон Интернета и папок ссылок, реестр Windows позволяет изменить названия программ в полях на вкладке Программы диалога Свойства обозревателя (рис. 6.2). Все эти названия находятся в параметрах (По умолчанию) разделов ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Clients. Эта ветвь включает в себя разделы, каждый из которых идентифицирует программы одного типа. Например, раздел Mail идентифицирует программы, которые можно выбрать в поле Электронная почта вкладки Программы. В этих разделах содержатся вложенные подразделы, каждый из которых определяет одну программу, которую можно выбрать в соответствующем поле на вкладке Программы. Параметр (По умолчанию) этих подразделов как раз и определяет название программы, которое будет отображаться в списке соответствующего поля. Например, чтобы изменить название программы Outlook Express поля Электронная почта, нужно воспользоваться параметром (По умолчанию) из ветви реестра HKEY_LOCAL_MACHINE\ SOFTWARE\Clients\Mail\Microsoft Outlook.

Рис. 6.2. Изменение названий программ


ПРИМЕЧАНИЕ

Если вы измените название программы Outlook Express в поле Электронная почта, то оно будет использоваться и в новом меню Пуск для идентификации ссылки на почтовый клиент Outlook Express.

А как вам возможность добавления к панели инструментов или меню Сервис своей команды? Это также можно сделать с помощью реестра — достаточно воспользоваться ветвью реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions. Она хранит разделы, названия которых являются GUID-номерами. Каждый из них определяет одну дополнительную клавишу или команду меню Сервис и может содержать следующие параметры строкового типа.

■ ButtonText — определяет строку подсказки, которая будет отображаться при наведении и удержании указателя мыши над созданной кнопкой.

■ Clsid — его значение должно быть равно {1FBA04EE-3024-11D2-8F1F-0000F87ABD16}, в противном случае кнопка создана не будет.

■ Default Visible — определяет, будет ли отображаться на панели инструментов создаваемая вами кнопка (если значение равно YES, то кнопка будет отображаться, если же значение равно NO, то не будет).

■ Exec — указывает команду, которая будет выполняться при нажатии создаваемой кнопки (при этом следует учитывать, что в разделе может присутствовать либо параметр Script, либо параметр Exec).

■ HotIcon — определяет значок, на который будет изменяться стандартный значок вашей кнопки при наведении на нее указателя мыши (значок для кнопки должен находиться в библиотеке).

■ Icon — указывает путь к значку, который будет использоваться для отображения создаваемой вами кнопки (значок для кнопки должен находиться в библиотеке).

■ MenuStatusBar — определяет текст, отображаемый в строке статуса при выборе созданной вами команды из меню Сервис.

■ MenuText — указывает название создаваемой вами команды в меню Сервис.

■ Script — определяет путь к сценарию (HTML-файлу), который будет выполняться при нажатии вашей кнопки или выборе из меню Сервис ее аналога (при этом следует учитывать, что в разделе может присутствовать либо параметр Script, либо параметр Exec).

Вот и все параметры, которые могут присутствовать в разделе, формирующем кнопку на панели инструментов или команду в меню Сервис. Теперь для примера попробуем создать свою кнопку. Результат ее создания можно увидеть на рис. 6.3, а листинг REG-файла, описывающего созданные параметры, приведен ниже.

ПРИМЕЧАНИЕ

Кнопка не всегда сразу отображается на панели инструментов после того, как вы ее создали. Иногда необходимо добавить ее на панель инструментов или включить с помощью диалога, вызываемого командой Управление надстройками меню Сервис (была создана надстройка для браузера Internet Explorer).

Листинг 6.1. Создание кнопки на панели инструментов и команды в меню Сервис

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Extensions\{27A88317-08F0-4068-A8B3-7FAB3255C4BC}]

"clsid"="{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"

"Default Visible"="yes"

"ButtonText"="Папка музыка"

"Icon"="shell32.dll,32"

"HotIcon"="shell32.dll,33"

"MenuText"="Открыть папку с музыкой"

"MenuStatusBar"="открывает папку e:\\music"

"Exec"="e:\\music"


Рис. 6.3. Создание кнопки на панели инструментов

Конфигурация

Теперь несколько слов будет сказано о параметрах браузера Internet Explorer, которые изменяют настройки конфигурации браузера или способ его подключения к Интернету. Например, к ним можно отнести параметр строкового типа Download Directory. Он находится в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer и определяет путь к папке, в которую по умолчанию будут закачиваться файлы из Интернета. По умолчанию значение этого параметра определяет путь к папке Рабочего стола пользователя, что в некоторых случаях может быть неудобно.

Фиксация расположения окна браузера

Другой возможностью, которую предоставляет реестр Windows, является возможность запрета сохранения настроек высоты и ширины окна браузера, а также его расположения на экране. Самым простым способом, с помощью которого это можно сделать, является ограничение доступа к ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main. Но данный способ имеет один большой недостаток (конечно, в некоторых случаях это достоинство) — будет также запрещено изменять многие настройки браузера Internet Explorer, доступ к которым можно получить с помощью вкладки Дополнительно диалога Свойства обозревателя. Если вам не хочется запрещать доступ к этим настройкам, то можно воспользоваться более экстравагантным способом. Для его реализации понадобится DWORD-параметр Window_Min_Height из ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main. Достаточно присвоить этому параметру значение 0x00111111. После этого любые настройки расположения или размеров окна браузера, произведенные в последующие сеансы работы с Интернетом, не будут сохраняться в системе (исключением из правила является возможность установки полноэкранного режима (клавиша F11) — если при закрытии окна браузера использовался полноэкранный режим, то он будет использоваться и при следующем запуске браузера).

Программа просмотра HTML-кода сайта

С помощью реестра можно определить программу, в которой будет открываться HTML-код страницы после выбора из меню Вид команды Просмотр HTML-кода. Для этого достаточно параметру (По умолчанию), расположенному в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Default HTML Editor\shell\edit\command, присвоить значение содержащее путь к программе, которая будет использоваться для просмотра HTML-кода страницы.

Префикс по умолчанию

Можно также определить префикс, который по умолчанию будет подставляться к адресу в адресной строке, если он там явно не указан. По умолчанию используется префикс http://, который говорит браузеру о том, что он должен отослать запрос службе WWW. Но если вы чаще работаете с другими службами, например FTP, то можно указать другой префикс по умолчанию. Информация о возможных префиксах расположена в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\URL. Ветвь содержит два раздела — DefaultPrefix и Prefixes. Первый определяет префикс по умолчанию, который хранится в его параметре (По умолчанию). Например, по умолчанию в параметре хранится значение http://, но можно заменить это значение, допустим, значением ftp:// — теперь, если пользователь не укажет префикс, будет автоматически подставляться префикс ftp://. Раздел Prefixes, в свою очередь, определяет соответствие префиксов различным типам адресов. Он хранит строковые параметры, имена которых определяют службу, а значения параметров — используемый ею префикс.

Создание команд для запроса к поисковым системам

И еще несколько слов об адресной строке. Вы часто пользуетесь такими поисковыми системами, как Rambler, Google или Yandex? И при этом вы сначала заходите на стартовую страницу поисковой системы, а потом уже указываете запрос для поиска? Тогда могу предложить вам более быстрый поиск — поиск непосредственно из адресной строки Internet Explorer. Другими словами, вы вводите запрос в адресной строке браузера, а браузер отправляет его поисковой системе и возвращает вам страницу результатов. Для реализации этого трюка понадобится ветвь реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchUrl — нужно создать в ней свой раздел, название которого вы и будете вводить в адресной строке перед запросом. Содержимое созданного раздела будет определять адрес поисковой системы, которой вы будете передавать свой запрос. Этот адрес нужно указать в параметре (По умолчанию) созданного раздела. Например, можно указать адреса на следующие поисковые системы:

■ Rambler — параметр (По умолчанию) должен иметь следующее значение: http://search.rambler.ru/srch?words=%s;

■ Yandex — http://www.yandex.ru/yandsearch?text=%s;

■ Google — http://www.google.ru/search?hl=ru&lr=lang_ru&q=%s;

■ база знаний Microsoft — такое значение: http://support.microsoft.com/default.aspx?scid=kb;en-us;%s.

Вот и все. Например, если вы присвоите параметру (По умолчанию) ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer SearchUrl\r значение http://search.rambler.ru/srch?words=%s, то для поиска в поисковой системе Rambler страниц, содержащих слова Привет и Пока, нужно будет ввести следующий запрос в адресной строке браузера — r Привет Пока. После этого поисковая система вернет вам список сайтов, содержащих введенный вами запрос.

ПРИМЕЧАНИЕ

Раз уж была затронута тема адресной строки, то определим, как формируется список уже просмотренных вами адресов сайтов Интернета в этой самой адресной строке (если данная возможность не отключена). Для этого опять-таки применяется содержимое реестра — список просмотренных вами адресов Интернета (подобные списки еще называют списками MRU) находится в ветви системного реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs. Ветвь содержит строковые параметры, каждый из которых имеет название, создаваемое в следующем формате: url1, url2, url3 и т.д. Значения этих параметров как раз и хранят вводимые вами адреса URL. Вы можете самостоятельно ввести необходимые адреса Интернета, которые используете наиболее часто, а потом отредактировать права на данную ветвь реестра, оставив для себя только права на чтение содержимого ветви, чтобы случайно не заменить необходимые вам адреса URL адресной строки.

Создание синонимов к адресам адресной строки

Другой возможностью, которую предоставляет пользователям браузер Internet Explorer, является возможность создания синонимов к адресам Интернета. Например, гораздо легче ввести в адресной строке что-то вроде about:vasia, чем http://www.vasia_super_cite/index.htm?passw=sss&login=ddd. Да, вы уже догадались, что та же строка about:blank, используемая для отображения пустой страницы, является синонимом. При этом та команда, в которую транслируется строка about:blank при поиске сайта, записана в ветви системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\AboutURLs. Ветвь содержит строковые параметры, имена которых являются строками, записываемыми после about: для идентификации синонима. Значения же параметров являются истинными адресами, в которые будут транслироваться синонимы. Например, значение параметра, идентифицирующего такую строку about:blank, равно res://mshtml.dll/blank.htm (рис. 6.4). Вы и сами можете добавлять в раздел AboutURLs свои параметры.

Рис. 6.4. Хранение синонимов адресов Интернета


Если же синонимы создавать не хочется, но у вас имеется один особо любимый сайт, то адрес к нему можно зафиксировать за кнопкой С исходной на вкладке Общие диалога Свойства обозревателя. После нажатия этой кнопки в качестве стартовой страницы устанавливается адрес того сайта, который за ней зафиксирован. По умолчанию адресом, который зафиксирован за кнопкой С исходной, является адрес сайта Microsoft (http://www.microsoft.com/isapi/redir.dllprd=ie&pver=6&ar=msnhome), но если вы никогда не пользуетесь этим сайтом, то можете смело изменить значение параметра строкового типа Default_Page_URL из ветви системного реестра HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main.

Определения максимального количества выводимых браузером символов

Существует еще одна интересная возможность — указание запрета вывода строк текста больше определенного количества символов. Другими словами, можно указать количество символов в строке текста, после которого остальные символы строки будут обрезаться. Для этого применяется DWORD-параметр MaxRenderLine из ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main, который и определяет возможное количество символов. Например, на рис. 6.5 приведены три окна браузера Internet Explorer — в левом окне отображается ситуация, когда значение параметра MaxRenderLine равно 0, в среднем окне — когда значение равно 2, а в правом окне значение равно 400.

Рис. 6.5. Изменение максимальной длины строки текста

Разрешение выполнения ActiveX-объектов на локальном компьютере

Еще одной интересной возможностью, которую можно отредактировать с помощью реестра, является слежение системы за ActiveX-объектами при работе с HTML-страницами на локальном компьютере. Если вы часто просматриваете HTML-страницы, находящиеся на жестком диске вашего компьютера, то должны были заметить, что по умолчанию система запрещает выполнение ActiveX-объектов при работе с HTML-страницей, сохраненной на жестком диске, что иногда может мешать работе HTML-страницы. Если вы полностью доверяете создателям страницы, то можно отключить данный запрет системы. Для этого используется ветвь реестра HKEY_CURRENT_USER\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_LOCALMACHINE_LOCKDOWN. Чтобы система не запрещала ActiveX-объекты, достаточно в этой ветви создать DWORD-параметр iexplore и присвоить ему значение, равное 0. В этой ветви можно также создать DWORD-параметр * — он будет определять состояние политики запрета ActiveX-объектов на локальном компьютере для всех программ.

Изменение минимального уровня зон Интернета

В браузере Internet Explorer 6.0 реализована защита уровней зон безопасности от неправильного изменения. Например, если вы попытаетесь изменить уровень зоны Интернета на вкладке Безопасность диалога Свойства обозревателя на уровень Ниже среднего, то браузер не разрешит вам это сделать, так как минимальным допустимым уровнем для зоны Интернета является средний уровень. Наложенный запрет для уровней хранится в реестре, с помощью которого можно изменить минимальный допустимый уровень зоны. Это можно сделать, например, для повышения минимального возможного уровня зон. Конечно, можно это сделать и с целью понижения уровня, но понижать минимальные уровни настоятельно не рекомендуется.

Как уже упоминалось при описании трюков с оболочкой браузера, все настройки зон Интернета хранятся в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones. Она содержит пять разделов, каждый из которых определяет настройки для отдельной зоны Интернета.

Раздел 0 включает в себя настройки для зоны Мой компьютер, то есть настройки безопасности, которые будут применяться при навигации по файловой структуре компьютера с помощью браузера и при просмотре файлов HTML-страниц, хранящихся на вашем жестком диске. С помощью диалога Свойства обозревателя нельзя редактировать зону Мой компьютер, поэтому для нее не существует такого понятия, как минимальный разрешенный уровень зоны.

Остальные разделы определяют зоны, доступ к которым можно получить с помощью вкладки Безопасность диалога Свойства обозревателя. Раздел 1 определяет зону Местная интрасеть, раздел 2 — зону Надежные узлы, раздел 3 — зону Интернет, а раздел 4 — зону Ограниченные узлы. Все эти разделы содержат (помимо других параметров) два DWORD-параметра: MinLevel и RecommendedLevel. Именно значения этих параметров и указывают минимальный уровень безопасности для конкретной зоны — значение первого параметра определяет минимальный допустимый уровень, а значение второго — рекомендуемый уровень. При этом уровень зоны, меньше которого опускаться нельзя, определяется как наибольший из уровней, указанных в значениях этих двух параметров.

Параметры MinLevel и RecommendedLevel должны содержать идентификатор зоны — число, которое определяет данный уровень зоны для браузера. Возможные идентификаторы и соответствующие им уровни также хранятся в реестре — в ветви HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\TemplatePolicies. Ветвь включает в себя четыре раздела: High, Low, Medium и MedLow. Каждый из них определяет настройки безопасности для конкретного уровня зоны (соответственно, для уровней Высокий, Низкий, Средний, Ниже среднего). Кроме настроек безопасности, эти разделы хранят еще и DWORD-параметр TemplateIndex, значение которого определяет идентификатор для данного уровня безопасности зоны. Например, на моем компьютере данный параметр содержит следующие значения уровней для конкретной зоны:

■ 0х00012000 — Высокий;

■ 0х00010000 — Низкий;

■ 0х00011000 — Средний;

■ 0х00010500 — Ниже среднего.

Теперь попробуем изменить минимальный возможный уровень для конкретной зоны Интернета. Например, для зоны Надежные узлы. По умолчанию минимальным возможным уровнем для данной зоны является уровень Низкий, то есть значения параметров MinLevel и RecommendedLevel равны 0х00010000. Но если изменить значение двух этих параметров, например, на 0x00010500, то пользователю будет запрещено устанавливать уровень Низкий для зоны Надежные узлы — минимальным возможным будет уровень Ниже среднего.

Другие параметры реестра

В конце рассказа о параметрах реестра для браузера Internet Explorer рассмотрим некоторые параметры ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings. Как уже было сказано, она содержит конфигурационные настройки браузера для текущего пользователя, некоторые из них нельзя изменить с помощью диалоговых окон браузера Internet Explorer.

■ MaxConnectionsPer1_0Server и MaxConnectionsPerServer — параметры DWORD-типа, определяют максимальное количество сеансов между вашим компьютером и Интернетом, которые может поддерживать браузер (первый из этих параметров определяет максимальное количество сеансов для протокола HTTP 1.0, а второй — для остальных протоколов). Каждое открытое окно браузера или скачиваемый файл занимают один сеанс. По умолчанию эти параметры не существуют, и их нужно создать.

С одной стороны, если вы постоянно подключены к Интернету, то можете вообще установить значения этих параметров равными 1. В таком случае ни один троянский конь не сможет подключаться к нему. А можно при необходимости увеличить количество сеансов. Это может понадобиться, например, при использовании специальных программ для скачивания файлов из Интернета, которые применяют несколько сеансов, достигая тем самым большей скорости скачивания.

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

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

ПРИМЕЧАНИЕ

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

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

Пакеты активности подключения по умолчанию не отправляются, что можно видеть по значению DWORВ-параметра DisableKeepAlive из этой же ветви реестра.

■ User Agent — этот параметр строкового типа идентифицирует версию вашего браузера (строка обозревателя) для сайтов, которым необходима эта информация для решения, какую страницу вам послать. Другими словами, если сайт имеет несколько вариантов форматирования или HTML-кода — каждый вариант для отдельной версии браузера, — то он запрашивает значение данного параметра, чтобы передать наиболее подходящий для браузера HTML-код. Для шестой версии браузера по умолчанию значение этого параметра равно Mozilla/4.0 (compatible; MSIE 6.0; Win32).

ПРИМЕЧАНИЕ

С помощью реестра можно добавить произвольный текст к строке обозревателя. Для этого предназначена ветвь реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\lnternet Settings\User Agent\Post Platform. Чтобы добавить строку, нужно создать в этой ветви параметр строкового типа со значением, равным IEAK. Название параметра как раз и будет добавляться к строке обозревателя.

■ FromCacheTimeout — определяет время ожидания считывания из кэша. По умолчанию параметр не существует, и его нужно создать.

■ SocketSendBufferLength и SocketReceiveBufferLength — эти параметры DWORD-типа указывают размеры буферов приема и передачи данных для каждого используемого порта. Если при работе с Интернетом часто возникают ошибки приема/передачи или скорость слишком медленная, то можно попробовать поэкспериментировать с данными параметрами DWORD-типа. По умолчанию они отсутствуют в реестре.

■ ProxyServer — параметр строкового типа, определяет адреса прокси-сервера и порты, которые будут использоваться для подключений по различным протоколам Интернета. Например, значение этого параметра, равное http=10.1.1.2:80; https=10.1.1.1:80; ftp=10.1.2.3:80; gopher=10.1.2.3:80; socks=10.1.1.1:80, определяет все возможные протоколы подключения. Параметр также редактируется с помощью диалога Параметры прокси-сервера, который можно отобразить с помощью вкладки Подключения диалогового окна Свойства обозревателя, если нажать кнопку Настройка LAN данного окна и в появившемся диалоге нажать кнопку Дополнительно (чтобы она стала активной, нужно установить флажок Использовать прокси-сервер для подключения LAN).

Outlook Express

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

Но перед тем, как начать описание параметров реестра, стоит несколько слов сказать о ветвях реестра, в которых почтовый клиент хранит свои настройки. Для этого он использует две основные ветви реестра — HKEY_CURRENT_USER\Software\Microsoft\Outlook Express\5.0 (ветвь находится и в корневом разделе HKEY_LOCAL_MACHINE) и HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения почтового клиента}\Software\Microsoft\Outlook Express\5.0. В первой ветви реестра нет ничего необычного, поэтому о ней больше говориться не будет. А вот вторая ветвь реестра может вызвать вопросы. Например, вопрос о том, что же это за GUID-номер удостоверения пользователя. Все дело в том, что один пользователь может иметь сразу несколько удостоверений в почтовом клиенте Outlook Express, настройки которых как раз и определяются в разделах ветви HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения почтового клиента}. Кроме разделов удостоверения пользователя, ветвь реестра HKEY_CURRENT_USER\Identities хранит еще и настройки главной идентификационной записи — они расположены в разделе с GUID-номером {0EB9C6CE-AD1E-49DD-9965-129A078D453E}.

Чтобы узнать, какому имени пользователя принадлежат настройки из ветви реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения почтового клиента}, необходимо посмотреть на параметр строкового типа Username проверяемой ветви реестра. Например, для ветви реестра HKEY_CURRENT_USER\Identities\{0EB9C6CE-AD1E-49DD-9965-129A078D453E} значение параметра Username будет равно Главная идентификационная запись.

Оболочка

Как обычно, все параметры реестра будут разделены на два типа — те, что изменяют оболочку программы Outlook Express, и те, что определяют конфигурацию Outlook Express. И, конечно же, сначала рассмотрим некоторые параметры, относящиеся к настройке оболочки почтового клиента. Среди них есть как изменяющие вид окна Outlook Express, например изменяющие заголовок, так и скрывающие различные функциональные возможности почтового клиента.

Изменение заголовка Outlook Express

Чтобы изменить заголовок почтового клиента Outlook Express (точнее, добавить к заголовку текст, отображаемый между названием папки, в которой вы сейчас находитесь, и именем пользователя), достаточно воспользоваться параметром строкового типа WindowTitle ветви реестра HKEY_CURRENT_USER\Identities\{GUID-номер учетной записи почтового клиента}\Software\Microsoft\Outlook Express\5.0. По умолчанию данный параметр отсутствует в реестре, поэтому его необходимо создать и присвоить ему значение, определяющее заголовок, который вы хотите использовать для данного удостоверения. Например, результат присвоения значения Ушел на обед параметру WindowTitle из ветви реестра HKEY_CURRENT_USER\Identities\{0EB9C6CE-ADlE-49DD-9965-129A078D453E}\Software\Microsoft\Outlook Express\5.0 можно увидеть на рис. 6.6.

Рис. 6.6. Добавление произвольного текста к заголовку

Запрет отображения заставки Outlook Express

При запуске почтового клиента Outlook Express (после выбора удостоверения и ввода для него пароля, если он необходим, и до непосредственного отображения окна почтового клиента) в течение нескольких секунд отображается заставка, вывод которой можно запретить с помощью параметра реестра. Для этого необходимо в ветви реестра HKEY_CURRENT_USER\Identities\{0EB9C6CE-AD1E-49DD-9965-129A078D453E}\Software\Microsoft\Outlook Express\5.0 создать DWORD-параметр NoSplash и присвоить ему значение, равное 1.

Отображение различных панелей при запуске Outlook Express

По умолчанию Outlook Express при запуске отображает минимальное количество своих панелей. Вкратце опишем параметры реестра, с помощью которых можно запретить или разрешить отображение панелей при запуске почтового клиента Outlook Express. Все эти параметры имеют тип DWORD и находятся в ветви реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения почтового клиента}\Software\Microsoft\Outlook Express\5.0.

■ Show Outlook Bar — если значение этого параметра равно 1, то слева в окне почтового клиента будет отображаться панель папок Outlook Express (рис. 6.7). По умолчанию данная панель не отображается.

Рис. 6.7. Добавление панели папок


ПРИМЕЧАНИЕ

По умолчанию отображается другая панель папок. Эта панель так и называется — Папки. Ее очень легко скрыть — достаточно нажать крестик в заголовке панели. А вот отобразить эту панель — задача сложнее. Для этого нужно присвоить параметру Tree значение 1. Этот параметр также имеет тип DWORD и находится в ветви системного реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения}\Software\Microsoft\Outlook Express\5.0.

■ HideFolderBar — по умолчанию под панелью инструментов находится заголовок, в котором отображено название текущей папки, а также имя удостоверения, используемое в данный момент (см. рис. 6.7). Данный заголовок можно скрыть — для этого достаточно присвоить параметру HideFolderBar значение 1.

■ ShowHybridView — если значение этого параметра равно 0, то при просмотре письма не будет отображаться информация заголовка письма (поля От, Кому, Тема). По умолчанию он равен 1 и расположен в ветви системного реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения}\Software\Microsoft\Outlook Express\5.0\Mail.

■ ShowBodyBar — если значение этого параметра равно 1, то при запуске Outlook Express будет отображаться панель тела письма. По умолчанию она не отображается. Есть одна интересная возможность, которую предоставляет панель тела письма, — определение файла рисунка, который будет на ней выводиться. Для этого используется параметр строкового типа BodyBarPath, значение которого как раз и определяет путь к картинке. Параметр расположен в ветви реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения почтового клиента}\Software\Microsoft\Outlook Express\5.0. На рис. 6.8 отображен пример использования тела письма для отображения рисунка.

Рис. 6.8. Отображение произвольного рисунка на панели тела письма


■ SplitDir — по умолчанию значение параметра равно 0. Это говорит о том, что поля списка сообщений и тела сообщений будут располагаться по горизонтали.

Если же значение равно 1, то эти поля будут отображаться по вертикали (рис. 6.9). Данный параметр расположен в ветви системного реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения}\Software\Microsoft\ Outlook Express\5.0\Mail.

Рис. 6.9. Отображение полей по вертикали

Скрытие различных элементов диалога Параметры

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

■ RequestMDNLocked — расположен в ветви реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения}\Software\Microsoft\Outlook Express\5.0. Если его значение равно 1, то будет заблокирован флажок Запрашивать уведомления о прочтении для всех отправляемых сообщений на вкладке Уведомления.

■ SendMDNLocked — находится в ветви системного реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения}\Software\Microsoft\Outlook Express\5.0. Если его значение равно 1, то будут заблокированы переключатели области Обработка запросов уведомлений о прочтении на вкладке Уведомления.

■ Security Zone Locked — расположен в ветви реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения}\Software\Microsoft\Outlook Express\5.0. Если его значение равно 1, то будут заблокированы переключатели области Защита от вирусов на вкладке Безопасность.

■ Safe Attachments Locked — находится в ветви системного реестра Windows HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения\Software\Microsoft\Outlook Express\5.0\Mail. Если его значение равно 1, то будет заблокирован флажок Не разрешать сохранение или открытие вложений, которые могут содержать вирусы области Защита от вирусов на вкладке Безопасность.

■ Warn on Mapi Send Locked — расположен в ветви системного реестра Windows HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения\Software\Microsoft\Outlook Express\5.0\Mail. Если его значение равно 1, то будет заблокирован флажок Предупреждать, если приложения пытаются отправить почту от моего имени области Защита от вирусов на вкладке Безопасность.

По умолчанию этих параметров нет, и их нужно создать.

Для примера на рис. 6.10 приведено отображение вкладки Уведомления диалога Параметры при использовании приведенных выше параметров реестра.

Рис. 6.10. Блокировка некоторых элементов вкладки Уведомления

Конфигурация

Теперь несколько слов скажем о конфигурации Outlook Express. В этом разделе будет рассмотрен способ хранения паролей для удостоверений почтового клиента, а также способ использования этих паролей при запуске почтового клиента Outlook Express.

Пароли Outlook Express

Пароли всех удостоверений Outlook Express хранятся в реестре. Для этого предназначена ветвь реестра HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider\«идентификатор безопасности вашей учетной записи (SID)»\Data. По умолчанию доступ к ветви системного реестра HKEY_CURRENT_USER\Software\Microsoft\Protected Storage System Provider\«идентификатор безопасности вашей учетной записи (SID)» не определен ни для какой учетной записи. Поэтому если ваша учетная запись принадлежит к группе Администраторы, то необходимо будет еще изменить права доступа к этой ветви реестра, чтобы увидеть ее содержимое (учетные записи, принадлежащие к другим группам, не имеют права изменять права доступа к данной ветви реестра). После того как вы измените права доступа, перед вами появятся два дочерних раздела ветви — Data и Data2. Пароли Outlook Express в зашифрованном виде содержатся в разделе Data, поэтому узнать пароль конкретного пользователя не получится, но можно переименовать раздел Data, например, в раздел 2Data или просто удалить его. После этого все пароли на удостоверения данного пользователя будут удалены и можно будет войти в его удостоверения без пароля. Это может понадобиться в том случае, если пароль на удостоверение утерян или поврежден.

ВНИМАНИЕ

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

ПРИМЕЧАНИЕ

Идентификатор безопасности SID является числом в специальном формате (например, для учетной записи Администратор этот идентификатор всегда равен S-1-5-21-1645522239-1957994488-839522115-500). Это число идентифицирует данного пользователя во всех операциях доступа к реестру, файловой системе Windows, сети и т.д. Идентификатор безопасности — это уникальное число (за исключением учетной записи Администратор, для которой идентификатор безопасности на всех компьютерах одинаковый), однозначно идентифицирующее учетную запись. Список всех идентификаторов безопасности для учетных записей (существуют также идентификаторы безопасности для групп пользователей) можно просмотреть в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\ProfileList. Ветвь содержит разделы, названные в честь идентификаторов безопасности. При этом данные разделы хранят параметр строкового типа ProfileImagePath, который определяет путь к папке профиля, используемой данной учетной записью (конечная папка этого пути названа в честь логина учетной записи, поэтому можно определить, какой учетной записи соответствует каждый идентификатор безопасности).

Но удаление администраторами паролей к удостоверениям пользователей — это еще не все проблемы безопасности в Outlook Express. Существует еще одна. При входе пользователя в почтовый клиент Outlook Express (после ввода пользователем пароля) в ветви реестра HKEY_CURRENT_USER\Identities создается DWORD-параметр Identity Login. Он определяет так называемый идентификатор данного удостоверения (эти идентификаторы статичны, то есть всегда одинаковы для конкретной учетной записи пользователя, а не удостоверения). Идентификатор существует до выхода пользователя из почтового клиента — во время выхода он удаляется. Все дело в том, что если кто-то узнает значение данного идентификатора для удостоверения, например с помощью сетевого доступа просмотрит ветвь реестра HKEY_CURRENT_USER\Identities удаленного компьютера или просто посмотрит, чему равен идентификатор при своей работе в почтовом клиенте, то он сможет спокойно зайти в удостоверение, которое открывалось последним — почтовый клиент не потребует ввода пароля. Для этого достаточно будет перед открытием почтового клиента просто создать в ветви системного реестра HKEY_CURRENT_USER\Identities параметр Identity Login и присвоить ему значение идентификатора.

Теперь рассмотрим небольшой пример. Допустим, существует общественный компьютер, на котором используется почтовый клиент Outlook Express. В этом почтовом клиенте существует три удостоверения, при этом одно из них ваше, например, оно будет иметь GUID-номер удостоверения {7FA55060-42B6-4CA4-8925-51F7AE55A20F}, а второе удостоверение, доступ к которому очень нужно получить, имеет GUID-номер {5E92CB22-3FED-493A-9D6F-F7432CF5CD7C}. Если вы думаете, что получить доступ к этому удостоверению невозможно, то вы ошибаетесь — на это понадобится пять минут. Попробуем это сделать. Для начала, конечно, нужно зайти в свое удостоверение и посмотреть значение DWORD-параметра Identity Login ветви реестра HKEY_CURRENT_USER\Identities. После того как вы запомнили значение этого параметра, закрывайте почтовый клиент (внимание, нужно просто закрыть почтовый клиент, а не завершить сеанс работы с удостоверением). Вот, в принципе, и все. Теперь осталось выполнить последний шаг — отредактировать три параметра ветви реестра HKEY_CURRENT_USER\Identities.

1. Identity Login — необходимо создать этот параметр DWORD-типа и присвоить ему значение, которое вы недавно запомнили.

2. Last User ID — нужно присвоить этому параметру строкового типа значение GUID-номера удостоверения, к которому нужно получить доступ. В вашем случае, нужно присвоить значение {5E92CB22-3FED-493A-9D6F-F7432CF5CD7C} (если вы этого не сделаете, то просто войдете без пароля в свое удостоверение).

3. Last Username —необходимо присвоить этому параметру строкового типа значение логина удостоверения, доступ к которому нужно получить (еще не забыли, что его можно посмотреть в значении параметра Username ветви системного реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения почтового клиента, к которому вы хотите получить доступ}?).

Вот теперь точно все — достаточно еще раз открыть почтовый клиент, и вы без знания пароля войдете в удостоверение пользователя, имеющее GUID-номер {5E92CB22-3FED-493A-9D6F-F7432CF5CD7C}.

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

Скрытие возможности редактирования списка учетных записей Outlook Express

Учетная запись — это сведения о пароле, логине, сайте почтового сервера и настройках для подключения к этому сайту сервера, с которого будет скачиваться ваша почта, если это почтовый сервер, или новости, если новостной. Каждое удостоверение содержит как общие учетные записи, создаваемые при установке почтового клиента, так и уникальные, создаваемые пользователем, которому принадлежит удостоверение. В некоторых случаях нет необходимости разрешать пользователям создавать свои учетные записи, например, когда почтовый клиент должен использоваться только для отправки почты на какой-то стандартный почтовый сервер. В этом случае можно скрыть команду Учетные записи из меню Сервис почтового клиента Outlook Express. Для этого достаточно воспользоваться DWORD-параметром No Modify Accts из ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Outlook Express. По умолчанию этого параметра нет, и его нужно создать. Необходимо присвоить ему значение 1.

При использовании этого параметра стоит иметь в виду, что добавить учетную запись или отредактировать свойства уже существующей все-таки можно — для этого достаточно воспользоваться реестром. Сведения об учетных записях, принадлежащих данному удостоверению, находятся в ветви реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения}\Software\Microsoft\Internet Account Manager\Accounts, полный доступ к содержимому которой имеют все пользователи. Эта ветвь не существует для главной учетной записи, для созданных самостоятельно должна существовать. Она включает в себя список разделов, каждый из них определяет настройки одной учетной записи данного удостоверения, и чтобы добавить свою учетную запись, нужно создать новый раздел. Например, в командной строке можно воспользоваться следующей командой: reg copy «HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения}\Software\Microsoft\Internet Account Manager\Accounts\«название существующего раздела»» «HKEY_CURRENT_USER\Identities\{GUID-номер удосудостоверения}\Software\Microsoft\Internet Account Manager\Accounts\«название нового раздела»» /s. После выполнения этой команды в ветви HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения}\Software\Microsoft\Internet Account Manager\Accounts будет создан новый раздел, содержимое которого придется самостоятельно изменить.

После того как будет настроена новая учетная запись, необходимо будет еще сделать ее учетной записью для работы с почтой по умолчанию. Для этого используется строковый параметр Default Mail Account (для почтового сервера) или строковый параметр Default LDAP Account (для Active Directory). Оба этих параметра расположены в ветви реестра HKEY_CURRENT_USER\Identities\{GUID-номер удостоверения}\Software\Microsoft\Internet Account Manager и хранят название раздела реестра, содержащего настройки соответствующей учетной записи (название раздела, который был создан на предыдущем этапе).

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

Скрытие возможности работы с Windows Messenger

Существует возможность скрытия команд Состояние и Windows Messenger из меню Сервис. Для этого достаточно присвоить DWORD-параметру Hide Messenger значение, равное 2. Этот параметр расположен в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Outlook Express. По умолчанию параметр не существует, и его нужно создать.

Глава 7 Оптимизация Windows

В данной главе речь пойдет о параметрах реестра, с помощью которых можно повысить скорость или качество работы различных компонентов Windows XP, например таких, как сетевое соединение и стеки протоколов, а также скорость самой операционной системы. Следует сказать, что в этой главе не будет приведено никаких советов или правил изменения тех или иных параметров реестра. Здесь автор хотел бы предложить набор интересных параметров реестра, направленных на оптимизацию компонентов Windows, а вы уж сами решите, какие параметры стоит изменить, а какие лучше не трогать.

Компоненты Windows XP

Windows XP по сравнению с предыдущими версиями Windows сделала большой шаг в повышении оптимизации работы операционной системы. Это выразилось в добавлении новых программ и служб, направленных на автоматическую оптимизацию операционной системы, а также в появлении новых параметров реестра. Но обо всем по порядку.

Службы

Службами являются специальные программы, с помощью которых реализуются те или иные функциональные возможности Windows. Службы, как правило, не имеют пользовательского интерфейса и выполняются в фоновом режиме. В этом они практически ничем не отличаются от программ-демонов в UNIX-совместимых системах или резидентных программ в MS-DOS. Конечно, службы являются очень полезными программами, с помощью которых повышается функциональная составляющая Windows, и тем не менее не всегда функции, реализуемые той или иной службой, могут быть необходимы на компьютере. Поэтому некоторые из них рекомендуется отключать, ведь каждая работающая служба занимает некоторый объем оперативной памяти, а иногда и некоторую часть производительности процессора. Но перед отключением служб рассмотрим те функции, которые они предоставляют.

DHCP-клиент

Данная служба используется при существовании в сети DHCP-сервера. DHCP-сервер предназначен для выдачи всем компьютерам, не имеющим постоянного IP-адреса, временного IP-адреса, чтобы они могли работать в сети. Служба является отличным средством автоматизирования процесса настройки стека TCP/IP на всех компьютерах сети. Если раньше администратору приходилось самому настраивать каждый компьютер сети, то теперь с помощью DHCP-сервера он может просто определить настройки параметров стека TCP/IP и пул IP-адресов, выдаваемых каждому компьютеру, который будет просить об этом DHCP-сервер. При этом просьба осуществляется при помощи службы DHCP-клиент. При входе компьютера в сеть служба отправляет широковещательный запрос с просьбой выдачи временного IP-адреса всем DHCP-серверам, которые присутствуют в сети. После этого каждый DHCP-сервер просматривает свой пул адресов, чтобы определить, может ли он предоставить требуемый IP-адрес. В случае, если пул DHCP-сервера имеет IP-адрес, удовлетворяющий сети, в которой находится DHCP-клиент, он высылает запрос на предложение данного IP-адреса. После того, как DHCP-клиент получает запрос на предложение IP-адреса, он опять отправляет широковещательный запрос всем DHCP-серверам. На этот раз в широковещательном запросе говорится, что DHCP-клиент принимает IP-адрес. Во-первых, с помощью этого широковещательного запроса DHCP-сервер уведомляется, чей IP-адрес принят, а во-вторых, все остальные DHCP-серверы, которые также выслали запросы с предложениями IP-адреса для данного DHCP-клиента, понимают, что DHCP-клиент выбрал не их адрес и что их услуги больше не нужны. После того как DHCP-сервер, чье предложение IP-адреса было выбрано, получает широковещательный запрос, он высылает подтверждение на передачу IP-адреса DHCP-клиенту (и информацию о сроке аренды IP-адреса), а также дополнительные настройки стека TCP/IP (их называют параметрами), которые необходимо использовать для работы в сети.

Служба DHCP-клиент использует около 20 Кбайт памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (при этом она запускается как часть процесса svchost.exe).

ПРИМЕЧАНИЕ

Как правило, существует три основных учетных записи, с правами которых запускаются службы. Это учетная запись локальной системы (Local System), локальной службы (NT AUTHORITY\LocalService), а также учетная запись сетевой службы (NT AUTHORITY\NetworkService). Учетная запись локальной системы обладает максимальными правами на доступ к компонентам операционной системы (создание учетных записей администраторов, редактирование любых ветвей реестра, а также доступ к любым файлам и папкам файловой системы). Учетные записи локальной и сетевой служб обладают всеми правами, доступными группе Пользователи.

Как уже говорилось выше, данная служба необходима только в том случае, если существует сеть и в этой сети есть хотя бы один DHCP-сервер. Согласитесь, не многим домашним компьютерам может понадобиться служба DHCP-клиент, поэтому ее запуск можно отключить. Для этого необходимо DWORD-параметру Start, расположенному в ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dhcp, присвоить значение 4.

ПРИМЕЧАНИЕ

Не обязательно для отключения служб пользоваться реестром — намного легче это сделать с помощью консоли services.msc, речь о которой пойдет в следующей главе книги. Для остановки/запуска службы можно воспользоваться следующими командами программы net: Net start — запустить службу; Net stop — остановить службу; Net pause — приостановить службу; Net continue — продолжить работу приостановленной службы.

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

Имя службы является названием раздела реестра, в котором содержатся параметры настройки службы. Например, для службы DHCP-клиент раздел реестра называется Dhcp (другими словами, чтобы запустить службу DHCP-клиент, нужно воспользоваться командой net start dhcp). А чтобы запустить рассматриваемую далее службу DNS-клиент, которая хранит свои настройки в разделе реестра DNSCACHE, нужно воспользоваться командой net start dnscache.

Для запуска службы DHCP-клиент нужно, чтобы также были запущены следующие службы: Драйвер протокола TCP/IP (для его работы необходима служба Драйвер IPSEC), AFD и NetBios через TCP/IP (для его работы требуется служба Драйвер протокола TCP/IP). Для запуска этих служб также необходимо воспользоваться DWORD-параметром Start, которому нужно присвоить значение 0 (запускать службу при загрузке системы), 1 (запускать службу при инициализации операционной системы), 2 (запускать службу автоматически) или 3 (запускать службу вручную). Этот параметр должен находиться в следующих ветвях реестра:

■ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD — для службы AFD (параметр Start должен иметь значение 1);

■ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip — для службы Драйвер протокола TCP/IP (параметр Start должен иметь значение 1);

■ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IPSec — для службы Драйвер IPSEC (параметр Start должен иметь значение 1);

■ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT — для службы NetBios через TCP/IP (параметр Start должен иметь значение 1).

Для работы службы DHCP-клиент также необходима библиотека dhcpcsvc.dll.

ПРИМЕЧАНИЕ

Как правило, сведения о необходимой для работы службы библиотеки находятся в параметре строкового типа ServiceDll, расположенном в разделе Parameters ветви реестра, содержащей настройки службы. В этом разделе также может храниться DWORD-параметр ServiceDllUnloadOnStop. Если его значение равно 1, то при остановке службы из памяти будет выгружаться библиотека, необходимая для ее работы.

DNS-клиент

Служба предназначена для получения IP-адреса удаленного компьютера при известном доменном или url-адресе этого компьютера (например, www.mail.ru). При этом процесс получения IP-адреса удаленного компьютера реализуется благодаря взаимодействию службы DNS-клиент с DNS-сервером. Это взаимодействие начинается после ввода запроса на подключение к удаленному компьютеру с использованием доменного имени компьютера (например, при вводе в адресную строку браузера адреса www.mail.ru). После этого служба DNS-клиент пытается найти IP-адрес компьютера, соответствующий введенному доменному или url-адресу, в своем кэше (данный кэш существует до окончания работы службы DNS-клиент и хранит соответствия всех IP-адресов доменным именам, которые уже были найдены службой DNS-сервер). Если служба DNS-клиент не находит в кэше соответствующий доменному имени IP-адрес, она обращается к содержимому файла HOSTS (если, конечно, обращение к данному файлу разрешено), расположенному на локальном компьютере (в каталоге %SystemRoot%\System32\drivers\etc) и включающему в себя соответствия между доменными именами и IP-адресами компьютеров, которым эти имена принадлежат. Если же и в этом файле нет сведений об IP-адресе необходимого компьютера, то служба обращается к DNS-cep-веру, используемому для разрешения имен компьютеров по умолчанию (в сети может существовать несколько DNS-серверов, при этом один из них является основным, к которому и обращаются компьютеры для разрешения имен). DNS-клиент ищет сведения об IP-адресе компьютера, которому принадлежит данное доменное имя, в своей базе данных. Если в базе данных DNS-сервера нет сведений о соответствующем этому доменному имени IP-адресе, то DNS-сервер просматривает свой кэш уже разрешенных имен компьютеров. Если и кэш не содержит необходимого IP-адреса, то DNS-сервер обращается с запросом на разрешение имени к вышестоящему DNS-серверу (например, если данный DNS-сервер включает в себя сведения о домене narod.ru, то DNS-сервер обращается к вышестоящему DNS-серверу, содержащему сведения о домене ru и т.д.). В итоге, если разрешение IP-адреса все-таки удалось, то IP-адрес, соответствующий данному доменному имени, передается DNS-клиенту, который, в свою очередь, передает его программе, запросившей у него разрешение имени (не забыв перед этим поместить данное разрешение имен в свой кэш). Если же разрешение имени не удалось, то программа оповестит об этом пользователя, сказав ему, что компьютер с введенным именем не найден.

ПРИМЕЧАНИЕ

Как уже говорилось, файл hosts расположен в каталоге %systemroot%\system\drivers\ ets и используется в случае, если в кэше DNS-клиента нет сведений о разрешении данного доменного или url-имени. Файл hosts является обычным текстовым файлом, содержащим соответствия IP-адреса компьютера его url-адресу. Вы сами можете создать данные соответствия для часто открываемых в Интернете сайтов, чтобы они открывались быстрее и при открытии загружали меньше трафика (ведь браузеру не придется обращаться к DNS-серверу). Для этого достаточно в файле hosts создать строку такого вида: IP-адрес URL-адрес. Например, можно разрешить IP-адрес сайта www.mail.ru. Его url-имя у вас есть (www.mail.ru), но как узнать IP-адрес? Для этого вам понадобится программа командной строки ping.exe. Необходимо запустить командную строку и ввести команду ping www.mail.ru, после чего программа выведет IP-адрес, принадлежащий url-имени www.mail.ru. Для www.mail.ru это будет адрес 194.67.57.26, то есть в файле hosts нужно создать строку вида 194.67.57.26 www.mail.ru.

С помощью файла hosts можно также бороться с баннерными серверами. Для этого достаточно разрешить имя сайта, который раздает другим сайтам баннеры, на IP-адрес своего компьютера (например, с помощью строки 127.0.0.1 www.banners.com), и баннеры от этого сайта больше не будут загружаться.

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

Служба DNS-клиент занимает около 2604 Кбайт памяти и запускается с правами сетевой службы (NT AUTHORITY\NetworkService) автоматически при каждом входе пользователя в систему (при этом она запускается как отдельный процесс svchost.exe). Данная служба необходима, если в сети присутствует DNS-сервер или компьютер принадлежит к Active Directory (Active Directory уже предполагает, что в сети есть DNS-сервер, ведь без него Active Directory нельзя будет установить). Если эти условия не выполняются, то службу DNS-клиент можно отключить (можно подумать, что эта служба также необходима для подключения к Интернету, но, как показали исследования, это не так, хотя без ее использования качество поиска страниц в Интернете может пострадать, поэтому не рекомендуется отключать данную службу, если вы подключены к Интернету). Для этого необходимо DWORD-параметру Start, расположенному в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Dnscache, присвоить значение 4.

Для запуска службы DNS-клиент необходимо, чтобы уже была запущена служба Драйвер протокола TCP/IP.

Для работы службы DNS-клиент также необходима библиотека dnsrslvr.dll.

Plug and Play

Служба реализует возможность автоматического распознавания и установки новых устройств формата Plug and Play. При этом для пользователя процесс установки происходит прозрачно (или с минимальным участием пользователя). Например, при подключении USB-устройства от пользователя не требуется никаких действий — служба Plug and Play сама найдет драйверы, необходимые для данного устройства, выберет из найденных драйверов тот, который более всего подходит для устройства, и установит его, после чего настроит параметры шины для работы с новым устройством.

Служба Plug and Play занимает около 100 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (при этом она запускается как часть процесса services.exe). Отключение данной службы крайне нежелательно, так как после этого система может работать нестабильно, поэтому эта служба должна всегда запускаться автоматически (параметр Start, расположенный в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PlugPlay, должен быть равен 2).

На возможность запуска данной службы не влияют никакие другие службы.

Windows Audio

Служба управляет возможностью воспроизведения звука и звуковых эффектов в Windows-программах. В частности, данная служба необходима для работы программы Windows Media Player, поэтому если она будет отключена, то проигрыватель при попытке воспроизведения файла будет выдавать сообщения о том, что звуковая плата отсутствует или для нее не установлены драйверы.

Служба Windows Audio занимает около 300 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (при этом она запускается как часть процесса svchost.exe). Если на компьютере отсутствует звуковая плата или возможность воспроизведения компьютером звуков не используется, то можно отключить данную службу. Иначе лучше ее не трогать. Для отключения службы необходимо DWORD-параметру Start, расположенному в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\AudioSrv, присвоить значение 4.

Для запуска службы Windows Audio необходимо, чтобы были также запущены службы Plug and Play и Удаленный вызов процедур (RPC). Расположение в реестре службы Plug and Play уже рассматривалось, а служба Удаленный вызов процедур (RPC) хранит свои параметры в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs.

Для работы службы Windows Audio необходима библиотека audiosrv.dll.

Автоматическое обновление

Служба предназначена для автоматического скачивания из Интернета и установки обновлений операционной системы и стандартных компонентов Windows XP. При этом сведения об уже установленных обновлениях берутся из реестра. Для этого предназначены две ветви реестра — HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix и HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates. Первая содержит список разделов, названных в честь установленных обновлений. Из этих разделов можно определить описание обновления (параметр строкового типа Fix Description), а также работоспособность обновления (DWORD-параметр Valid). Вторая ветвь реестра также включает в себя разделы с именами, соответствующими установленным обновлениям, но эти разделы содержат намного больше параметров. В частности, в данных разделах находятся сведения о дате установки обновления (параметр строкового типа InstalledDate), учетной записи пользователя, который устанавливал данное обновление (параметр строкового типа InstalledBy), а также команда, с помощью которой можно удалить установленное обновление, вернув систему к предыдущему состоянию (параметр строкового типа UninstallCommand). В этих разделах также находится вложенный раздел Filelist, определяющий те системные файлы Windows XP, которые были заменены данным обновлением.

Служба Автоматическое обновление занимает около 800 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (при этом она запускается как часть процесса svchost.exe). Эта служба является хорошим средством обновления операционной системы, но только в том случае, если компьютер подключен к Интернету и у вас много денег, чтобы платить за те мегабайты обновлений, которые для вас будет выкачивать автоматическое обновление. В противном случае службу Автоматическое обновление лучше отключить. Для этого достаточно присвоить DWORD-параметру Start значение, равное 4. Параметр расположен в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\wuauserv.

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

Беспроводная настройка

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

Служба Беспроводная настройка занимает около 270 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (при этом она запускается как часть процесса svchost.exe). Если на компьютере отсутствуют устройства, работающие в стандарте 802.11, то эту службу можно отключить. Ее также можно отключить, если для настройки и установки устройства предназначена отдельная программа, поставляемая вместе с устройством. Но в этом случае стоит внимательно проследить за тем, не нарушилась ли после отключения службы какая-то функциональная составляющая устройства, и при неправильной работе каких-нибудь функций, опять установить автоматический запуск службы Беспроводная настройка. Чтобы отключить эту службу, достаточно присвоить DWORD-параметру Start значение, равное 4. Параметр расположен в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WZCSVC.

Для запуска службы Беспроводная настройка необходимо, чтобы были запущены службы NDIS-протокол ввода/вывода пользовательского режима и Удаленный вызов процедур (RPC). При этом первая служба описывается в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ndisuio, а ветвь реестра для второй службы уже рассматривалась.

Для работы службы Беспроводная настройка необходима библиотека wzcsvc.dll.

Брандмауэр Windows/Общий доступ к Интернету (ICS)

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

Служба Брандмауэр Windows/Общий доступ к Интернету (ICS) занимает около 4360 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (при этом она запускается как часть процесса svchost.exe). Если вы используете брандмауэр сторонней фирмы и при этом не применяете функцию ICS, то данную службу можно отключить. Для этого необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess.

Для запуска службы Брандмауэр Windows/Общий доступ к Интернету (ICS) необходимо, чтобы были запущены следующие службы: Сетевые подключения и Инструментарий управления Windows. Первая служба описывается в ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netman, а вторая — в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\winmgmt.

Для работы службы Брандмауэр Windows/Общий доступ к Интернету (ICS) необходима библиотека ipnathlp.dll.

Веб-клиент

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

Служба Веб-клиент занимает около 800 Кбайт оперативной памяти и запускается с правами локальной службы (NT AUTHORITY\LocalService) автоматически при каждом входе пользователя в систему (при этом она запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WebClient.

Для запуска службы Веб-клиент необходимо, чтобы была запущена служба Перенаправить клиентов WebDav. Она описывается в ветви реестра HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Services\MRxDAV.

Для работы службы Веб-клиент необходима библиотека webclnt.dll.

Вторичный вход в систему

Служба реализует возможность запуска программ от имени другого пользователя. Если она будет остановлена, то вы не сможете воспользоваться командой runas (формат запуска программы от имени другого пользователя таков: runas / user:«пользователь» «программа», например, runas /user:администратор mmc.exe) для запуска программ или оснасток консоли с правами администратора или другого локального пользователя, потому что при запуске будет возникать ошибка. Если вы не пользуетесь данной возможностью, то можете отключить эту службу.

Служба Вторичный вход в систему занимает около 40 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (при этом она запускается как часть процесca svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\seclogon.

На возможность запуска этой службы не влияют никакие другие службы. Но для ее работы необходима библиотека seclogon.dll.

Диспетчер логических дисков

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

Служба Диспетчер логических дисков занимает около 20 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (при этом она запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dmserver.

Для запуска службы Диспетчер логических дисков необходимо, чтобы были запущены службы Plug and Play и Удаленный вызов процедур (RPC). Ветви реестра, используемые этими службами, уже рассматривались ранее.

Для того чтобы работала служба Диспетчер логических дисков, необходима библиотека dmserver.dll.

Диспетчер очереди печати

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

ПРИМЕЧАНИЕ

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

Служба Диспетчер очереди печати занимает около 4600 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (как процесс spoolsv.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Spooler.

Для запуска службы Диспетчер очереди печати необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC).

Диспетчер учетных записей безопасности

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

Служба Диспетчер учетных записей безопасности занимает около 8 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса lsass.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\SamSs.

Для запуска службы Диспетчер учетных записей безопасности необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC).

Журнал событий

Служба обеспечивает запись сообщений в стандартные журналы Windows (Система, Приложения, Безопасность), просмотреть которые можно при помощи оснастки eventvwr.msc. Далее в этой книге оснастка Просмотр событий (eventvwr.msc) будет описана подробней. Служба Журнал событий является критически важной службой для работы операционной системы, и уже работающую службу остановить нельзя. Кроме того, если автоматический запуск данной службы по каким-либо причинам будет неудачным, то компьютер начнет перезагрузку. Тем не менее после отключения данной службы компьютер будет работать стабильно, но запуск операционной системы может замедлиться в несколько раз, а журнал Просмотр событий будет пуст. Именно поэтому крайне не рекомендуется отключать эту службу.

Служба Журнал событий занимает около 200 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса services.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog.

На возможность запуска данной службы не влияют никакие другие службы. Но для работы службы Журнал событий необходима библиотека els.dll.

Защищенное хранилище

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

Служба Защищенное хранилище занимает около 460 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса lsass.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ProtectedStorage.

Для запуска службы Защищенное хранилище необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC).

Инструментарий управления Windows

Служба предоставляет информацию о конфигурации компьютера, установленных на нем программ и служб всем программам, которым она необходима для корректной работы. После отключения данной службы программы, которым необходима информация, предоставляемая службой, могут работать некорректно (кроме того, после ее отключения может некорректно работать служба Запуск серверных процессов DCOM). После отключения данной службы будут отключены службы Центр обеспечения безопасности и Брандмауэр Windows/Общий доступ к Интернету (ICS). Крайне не рекомендуется отключать эту службу.

Служба Инструментарий управления Windows запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\winmgmt.

Для запуска службы Инструментарий управления Windows необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC). Для работы данной службы нужна библиотека WMIsvc.dll.

Клиент отслеживания изменившихся связей

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

Служба Клиент отслеживания изменившихся связей занимает около 140 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Для отключения этой службы необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TrkWks.

Для запуска службы Клиент отслеживания изменившихся связей необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC). Для ее работы нужна библиотека trkwks.dll.

Модуль поддержки NetBIOS через TCP/IP

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

Служба Модуль поддержки NetBIOS через TCP/IP занимает около 2700 Кбайт оперативной памяти и запускается с правами локальной службы (NT AUTHORITY\ LocalService) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LmHosts.

Для запуска службы Модуль поддержки NetBIOS через TCP/IP необходимо, чтобы были запущены службы AFD и NetBios через TCP/IP. Для ее работы нужна библиотека lmhsvc.dll.

Обозреватель компьютеров

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

Служба Обозреватель компьютеров занимает около 70 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser.

Для запуска службы Обозреватель компьютеров необходимо, чтобы были запущены следующие службы: Сервер и Рабочая станция. Для ее работы нужна библиотека browser.dll.

Оповещатель

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

Служба Оповещатель занимает около 150 Кбайт оперативной памяти и запускается с правами локальной службы (NT AUTHORITY\LocalService) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Alerter.

Для запуска службы Обозреватель компьютеров необходимо, чтобы была запущена служба Рабочая станция. Для ее работы нужна библиотека alrsvc.dll.

Определение оборудования оболочки

Служба отвечает за автоматический запуск содержимого компакт-дисков или подключенной флэш-карты. После отключения этой службы из диалога свойств съемных дисков или компакт-дисков исчезнет вкладка Автозапуск, а также будет отключена сама возможность, реализуемая данной вкладкой. Отключение службы не влияет на возможность автозапуска дисков, за которую отвечает DWORD-параметр AutoRun из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Cdrom. Если вы не используете возможность, предоставляемую вкладкой Автозапуск, то можете смело отключать эту службу.

Служба Определение оборудования оболочки занимает около 70 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\ShellHWDetection.

Для запуска службы необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC). Для ее работы нужна библиотека shsvcs.dll.

Планировщик заданий

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

Служба Планировщик заданий занимает около 250 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule.

Для запуска данной службы необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC). Для ее работы нужна библиотека schedsvc.dll.

Рабочая станция

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

Служба Рабочая станция занимает около 70 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation.

Для работы службы необходима библиотека wkssvc.dll.

Сервер

С помощью данной службы обеспечивается общий доступ к файлам, принтерам и именованным каналам данного компьютера. Иными словами, если данная служба будет отключена, то на компьютере нельзя будет создавать общедоступные ресурсы, а сетевые компьютеры не смогут получить к нему доступ. При отключении данной службы вам не удастся изменить или просмотреть группы, к которым принадлежат пользователи компьютера, с помощью оснастки lusrmgr.msc. Если данный компьютер не подключен к сети или не должен предоставлять общий доступ, то данную службу можно отключить.

Служба Сервер занимает около 120 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver.

Для работы службы необходима библиотека srvsvc.dll.

Сетевой вход в систему

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

Служба Сетевой вход в систему занимает около 2000 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ Netlogon.

Для запуска службы необходимо, чтобы была запущена служба Рабочая станция.

Служба восстановления системы

Служба является частью программы Восстановление системы (файл rstrui.exe, расположенный в каталоге %systemroot%\SYSTEM32\Restore). С помощью этой программы можно произвести откат к предыдущим настройкам операционной системы, если после установки какой-нибудь программы или драйвера система стала функционировать неверно или перестала загружаться в обычном режиме. Можно также самостоятельно создавать точки отката, чтобы потом была возможность вернуть настройки реестра и важных системных файлов Windows в состояние, которое они имели во время создания точки отката. Одним из минусов, который отпугивает пользователей от этой программы, является свободное пространство жесткого диска в размере 200 Мбайт, которое данная программа будет отбирать для своих нужд. И тем не менее не стоит сразу отключать данную программу — лучше некоторое время попользоваться ею, а уже потом осознанно решить, нужна она вам или нет.

Служба восстановления системы запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\srservice.

Для запуска службы необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC). Для ее работы нужна библиотека srsvc.dll.

Служба времени Windows

Служба реализует функцию синхронизации системного времени локального компьютера с сервером времени. На домашних компьютерах эту функцию используют не часто, поэтому ее можно смело отключать.

Служба времени Windows занимает около 100 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Для отключения этой службы необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\W32Time.

Для работы этой службы необходима библиотека w32time.dll.

Служба индексирования

Служба предназначена для индексации содержимого файлов на локальном диске с целью быстрого поиска при помощи оснастки ciadv.msc. В следующей главе будет подробно рассмотрена данная оснастка и работа с ней, а пока поговорим о службе. Служба индексирования запускается вручную (это единственная запускающаяся вручную служба, которая будет рассмотрена) с правами локальной системы (как процесс cisvc.exe). При этом если вы никогда не пользовались возможностью поиска в содержимом индексированных файлов, то лучше отключить данную службу (для этого необходимо воспользоваться DWORD-параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\CiSvc). Иначе поговорим о параметрах реестра, которые влияют на работу данной службы, ведь их значения могут повлиять на производительность компьютера, использующего данную службу.

Все настройки службы индексирования хранятся в ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex. Большая часть находящихся здесь параметров имеет тип DWORD, поэтому будем считать, что если о типе параметра ничего не сказано, значит, он — DWORD.

■ DaemonResponseTimeout — определяет интервал времени перед повторной попыткой индексирования содержимого поврежденного файла. Можно попробовать установить значение равным 2.

■ DelayedFilterRetries — указывает количество попыток переиндексации содержимого файла, если предыдущая попытка его индексации завершилась неудачно. Если вам не так важно, чтобы служба индексирования включала в себя сведения о содержимом всех файлов, лучше этому параметру присвоить значение от 1 до 3, снизив тем самым возможное время индексации и нагрузку на процессор.

■ DelayUsnReadOnLowResource — если значение равно 1, то при нехватке системных ресурсов поле Update Sequence Number читаться не будет.

■ EventLogFlags — если значение равно 0, то в журнале событий, происходящих при индексировании содержимого, регистрации не будет. Если значение равно 2, то будут регистрироваться лишь ошибки фильтрации внедренных объектов. Рекомендуется некоторое время понаблюдать за ошибками индексации и, если частых ошибок в работе индексации не будет, лучше запретить регистрацию ошибок индексации.

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

■ FilterDelayInterval — указывает интервал времени в секундах, который служба индексации будет ожидать перед продолжением индексации, если в буфер фильтра индексации было помещено определенное количество документов (это время необходимо для очистки буфера).

■ FilterDirectories — если значение равно 0, то свойства системных каталогов не индексируются. Любое другое значение говорит об индексации свойств.

■ FilterFilesWithUnknownExstensions — если значение равно 0, то содержимое файлов с незарегистрированными расширениями индексироваться не будет. Любое другое значение говорит об индексировании этих файлов.

■ FilterIdleTimeout — определяет интервал времени в миллисекундах, по истечении которого неиспользуемые библиотеки фильтра будут выгружаться.

■ FilterRemainingThreshold — указывает количество документов в буфере, после преодоления которого начинается переиндексация содержимого локальных дисков. По умолчанию значение определяет 35 документов, но можно его увеличить.

■ FilterRetries — определяет количество попыток повторного индексирования файлов. По умолчанию значение равно 4, но если полнота индексированных файлов не так важна, то можно уменьшить его (параметр может принимать значения в пределах от 0 до 10).

■ FilterRetryInterval — указывает интервал ожидания в минутах, после которого система предпримет повторную попытку индексации содержимого документов, которые при предыдущей попытке использовались другими программами.

■ ForcedNetPathScanInterval — определяет интервал времени, по истечении которого служба индексации начнет переиндексацию содержимого каталогов, даже если в нем не было изменений.

■ IsEnumAllowed — если значение равно 0, то перечисления при индексации использоваться не будут, что снижает нагрузку на сервер.

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

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

■ IsIndexingW3SVC — определяет, будет ли индексироваться содержимое файлов сервера LLS. Если значение равно 0, то индексирования не будет.

■ LowResourceSleep — указывает интервал ожидания в секундах перед продолжением индексации, если ресурсов компьютера для продолжения индексации не хватает. Параметр может принимать значения в диапазоне от 5 до 1200.

■ MaxFilesizeFiltered — определяет максимальный размер файлов, которые допущены к индексации. Если размер файла превышает максимальный размер файла для индексации, то содержимое файла индексироваться не будет. По умолчанию значение равно 256 Кбайт.

Для запуска службы необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC). Для корректной работы службы нужны все библиотеки, определенные в REG_MULTI_SZ-параметре DLLsToRegister из ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ContentIndex.

Служба сообщений

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

Служба сообщений занимает около 70 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Messenger.

Для запуска службы необходимо, чтобы были запущены службы Удаленный вызов процедур (RPC), Рабочая станция, Интерфейс NetBIOS и Plug and Play. Для работы службы нужна библиотека msgsvc.dll.

Службы IPSEC

Служба управляет политикой безопасности IP-протокола, а также запускает ISAKMP/Oakley (IKE) и драйвер IP-безопасности. Благодаря этой службе возможно использование протокола IPSec для защиты и шифрования данных, передаваемых протоколом IP. При этом для реализации защищенной передачи данных по протоколу IP необходимо, чтобы служба была запущена на обоих компьютерах, участвующих в соединении (а также соответствующим образом настроена). Как правило, в домашних сетях нет необходимости в этой службе.

Служба занимает около 900 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса lsass.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PolicyAgent.

Для запуска данной службы необходимо, чтобы были запущены следующие службы: Удаленный вызов процедур (RPC), Драйвер IPSEC и Драйвер протокола TCP/IP.

Службы терминалов

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

Служба терминалов занимает около 900 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Для отключения этой службы необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TermService.

Для запуска службы необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC). Для работы службы нужна библиотека termsrv.dll.

Справка и поддержка

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

Служба Справка и поддержка занимает около 100 Кбайт оперативной памяти и запускается с правами локальной системы (Local System) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\helpsvc.

Для запуска службы необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC). Для работы службы нужна библиотека pchsvc.dll.

Удаленный реестр

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

Служба Удаленный реестр занимает около 60 Кбайт оперативной памяти и запускается с правами локальной службы (NT AUTHORITY\LocalService) автоматически при каждом входе пользователя в систему (запускается как часть процесса svchost.exe). Чтобы отключить эту службу, необходимо воспользоваться параметром Start из ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Services\RemoteRegistry.

Для запуска службы необходимо, чтобы была запущена служба Удаленный вызов процедур (RPC). Для работы службы нужна библиотека regsvc.dll.

Файловая система

Настройки файловой системы являются критически важными для оптимизации скорости работы компьютера. Как правило, если параметры реестра, описывающие работу файловой системы, не оптимизированы, то возможно снижение скорости работы компьютера на 10-70%. Все настройки файловой системы Windows XP расположены в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\FileSystem (в основном для хранения настроек используются параметры DWORD-типа). Рассмотрим некоторые из этих параметров.

ВНИМАНИЕ

Как уже говорилось, настройки файловой системы являются критически важными, поэтому перед их изменением настоятельно рекомендуется сделать копию файлов реестра. Другой рекомендацией является поочередное изменение параметров файловой системы. Лучше всего изменить сначала значение одного параметра, после этого некоторое время поработать в системе (обязательно необходимо перезагрузить компьютер, чтобы изменения вступили в силу). Если после изменения параметра система работает стабильно и скорость работы при этом не уменьшилась, то можно попробовать изменить значение другого параметра.

■ ConfigFileAllocSize — определяет минимальный размер файла (в килобайтах), для которого при его создании выполняется поиск оптимального места на диске. Под оптимальным понимается то место файловой системы, для записи в которое нет необходимости во фрагментации записываемого файла. По умолчанию данный параметр отсутствует в реестре.

■ Win95TruncatedExtensions — если значение равно 1, то при сравнении расширений файлов, расширения, состоящие больше чем из трех символов, будут усекаться до трех. Это может быть необходимо для совместимости с предыдущими версиями Windows.

■ NtfsDisable8dot3NameCreation — если значение равно 1, то система небудет генерировать имена файлов в формате 8.3 (восемь символов на имя файла и три символа на расширение файла), используемом в операционной системе MS-DOS.

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

■ NtfsEncryptionService — этот параметр строкового типа указывает имя службы, которая обеспечивает шифрование файлов в системе NTFS. По умолчанию не существует.

■ NtfsMftZoneReservation — определяет количество места, занимаемого на жестком диске главной файловой таблицей. Параметр указывает не размер занимаемого места, а условие, на основе которого система сама выберет необходимый размер. При этом параметр может принимать следующие значения:

• 1 — файловая система будет настроена для хранения малого количества файлов, которые при этом будут иметь большой размер;

• 4 — файловая система будет настроена для хранения большого количества файлов, которые при этом будут иметь маленький размер;

• значения в пределах от 1 до 4 являются промежуточными.

По умолчанию параметр не существует.

Приоритеты прерываний и процессов первого плана

Существует возможность указания системе приоритета для конкретного прерывания. В зависимости от использования прерывания повышение его приоритета может повысить скорость работы компьютера. Можно также указать приоритет процесса первого плана (то есть программы, с которой пользователь работает в данный момент). Обе эти возможности реализуются с помощью ветви реестра HKEY_LOCAL_MACHINE\ SYSTEM\CurrentControlSet\Control\PriorityControl, содержащей следующие параметры DWORD-типа.

■ IRQ08Priority — если значение равно 1, то восьмое прерывание будет считаться приоритетным (как правило, восьмое прерывание является прерыванием CMOS и часов), что может повысить скорость работы компьютера. Можно также изменить и приоритетность других прерываний. Для этого достаточно создать этот параметр с указанием другого прерывания; например для прерывания 9 (ACPI-совместимый компьютер) необходимо создать параметр IRQ09Priority и присвоить ему значение 1.

ПРИМЕЧАНИЕ

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

■ Win32PrioritySeparation — определяет длительность кванта времени для программы переднего плана. Благодаря этому повышается производительность работы программы, с которой в данный момент работает пользователь. Данный параметр может принимать следующие значения:

• 0 — каждый квант времени для программы, работающей на переднем плане, увеличивается в 6 раз;

• 1 — квант времени увеличивается в 12 раз;

• 2 — квант увеличивается в 18 раз. Данное значение параметра используется по умолчанию.

ПРИМЕЧАНИЕ

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

Количество оперативной памяти, используемой файловой системой

При работе компьютера файловая система Windows XP резервирует определенный размер оперативной памяти для операций I/O (операций чтения/записи). Чем больше будет размер резервируемой памяти, тем быстрее будут происходить такие операции файловой системы, как открытие папок и файлов, перемещение, копирование и удаление файлов и папок.

По умолчанию используются следующие размеры резервируемой памяти:

■ для 32 Мбайт оперативной памяти — 4 Кбайт;

■ 64 Мбайт оперативной памяти — 8 Кбайт;

■ 128 Мбайт оперативной памяти — 16 Кбайт;

■ 256 Мбайт оперативной памяти — 64 Кбайт;

■ 512 Мбайт оперативной памяти — 128 Кбайт.

Можно также самостоятельно указать количество используемой для операций I/O памяти. Для этого применяется DWORD-параметр IOPageLockLimit, расположенный в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. По умолчанию не существует.

Для повышения производительности системы можно воспользоваться DWORD-параметром LargeSystemCache, расположенным в ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. Если значение этого параметра равно 1, то 4 Мбайт оперативной памяти будет дополнительно зарезервировано для кэша файловой системы.

Альтернативные подсистемы

Кроме подсистемы Windows, операционная система Windows XP поддерживает и другие подсистемы. Например, к поддерживаемым ею подсистемам относится Posix. Она очень редко применяется пользователями и тем не менее постоянно отбирает некоторый объем оперативной памяти. Если вы точно знаете, что никогда не будете пользоваться этой подсистемой, то можно удалить упоминания о ней в реестре (или просто изменить названия параметров, в которых это упоминание записано), после чего занимаемая подсистемой оперативная память будет освобождена.

Список поддерживаемых операционной системой Windows XP подсистем расположен в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Subsystems. Ветвь может хранить следующие параметры строкового типа.

■ Optional — определяет подсистему Posix и содержит значение Posix. Если вы не используете эту систему, то можно изменить название параметра, чтобы он больше не применялся.

■ Posix — указывает файл, используемый для реализации работы подсистемы Posix. Если вы не используете эту систему, то можно изменить название параметра, чтобы он больше не применялся.

Диски

Отдельно хотелось бы сказать о некоторых настройках дисков, а также о настройках обслуживания дисков. Например, об автоматической дефрагментации дисков или о настройке скорости работы жестких дисков. В основном речь в этом разделе пойдет о жестких дисках, хотя несколько слов будет сказано и о гибких.

Автоматическая дефрагментация

Одним из нововведений Windows XP является автоматическая дефрагментация файловой системы при простое компьютера в течение определенного промежутка времени (10-30 минут). При этом по умолчанию также выполняется дефрагментация загрузочного диска и файлов, необходимых для загрузки компьютера. Настройки автоматической дефрагментации расположены в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\BootOptimizeFunction. Ветвь может содержать следующие параметры строкового типа.

■ Enable — определяет, включена ли функция автоматической дефрагментации файловой системы диска. По умолчанию его значение равно Y, то есть дефрагментация включена. Если присвоить этому параметру значение N, то дефрагментация будет запрещена.

■ OptimizeComplete — показывает, была ли успешной предыдущая попытка дефрагментации. Если значение равно yes, то дефрагментация была успешной. Если же значение равно no, то дефрагментация выполнена не была. При этом причина, по которой не была выполнена дефрагментация, будет записана в следующий рассматриваемый параметр.

■ OptimizeError — определяет причину, по которой не была выполнена дефрагментация при предыдущей попытке ее выполнения.

Проверка диска при неправильном выключении компьютера

По умолчанию при неправильном выключении компьютера перед запуском операционной системы проверяется состояние файловой системы жестких дисков. Настройки этой проверки также можно изменить. Например, можно изменить время, которое ожидает операционная система перед тем, как начать проверку. По умолчанию операционная система в течение 10 секунд ожидает решения пользователя — начать проверку или отменить ее. Количество секунд ожидания системы определено в DWORD-параметре AutoChkTimeout, расположенном в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager. Если значение данного параметра равно 0, то система будет начинать проверку жесткого диска немедленно, не ожидая решения пользователя. Остальные значения определяют количество секунд, которые система будет ожидать ответа. По умолчанию параметр не существует.

В этой же ветви реестра расположен параметр REG_MULTI_SZ-типа, имеющий название BootExecute. Его значение определяет список системных служб, которые будут запускаться при включении компьютера. По умолчанию параметр содержит лишь строку autocheck autochk *, которая как раз и запускает службу проверки жестких дисков. Другими словами, если удалить эту строку, то при неверном выключении компьютера проверка жестких дисков выполняться не будет.

Режимы работы жестких дисков

Одной из проблем, которая может произойти с жесткими дисками UltraATA, является неверное определение скоростного режима, в котором может работать жесткий диск. Вследствие этого жесткий диск будет работать на заведомо меньшей скорости, чем максимально поддерживаемая им. Чтобы решить эту проблему, необходимо воспользоваться реестром — нужные сведения расположены в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96A-E325-11CE-BFC1-08002BE10318}. Ветвь содержит подразделы, имеющие следующий формат — 0000, 0001, 0002. Каждый из них определяет настройки одного контроллера жесткого диска. При этом если в системе находится только один жесткий диск, то, как правило, сведения о нем хранятся в подразделе 0000. Этот подраздел может включать в себя следующие параметры DWORD-типа.

■ EnableUDMA66 — определяет, включен ли режим UDMA66 для данного диска. Если ваш диск поддерживает этот режим, но при этом работает в режиме UDMA33, то стоит попробовать воспользоваться этим параметром для перехода на более быстрый режим.

■ MasterDeviceTimingModeAllowed и SlaveDeviceTimingModeAllowed — также определяют режим работы жестких дисков. Первый из них отвечает за канал Master, а второй — за канал Slave. Параметры указывают, в каком максимальном режиме могут работать диски. Если значения этих параметров равны 0xffffffff, то диск может работать в режиме UDMA, а если значения равны 0x0000001f, то только в PIA.

■ MasterDeviceTimingMode и SlaveDeviceTimingMode — если ваш жесткий диск может работать в режиме UDMA, то эти параметры определят сам режим, который будет использоваться. Вот некоторые значения, которые могут принимать данные параметры:

• 0x00010010 — жесткий диск использует режим UDMA Mode 5 (АТА100);

• 0x000fffff – режим UDMA Mode 5 (ATA100);

• 0x00008010– режим UDMA Mode 4 (ATA66);

• 0x0000ffff – режим UDMA Mode 4 (ATA66);

• 0x00002010 – режим UDMA Mode 2 (ATA33);

• 0x00000410 — режим Multi-Word DMA Mode 2 и PIO 4.

Сообщения о недостатке свободного места на диске

По умолчанию если на диске остается меньше 10% свободного места, то система выдает сообщение об этом и просит очистить диск от ненужных программ. В наше время, когда жесткие диски объемом в 200 Гбайт не редкость, порог в 10% уже неактуален — смешно получать сообщение с просьбой очистки диска, если на нем еще остается 20 Гбайт свободного места. С помощью реестра существует возможность либо вообще заблокировать отображение таких сообщений, либо уменьшить порог свободного места, при котором эти сообщения начнут выдаваться.

Чтобы определить порог выдачи сообщений о нехватке места, необходимо воспользоваться DWORD-параметром DiskSpaceThreshold, расположенным в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters. Значение этого параметра определяет процент занимаемого на диске места, преодоление которого станет стартовым моментом в выдаче сообщений о нехватке места. Следовательно, в шестнадцатиричной системе данный параметр может принимать значения в диапазоне от 0 до 64. По умолчанию не существует.

Можно вообще запретить выдачу сообщений о нехватке места. Для этого применяется DWORD-параметр NoLowDiskSpaceChecks, расположенный в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer. Если значение этого параметра равно 1, то выдача сообщений о нехватке места на диске будет прекращена. По умолчанию не существует.

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

К другим настройкам операционной системы можно отнести настройки автоматического завершения работы программ и служб при завершении работы компьютера, выгрузки библиотек при завершении работы программ, а также некоторые другие настройки, которые будут рассмотрены.

Автоматическое завершение программ при выключении компьютера

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

Если данный диалог выводится очень редко, то с ним еще можно смириться. Но если он выводится практически при каждом завершении работы системы? Тогда реестр Windows позволяет задать для завершения работы системы режим автоматического завершения работы зависших программ. В этом случае, если какая-то программа или служба не отвечает в течение 20 секунд, которые будут даваться на завершение работы процессов, то работа зависшей программы будет завершаться автоматически. При этом следует учитывать, что, поскольку выполняется принудительное завершение работы процесса, существует вероятность, что все данные, которыми в это время оперировал зависший процесс, будут утеряны.

Чтобы заставить операционную систему при выходе автоматически завершать работу процессов, которые не завершили свою работу в течение определенного времени (по умолчанию 20 секунд), необходимо присвоить параметру строкового типа AutoEndTasks значение 1. Он расположен в ветви реестра HKEY_CURRENT_USER\Control Panel\Desktop.

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

■ HungAppTimeout — определяет интервал времени (в миллисекундах), в течение которого программа должна ответить на запрос системы. Если в течение этого времени программа не ответила на запрос, то она считается зависшей. Значение не используется при завершении работы компьютера — параметр предназначен для определения зависших программ в процессе работы пользователя в системе. При этом система не предпринимает никаких действий по завершению работы зависшей программы, даже если значение параметра AutoEndTasks равно 1.

Параметр расположен в ветви реестра HKEY_CURRENT_USER\Control Panel\Desktop. По умолчанию его значение равно 5000, что соответствует интервалу ожидания ответа, равному 5 секунд. В принципе, значение данного параметра можно уменьшить до 2000, что соответствует 2 секундам. Хотя никакой функциональной разницы от этого изменения не будет — просто на три секунды раньше программа станет считаться зависшей. При этом если программа все-таки ответит на запрос системы, то она опять станет считаться работающей.

■ WaitToKillAppTimeout — указывает интервал времени (в миллисекундах), в течение которого программа должна закончить свою работу при завершении работы операционной системы. Если программа не завершит свою работу в течение указанного интервала времени, то она будет завершена автоматически. При этом все несохранённые данные будут утеряны.

Параметр расположен в ветви реестра HKEY_CURRENT_USER\Control Panel\Desktop. По умолчанию его значение равно 20000, что соответствует интервалу ожидания ответа, равному 20 секунд. Этого интервала с избытком хватает на завершение работы программ при завершении работы операционной системы. Более того, если во время завершения работы операционной системы довольно редко зависают программы, то значение параметра WaitToKillAppTimeout можно уменьшить до 5000 — интервала в 5 секунд, как правило, также всегда хватает для корректного завершения работы программ.

■ WaitToKillServiceTimeout — расположен в ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control. Его значение определяет интервал времени (в миллисекундах) в течение которого служба должна закончить свою работу при завершении работы операционной системы. По умолчанию значение этого параметра равно 20000. Этого также с избытком хватает для завершения работы служб, но можно присвоить этому параметру значение, равное, например, 7 000. Ниже этого значения лучше не опускаться, ведь, как часто бывает, службы оперируют информацией, критичной для корректной работы операционной системы (тем более, большая часть служб запущена с правами системы, то есть может изменять значения многих ветвей реестра), некорректная запись которой может привести к повреждению реестра.

Выгрузка библиотек при выходе из программы

По умолчанию система при завершении работы программы оставляет в памяти ее библиотеки на случай, если через некоторое время она снова будет запущена. С одной стороны, плюс этого метода очевиден — следующий запуск будет выполнен быстрее. Но, с другой стороны, очевиден и минус этого метода — библиотеки программы занимают место в оперативной памяти, которого иногда и так катастрофически не хватает.

Настройками выгрузки библиотек программ руководит параметр DWORD-типа AlwaysUnloadDll, расположенный в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer. По умолчанию значение этого параметра равно 0 — это говорит о том, что библиотеки не будут выгружаться вместе с программой. Если же необходимо выгружать библиотеки, то следует присвоить этому параметру значение 1.

Функция упреждающей выборки

Одним из нововведений операционной системы Windows XP стала возможность упреждающей выборки (prefetching) часто используемых программ. Иными словами, при первом запуске программы (и при запуске операционной системы) части ее кода копируются в специальную папку (%systemroot%\prefetch), а при следующих запусках программы эти части сразу берутся из папки, тем самым ускоряя запуск программы. Эта возможность включена по умолчанию.

Настройки упреждающей выборки расположены в ветви системного реестра Windows HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters. При этом параметром, управляющим работой функции упреждающей выборки, является DWORD-параметр EnablePrefetcher. Он может содержать следующие значения.

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

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

■ 2 — задействовать только возможность упреждающей выборки при запуске компьютера. Возможность упреждающей выборки запускаемых приложений использоваться не будет.

■ 3 — задействовать обе возможности. Это значение присвоено по умолчанию.

Настройки поведения при крахе системы или программы

При крахе операционной системы или программы (под крахом понимается ошибка, после появления которой работа программы или системы аварийно останавливается) задействуется сразу несколько механизмов операционной системы Windows XP.

К ним можно отнести запись ошибки в журнал событий (eventvwr.msc), попытку выполнения отладки программы, отправку сведений об ошибке корпорации Microsoft, создание дампа памяти, если произошел крах операционной системы.

Подробнее работа журнала событий будет рассмотрена при описании консоли управления Microsoft, сейчас же будут описаны параметры реестра, относящиеся к отправке корпорации Microsoft сообщений о возникшей ошибке. Механизм отправки сообщений об ошибках задумывался как способ поиска и устранения ошибок в программах корпорации Microsoft. При этом попытка отправки отчета об ошибке происходит даже в том случае, когда компьютер не подключен к Интернету. Именно поэтому иногда необходимо отключить отправку сообщений об ошибках. Например, когда компьютер не имеет доступа к Интернету или когда нет желания платить за дополнительный трафик.

Все настройки отправки сообщений расположены в ветви системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PCHealth\ErrorReporting. Она содержит как параметры, имеющие тип DWORD, так и подразделы. Среди параметров, которые присутствуют в этой ветви, можно выделить следующие.

■ AllOrNone — с его помощью можно определить, сообщения об ошибках в каких программах будут отправляться Microsoft. Если значение этого параметра равно 1, то будут отправляться сообщения об ошибках во всех приложениях, установленных на компьютере. Если же значение этого параметра равно 0, то сообщения об ошибках будут отправляться только в приложениях, перечисленных в подразделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PCHealth\ErrorReporting\InclusionList. При этом также можно определить приложения, сообщения об ошибках в которых не будут отправляться корпорации Microsoft. Для этого предназначена ветвь реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PCHealth\ErrorReporting\ExclusionList. Оба приведенных подраздела реестра должны содержать параметры DWORD-типа с именами, соответствующими определенной программе (например, для описания программы Проигрыватель Windows Media имя параметра должно быть равно wmplayer.exe). Значения этих параметров должны быть равны 1.

■ DoReport — определяет, будет ли задействован механизм отправки сообщений о крахе программы Microsoft. Если значение этого параметра равно 0, то при возникновении ошибки в приложении никаких отчетов корпорации Microsoft отправляться не будет.

■ DoTextLog — при установке значения равным 0 не будут записываться сообщения о крахе программ в журнал. По умолчанию параметр не существует.

■ IncludeKernelFaults — если значение равно 0, то при крахе операционной системы не будет происходить попытка отправки сообщения Microsoft. Значение этого параметра используется, только если значение параметра DoReport равно 1, а значение параметра ShowUI равно 3.

■ IncludeMicrosoftApps — если значение равно 0, то при крахе программ, созданных Microsoft, не будет происходить попытка отправки сообщения Microsoft. Значение данного параметра используется, только если значение параметра DoReport равно 1, а значение параметра ShowUI равно 3.

■ IncludeWindowsApps — если значение равно 0, то при крахе компонентов операционной системы Windows XP не будет происходить попытка отправки сообщения Microsoft. Значение данного параметра используется, только если значение параметра DoReport равно 1, а значение параметра ShowUI равно 3.

Отдельно можно определить настройки отправки отчетов об ошибках в продуктах из комплекта Office. Для этого предназначена ветвь реестра HKEY_CURRENT_USER\Software\Microsoft\Office\10.0\Common. Она содержит следующие параметры DWORD-типа.

■ DWNoExternalURL — если значение равно 1, то соединение с сервером Microsoft для отправки сообщений об ошибках будет запрещено.

■ DWNoFileCollection — при установке значения равным 1 будет запрещена отправка файлов, запрашиваемых сервером обработки ошибок (иногда серверу обработки ошибок необходимы дополнительные файлы для определения причины возникшей ошибки, в этом случае он отправляет запрос на передачу этих файлов).

■ DWNoSecondLevelCollection — если значение равно 1, то будет запрещена отправка серверу обработки ошибок файлов, используемых программой, в которой произошла ошибка, а также содержимого реестра компьютера пользователя.

■ DWNeverUpload — при установке значения равным 1 будет запрещена загрузка файлов на удаленный компьютер.

По умолчанию параметры не существуют.

Кроме генерации отчетов об ошибках, операционная система по умолчанию запускает стандартный отладчик drwtsn.exe для попытки восстановления работы программы. Если эта возможность вам также не нужна (не многие пользователи в наше время знакомы с «Ассемблером»), то можно отключить запуск отладчика. Для этого достаточно параметру строкового типа Auto присвоить значение 0. Он расположен в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug. В данной ветви также присутствует параметр строкового типа Debugger, который определяет путь к программе для отладки приложения.

Если же произошел крах системы, после которого нормальная работа операционной системы невозможна, то система записывает в файл дамп памяти. В этом дампе находится содержимое памяти, вызвавшее неустранимую ошибку. После записи дампа памяти система перезагружает компьютер или выводит экран BSOD («синий экран смерти»). Как правило, обычным пользователям записываемый дамп памяти совершенно не нужен — что с ним делать? Поэтому можно отключить запись дампа памяти. Настройки поведения системы при аварийной остановке находятся в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl. Она включает в себя следующие параметры.

■ CrashDumpEnabled — этот параметр DWORD-типа определяет, будет ли система записывать дамп памяти, и если да, то какой размер дампа для этого будет использоваться. Если значение параметра равно 0, то запись дампа памяти при ошибке будет запрещена. Если значение равно 1, то при аварийной остановке будет создан малый дамп памяти (размером 64 Кбайт). Если значение равно 2, то при ошибке будет создаваться дамп памяти ядра. Если же значение равно 3, то будет создаваться файл, содержащий полный дамп памяти (равный объему установленной в системе оперативной памяти).

■ DumpFile — параметр REG_EXPAND_SZ-типа указывает путь к файлу (и название файла), в который будет записываться полный дамп памяти (если значение параметра CrashDumpEnabled равно 3). Например, по умолчанию значение равно %systemRoot%\Memory.dmp.

■ KernelDumpOnly — если значение данного параметра DWORD-типа равно 1, то при ошибке в работе операционной системы в журнал отладки будет записываться только информация о состоянии ядра операционной системы при ошибке. Если же значение равно 0, то в журнал будут заноситься не только сведения о состоянии ядра, но и сведения о состоянии памяти и всех остальных устройств, установленных на компьютере. По умолчанию параметр не существует.

■ LogEvent — при установке значения этого параметра DWORD-типа равным 0 в системный журнал не будут записываться сведения о произошедших ошибках в работе операционной системы.

■ MinidumpDir — этот параметр REG_EXPAND_SZ-типа определяет путь к каталогу, в который будут записываться файлы малого дампа, если значение параметра CrashDumpEnabled равно 1. Стоит заметить, что в случае использования создания полного дампа памяти будет происходить запись дампа в единственный файл — при каждой новой ошибке данный файл будет переписываться. Если же используются малые дампы памяти, то для каждой ошибки будет создаваться свой файл малого дампа памяти. По умолчанию значение параметра равно %SystemRoot%\Minidump.

■ Overwrite — параметр DWORD-типа, указывает, будет ли переписываться файл журнала, если достигнут предел этого файла. Если значение равно 1, то при достижении предела файла журнала этот файл будет удален, а на его месте будет создан новый файл. Если же значение равно 0, то в файл журнала не будет записываться информация об ошибке, если он уже существует. По умолчанию значение этого параметра равно 1.

■ SendAlert — этот параметр DWORD-типа определяет, будет ли послано сообщение о произошедшей ошибке администратору. По умолчанию значение равно 1, то есть сообщения администратору отсылаться будут.

По умолчанию, если возникает ошибка оболочки Windows XP, система автоматически перезагружает оболочки. За это отвечает DWORD-параметр AutoRestartShell, расположенный в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon. Если его значение равно 1, то перезагрузка оболочки при ошибке в ней будет выполняться. Существует также параметр, определяющий, будет ли выполняться отладка процесса csrss.exe, если в нем произойдет ошибка. Он находится в той же ветви, что и ранее рассмотренный параметр, и называется DebugServerCommand (имеет строковый тип). По умолчанию значение этого параметра равно по, то есть данный процесс не отлаживается. Чтобы разрешить отладку этого процесса, необходимо присвоить параметру значение yes. Можно также определить, будет ли автоматически перезагружаться компьютер при аварийной остановке операционной системы («синий экран смерти», BSOD). Для этого используется DWORD-параметр AutoReboot, расположенный в ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl. Если значение этого параметра равно 1, то компьютер будет автоматически перезагружаться. Если же значение равно 0, то при аварийной остановке системы будет выводиться «синий экран смерти».

Размер кэша второго уровня

Существует возможность указания размера кэша второго уровня процессора, который установлен в системе. Для этого применяется параметр DWORD-типа SecondLevelDataCache. Если его значение равно 0, то размер кэша будет определяться HAL автоматически (если это сделать не получится, то будет считаться, что кэш второго уровня имеет размер 256 Кбайт). Если же данный параметр имеет отличное от нуля значение, то оно и будет равно размеру кэша второго уровня в байтах.

Сеть и сетевые компоненты

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

Удаленный доступ

Удаленным доступом (DialUP) называют получение доступа к разрешенным папкам компьютера с помощью модема или виртуального частного соединения (VPN). Поскольку VPN является не таким уж частым гостем на домашних компьютерах пользователей, то в данной главе будет рассказано только о настройках модема.

HKEY_CURRENT_USER\Software\Microsoft\RAS Phonebook

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

■ PopupOnTopWhenRedialing — определяет, будет ли выводиться сообщение об ошибке при неудачном дозвоне к провайдеру. Если значение этого параметра равно 0, то сообщение выводиться не будет. По умолчанию значение этого параметра равно 1.

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

Параметры имеют DWORD-тип.

НKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000

Эта ветвь реестра содержит настройки первого модема (если на компьютере установлено несколько модемов, то ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318} будет включать в себя несколько подразделов) как класса оборудования. При этом раздел {4D36E96D-E325-11CE-BFC1-08002BE10318} может иметь и другой GUID. В этом случае класс модемов необходимо искать по параметру строкового типа Class, расположенному в ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{GUID-номер класса}. Для класса модемов данный параметр должен содержать значение Modem. Соответствие стандартных классов устройствам, в них описанным, можно просмотреть в файле certclas.inf, расположенном в каталоге %systemroot%\inf.

Ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000 может хранить следующие параметры.

■ AttachedTo — этот параметр строкового типа определяет номер СОМ-порта, по которому будет работать данный модем. Например, значение параметра может быть равно СОМ1.

■ Blind_Off — параметр строкового типа, указывает командную строку, используемую для обнаружения сигнала в линии. Например, значение параметра может быть равно Х5. Параметр может находиться либо в описываемой ветви, либо в ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000\Settings.

■ Blind_On — этот параметр строкового типа определяет командную строку, используемую для обнаружения сигнала в линии. Например, значение параметра может быть равно X3. Параметр может находиться либо в описываемой ветви, либо в ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\0000\Settings.

■ InactivityScale — параметр BINARY-типа, указывает коэффициент, используемый для вычисления тайм-аута подключения.

ПРИМЕЧАНИЕ

Содержимое приведенной выше ветви реестра более подробно описано в базе данных реестра, содержащейся на компакт-диске, поставляемом с книгой.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\Parameters

Эта ветвь реестра хранит настройки службы удаленного доступа. В ней могут находиться следующие параметры DWORD-типа.

■ DisableSavePassword — определяет, будет ли доступен флажок Сохранять имя пользователя и пароль при удаленных соединениях. Если значение равно 1, то флажок будет недоступен. По умолчанию значение равно 0.

■ NumberOfRings — указывает количество дозвонов, которое будет выполнять компьютер при соединении с провайдером.

■ LimitSimultaneousIncomingCalls — определяет максимальное возможное количество входящих звонков на удаленное подключение. Если значение равно 0, то данному компьютеру будет запрещено принимать входящие вызовы на удаленное подключение. По умолчанию значение равно 3.

■ LimitSimultaneousOutgoingCalls — указывает максимальное возможное количество исходящих звонков на удаленное подключение. Если значение равно 0, то данному компьютеру будет запрещено инициировать (отправлять вызовы) на удаленное подключение. По умолчанию значение равно 4.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RasMan\PPP

Эта ветвь реестра хранит настройки протокола PPP, используемого службой удаленного доступа для организации подключения с помощью модема. В ветви может находиться параметр SecurePVN. Значение этого параметра DWORD-типа определяет, будет ли использоваться протокол MS-CHAPv2 (вторая версия этого протокола считается более защищенной, чем первая) при соединении с применением протокола PPTP. По умолчанию значение равно 0, то есть протокол MS-CHAPv2 использоваться не будет.

Но, кроме параметров, раздел содержит и вложенные подразделы. Например, в раздел PPP вложен подраздел EAP. Он определяет настройки протокола обеспечения безопасности EAP и может включать в себя другие вложенные подразделы.

■ 13 — настройки из данной ветви реестра применяются, если в списке, открываемом при установке переключателя в положение Протокол расширенной проверки подлинности (EAP) (данный переключатель расположен в диалоговом окне Дополнительные параметры шифрования, открываемом при нажатии кнопки Параметры на вкладке Безопасность свойств модема), выбран элемент Смарт-карта или иной сертификат.

■ 25 — настройки применяются, если в списке, открываемом при установке переключателя в положение Протокол расширенной проверки подлинности (ЕАР), выбран элемент Защищенные EAP (PEAP).

■ 26 — настройки из данной ветви реестра применяются, если в списке, открываемом при установке переключателя в положение Протокол расширенной проверки подлинности (ЕАР), выбран элемент Безопасный пароль (EAP-MSCHAP v2).

■ 4 — настройки применяются, если в списке, открываемом при установке переключателя в положение Протокол расширенной проверки подлинности (ЕАР), выбран элемент MD5-задача.

Все эти подразделы могут содержать следующие параметры.

■ FriendlyName — этот параметр DWORD-типа указывает название, отображаемое в списке, открываемом при установке переключателя в положение Протокол расширенной проверки подлинности (ЕАР).

■ RolesSupported — параметр DWORD-типа, определяет поддерживаемую роль данного способа аутентификации. Параметр имеет одну интересную особенность — с его помощью можно исключить из списка, открываемого при установке переключателя в положение Протокол расширенной проверки подлинности (EAP), возможность использования соответствующего способа аутентификации (то есть скрыть соответствующий элемент списка). Например, чтобы из списка скрыть элемент Смарт-карта или иной сертификат, достаточно данному параметру, расположенному в подразделе 13, присвоить значение 1 (по умолчанию значение параметра равно 2). Если же присвоить значение 9 (по умолчанию значение параметра равно a) данному параметру из подраздела 4, то из списка исчезнет элемент MD5-задача.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RemoteAccess\Parameters

Эта ветвь реестра принадлежит службе маршрутизации и удаленного доступа. В ней могут находиться следующие параметры DWORD-типа.

■ AutoDisconnect — определяет время задержки в секундах, после которого неактивное соединение с удаленным сервером будет отключено.

■ CallbackTime — указывает задержку перед инициализацией отзыва. Он может принимать значения в диапазоне от 2 до 12.

Но, кроме параметров, описываемая ветвь реестра может содержать и вложенные подразделы. Например, к таким подразделам можно отнести AccountLockout, параметры которого определяют поведение системы в случае неверного ввода пароля пользователя при попытке удаленного доступа. Данный подраздел может включать в себя следующие параметры DWORD-типа.

■ MaxDenials — определяет количество попыток неверного ввода пароля при удаленном доступе, после которого учетная запись данного пользователя будет заблокирована.

■ ResetTime (mins) — указывает интервал времени (в минутах), на который будет заблокирована учетная запись пользователя, превысившего количество вводов неверного пароля.

Стек протоколов TCP/IP

Стек протоколов TCP/IP является основным и единственным способом взаимодействия конечного компьютера с глобальной сетью Интернет, а также основным стеком взаимодействия с другими компьютерами сети. Именно поэтому было решено рассказать в этой главе и о некоторых настройках стека TCP/IP. Все настройки стека TCP/IP хранятся в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters. Она может содержать следующие параметры DWORD-типа.

■ ArpCacheLife — указывает время жизни записей в ARP-кэше.

■ DefaultTTL — определяет время жизни пакетов (TTL), указываемое в заголовках пакетов. Время жизни пакета — это количество маршрутизаторов, через которые может пройти пакет, после чего он станет считаться утерянным и будет уничтожен. Каждый маршрутизатор, передающий пакет, уменьшает его время жизни на 1. Когда время жизни становится равным нулю, следующий принимающий пакет маршрутизатор уничтожает его.

По умолчанию значение равно 0х00000080, но параметр может принимать значения от 0х00000001 до 0х00000100.

■ DisableTaskOffload — определяет, будет ли при взаимодействии с сетевым компьютером использоваться дополнительный сопроцессор сетевой карты. Использование дополнительного сопроцессора разгружает работу процессора, установленного на материнской плате компьютера, но не все сетевые карты имеют в своем составе дополнительные сопроцессоры.

По умолчанию значение равно 1, то есть, даже если сетевая карта имеет дополнительный сопроцессор, он будет отключен. Чтобы включить работу сопроцессора, необходимо присвоить этому параметру значение 0.

■ EnablePMTUBHDetect — указывает, будет ли при передаче пакетов выполняться поиск маршрутизаторов типа «черная дыра». По умолчанию поиск данных маршрутизаторов отключен, то есть параметр имеет значение 0. Установка значения параметра равным 1 приводит к дополнительной затрате времени на стадии установки соединения.

ПРИМЕЧАНИЕ

Маршрутизаторы типа «черная дыра» не возвращают пакеты типа ICMP Destination Unreachable в случае, если им нужно фрагментировать пакет с установленным флагом, запрещающим фрагментацию. Именно такие пакеты будут использоваться TCP для обнаружения MTU пути. Если после нескольких попыток передачи пакетов с запрещенной дефрагментацией не было получено ответа, то считается, что маршрутизатор имеет тип «черная дыра». Если подтверждение будет получено, то MSS будет уменьшено и флаг, запрещающий дефрагментацию, будет установлен для всех последующих пакетов.

■ EnablePMTUDiscovery — указывает, будет ли TCP перед отправкой пакетов определять максимальный размер пакета (MTU), который не будет фрагментироваться во время передачи к сетевому компьютеру. Если значение равно 0, то все передаваемые пакеты будут иметь MTU, равный 576 байт, а определение максимального размера пакета, способного дойти до сетевого компьютера без фрагментации, вестись не будет. Если же значение равно 1, то перед отправкой пакетов TCP будет определять MTU пакета, способного дойти до сетевого компьютера без фрагментации, и полученный MTU использовать как размер пакетов, которые он будет отправлять (чтобы они не фрагментировались, ведь эта операция занимает дополнительное время). По умолчанию значение параметра равно 1.

■ ForwardBufferMemory — указывает размер буфера, который используется IP для хранения данных пакета в очереди пакетов маршрутизатора (когда данный буфер заполняется, маршрутизатор в произвольном порядке удаляет пакеты из буфера). Значение должно быть кратно 256 байт, так как буферы данных очереди пакетов по умолчанию имеют размер в 256 байт. Параметр может принимать значение от величины MTU пакета до 0xFFFFFFFF. По умолчанию значение равно 74240.

ПРИМЕЧАНИЕ

Заголовки IP-пакетов хранятся в отдельном буфере.

■ KeepAliveInterval — определяет интервал отправки пакетов проверки активности до тех пор, пока не будет получен ответ хотя бы на один пакет. Если ответный пакет получен, то отправка пакетов активности прекращается до тех пор, пока не истечет интервал времени, задаваемый DWORD-параметром KeepAliveTime. По истечении данного времени отправка пакетов активности опять начинается.

Если же после отправки количества пакетов активности, заданного в DWORD-параметре TcpMaxDataRetransmissions, ни на один из них не было получено ответа, то данное соединение считается неактивным и разрывается. По умолчанию значение параметра KeepAliveInterval равно 1000. Допустимы значения в диапазоне от 1 до 0xFFFFFFFF.

■ KeepAliveTime — указывает интервал ожидания перед началом отправки пакетов активности (Keep Alive Packet), на которые удаленный компьютер должен ответить, иначе будет разорвано соединение. По умолчанию пакеты активности не отправляются, но их отправку может инициировать пользовательское приложение. По умолчанию значение данного параметра равно 7200000 (два часа).

■ MTU — определяет максимальный размер передаваемого пакета данных. По умолчанию значение равно 0x000005DC.

■ NumForwardPackets — указывает количество заголовков IP-пакетов, которые могут находиться в очереди пакетов маршрутизатора. Если реальное количество IP-заголовков превышает значение данного параметра, то маршрутизатор в случайном порядке начинает отбрасывать пакеты из очереди. Значение может находиться в диапазоне от 1 до 0xFFFFFFFE.

ПРИМЕЧАНИЕ

Значение этого параметра должно быть не меньше значения параметра ForwardBufferMemory, деленного на максимальный размер данных IP в сети, подключенной к этому маршрутизатору. При этом значение данного параметра должно быть не больше значения параметра ForwardBufferMemory, деленного на 256.

■ SackOpts — определяет, включена ли возможность SACK (впервые эта возможность была реализована в Windows XP). По умолчанию значение равно 0, то есть данная возможность отключена. Если же значение равно 1, то при потере пакета отправитель может передать лишь потерянный пакет, а не все пакеты сообщения, пакет которого был потерян.

■ SynAttackProtect — указывает, будет ли на компьютере задействована встроенная защита от DOS-атаки SYN-переполнением. Если значение равно 0, то защита будет отключена. Например, если установлен прокси-сервер, то на клиентских машинах, как правило, нет нужды в такой защите. Если значение равно 1, то будет включена стандартная возможность защиты от SYN-атак. Если же значение параметра равно 2, то, кроме стандартной защиты от SYN-атак, используются дополнительные меры защиты: операционная система будет выполнять обращения к драйверу AFD (поддержка Windows Sockets) только в случае установки полного соединения.

■ Tcp1323Opts — определяет, будут ли при сетевом соединении использоваться более широкие окна (под шириной окна понимается количество пакетов, которые может передать отправитель до получения подтверждения приема пакетов от получателя) передачи пакетов. Если значение равно 3, то будут использоваться более широкие окна, что может повысить скорость передачи для высокоскоростных сетевых соединений. По умолчанию значение параметра равно 0.

■ TcpMaxDataRetransmissions — указывает количество попыток передачи данных, после которых (если они были неуспешны) соединение будет окончательно разорвано. Значение может находиться в пределах от 0 до 0xFFFFFFFF. По умолчанию оно равно 15.

■ TcpMaxHalfOpen — определяет максимальное возможное количество одновременных полуоткрытых соединений, которое поддерживает TCP.

■ TcpNumConnections — указывает максимальное возможное количество одновременных соединений, которое поддерживает TCP. Значение может находиться в пределах от 0 до 0xFFFFFE. По умолчанию оно равно 0xFFFFFE.

■ TCPWindowSize — определяет ширину окна для приема TCP (то есть количество байт, которые могут быть переданы отправителем без приема квитанции о подтверждении получения адресатом). Значение может находиться в пределах от 0 до 65535. По умолчанию оно равно 0хFFFF (65535).

ПРИМЕЧАНИЕ

Для большей эффективности работы сети размер окна, задаваемый параметром Tcpwindowsize, должен быть кратен MSS.

Рабочая станция

Рабочая станция — это служба на компьютере пользователя, с помощью которой реализуется поддержка сетевых подключений и связи между компьютерами. Без использования данной службы невозможно осуществление доступа к другим компьютерам. При этом настройки службы оказывают влияние на скорость подключения к сетевым компьютерам. Параметры реестра, относящиеся к настройке рабочей станции, расположены в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanworkstation\parameters.

Буфер сетевых операций

Буфер сетевых операций используется для хранения сетевых команд и потоков. Увеличение размера буфера может повысить скорость передачи данных. Но следует учитывать, что память для буфера сетевых операций резервируется за счет оперативной памяти, поэтому, чем больше будет буфер сетевых операций, тем меньше окажется оперативной памяти.

Для настройки буфера сетевых операций используются следующие параметры DWORD-типа.

■ MaxCmds — определяет количество команд, которые могут находиться в буфере для сетевых операций в одну единицу времени. Возможные значения параметра находятся в диапазоне от 0 до 255. По умолчанию значение равно 15.

■ MaxThreads — указывает количество потоков, которые могут находиться в буфере для сетевых операций в одну единицу времени. Возможные значения параметра находятся в диапазоне от 0 до 255. По умолчанию значение равно 15.

■ MaxCollectionCount — определяет размер буфера, который будет использоваться для записи через именованные каналы, работающие в символьном режиме. Значения параметра находятся в диапазоне от 0 до 65535. По умолчанию значение равно 16.

Другие способы оптимизации Windows

Напоследок рассмотрим несколько способов оптимизации Windows, направленных на настройку оболочки операционной системы, а также на очистку содержимого файловой системы.

Интерфейс пользователя

Настройки интерфейса пользователя, применяемые по умолчанию в операционной системе Windows XP, не рассчитаны на компьютеры малой мощности или с небольшим объемом оперативной памяти. Поэтому при входе пользователя включены многие эффекты, которые замедляют работу компьютера, да и вообще могут быть непривычны пользователям, работавшим ранее в операционных системах Windows 2000 или более ранних версиях Windows. Рассмотрим некоторые из этих настроек. При этом в основном будет приводиться описание диалога, в котором можно настроить данный параметр, и только в случае отсутствия подобного диалога будет рассматриваться ветвь реестра и параметр, отвечающий за настройку эффекта.

Новый диалог входа пользователя в систему

В Windows XP появился новый диалог для входа пользователя в систему, применяемый по умолчанию. Если раньше в операционной системе Windows 2000 вас встречало компактное окно для ввода имени пользователя и пароля, то теперь вас ждет красиво оформленный диалог, в котором можно выбрать учетную запись пользователя, от имени которого необходимо выполнить вход в систему, а потом ввести пароль для данной учетной записи.

Естественно, что за красоту нужно расплачиваться, и в данном случае пользователь расплачивается сниженной скоростью входа в систему, а также отображения самого диалога ввода пароля. Если скорость входа в систему для вас критична, то можно изменить способ входа, вернув на место стандартный диалог Windows 2000. Для этого необходимо запустить апплет nusrmgr.cpl, в котором выбрать гиперссылку Изменение входа пользователей в систему, а потом снять флажок Использовать страницу приветствия. Можно это сделать и проще — просто присвоить DWORD-параметру LogonType значение 0. Параметр расположен в ветви системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon.

Предыдущий совет немного повысит скорость входа в систему, но все равно потребует от вас ввода имени пользователя и пароля. Если вы не боитесь несанкционированного проникновения в систему, то можно указать имя пользователя и пароль, которые будут автоматически учитываться при входе в систему. На страницах этой книги уже было описано два способа выполнения данной процедуры. Первый использовал команду rundll32, а второй — параметры реестра, которые необходимо изменить. Сейчас же применим третий способ — введем команду control USERPASSWORDS2. После этого отобразится знакомый диалог, в котором нужно снять флажок Требовать ввод имени пользователя и пароля. После того как вы нажмете кнопку OK или Применить, система попросит вас ввести имя пользователя, с правами которого будет выполняться вход, и пароль его учетной записи.

Новый вид меню Пуск

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

Чтобы переключиться на стандартный вид меню Пуск, необходимо вызвать диалог Свойства панели задач и меню "Пуск" либо выбрав соответствующую команду пункта Настройка меню Пуск, либо воспользовавшись командой rundll32 shell32.dll, Options_RunDLL 1. После отображения диалога необходимо перейти на вкладку Меню "Пуск" и установить переключатель в положение Классическое меню "Пуск".

Вопрос превращения меню Пуск в кашу также можно решить. Наиболее простым способом его решения будет очистка меню Пуск от ненужных ярлыков, а после этого редактирование параметров доступа к каталогам %userprofile%\Главное меню и %systemdrive%\Documents and Settings\All Users\Главное меню. При этом желательно запретить запись в данные каталоги не только своей, но и системной учетной записи (оставив только доступ на чтение). Этим вы добьетесь сразу двух целей: во-первых, устанавливаемые программы не смогут добавить свои ярлыки в меню Пуск, а во-вторых, они не смогут воспользоваться каталогом Автозагрузка для своего запуска при каждом входе пользователя в систему.

Автозапуск программ при входе пользователя в систему

Раз уж была затронута тема запрета запуска программ с помощью каталога Автозагрузка, поговорим о другом методе запуска программ — посредством реестра Windows. В реестре Windows XP существует много ветвей, из которых программа может быть автоматически запущена, но основной ветвью, используемой для этого, является HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run (а также ветвь корневого раздела HKEY_LOCAL_MACHINE). Поэтому для этих ветвей также желательно установить только доступ на чтение, как для своей учетной записи, так и для учетной записи системы. Этим вы решите два вопроса. Во-первых, сделаете невозможным установку автоматического запуска новых программ, а во-вторых, повысите общий уровень защиты от вирусов и других хакерских программ, которые запускаются при входе пользователя в систему, так как они чаще всего используют для своего запуска именно эти ветви реестра.

ПРИМЕЧАНИЕ

Другие ветви для автоматического запуска программ при входе пользователя в систему будут описаны в конце данной главы.

При упоминании об автоматическом запуске программ следует также сказать о такой программе, как msconfig.exe. Она содержит две полезные вкладки: Службы и Автозагрузка. С помощью вкладки Службы можно запретить автоматический запуск определенных служб, установленных на компьютере. С помощью вкладки Автозагрузка можно запретить автоматический запуск программ. При этом на данной вкладке находится список программ, запускаемых как с помощью приведенной выше ветви реестра, так и с помощью каталога Автозагрузка. Только не следует переусердствовать при отключении программ. Например, следующие программы могут вам понадобиться:

■ mobsync — используется для синхронизации автономных файлов при входе пользователя в систему (если эта функция не используется, можно отключить);

■ ctfmon — является программой для отображения языковой панели (и если вы используете языковую панель, то данную программу отключать не нужно).

Если вы запретили автоматический запуск какой-либо программы, то после закрытия программы msconfig.exe система предложит вам перезагрузить компьютер.

Оптимизация оболочки с помощью диалоговых окон

Теперь рассмотрим некоторые параметры стандартных диалогов Windows XP, редактирование которых может повысить общую скорость работы того или иного компонента системы.

Во-первых, диалоговое окно Свойства: Экран. На вкладке Оформление этого окна есть кнопка Эффекты, после нажатия которой отобразится одноименный диалог. Этот диалог содержит следующие флажки.

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

■ Отображать тени, отбрасываемые меню — можно также снять. Во-первых, это повысит скорость открытия меню, а во-вторых, не всем могут нравиться стандартные тени меню Windows XP.

■ Отображать содержимое окна при перетаскивании — если снять этот флажок, то при перетаскивании окон их содержимое будет скрываться (останется только рамка окна). С одной стороны, это повышает скорость работы с окнами Проводника, в которых расположено очень много папок и файлов. Но, с другой стороны, к такому способу перетаскивания нужно привыкнуть, ведь скрываться будет содержимое не только окон Проводника, но и, например, окон графического редактора Adobe Photoshop, что может быть неприемлемо.

Во-вторых, диалоговое окно Свойства системы. На вкладке Дополнительно этого диалога нужно нажать кнопку Параметры, расположенную в области Быстродействие. После этого отобразится диалог Параметры быстродействия, содержащий список различных настроек.

■ Анимация окон при свертывании и развертывании — снятие флажка повысит скорость сворачивания и разворачивания окон. Если компьютер для вас не элемент красоты, а рабочий инструмент, то лучше снять.

■ Использование типичных задач для папок — снятие этого флажка приведет к скрытию области типичных задач, расположенной слева в окнах Проводника. Данная область призвана облегчить работу с файловой системой Windows XP, храня наиболее часто используемые функции как самого окна, так и отдельных выделенных файлов в нем. В основном данное окно дублирует различные команды контекстного меню, поэтому без его помощи можно легко обойтись. Хотя это дело привычки.

Данный диалог содержит многие другие настройки, но они мало влияют на скорость работы оболочки Windows XP.

Оптимизация оболочки с помощью параметров реестра

Рассмотрим также несколько параметров реестра, влияющих на оптимизацию оболочки, но не имеющих способа изменения с помощью стандартных диалогов Windows.

■ MenuShowDelay — данный параметр строкового типа уже был рассмотрен ранее (расположен в ветви реестра HKEY_CURRENT_USER\Control Panel\Desktop). Он определяет задержку в миллисекундах перед отображением меню. Естественно, что чем меньше задержка, тем быстрее будут открываться меню, хотя здесь лучше не переусердствовать. Меньше значения 100 лучше не опускаться.

■ UserPreferencesMask — этот параметр REG_BINARY-типа расположен в ветви реестра HKEY_CURRENT_USER\Control Panel\Desktop. Он является битовой маской, один бит которой хотелось бы рассмотреть. Это бит 0x00200000. Если данный бит установлен, то будет использоваться альтернативное контекстное меню, отображение которого, как правило, выполняется быстрее.

ПРИМЕЧАНИЕ

После установки бита меню программ примет коричневатый оттенок.

Файловая система

Теперь скажем несколько слов о содержимом файловой системы Windows. Как правило, здесь также есть над чем поработать, особенно если места на жестком диске мало. Автор лишь приведет определенные пути к каталогам и ветви реестра, а вы сами решайте, нужны ли они вам.

■ %systemroot%\Installer — является скрытым и хранит копии пакетов установщика Windows, которые вы когда-либо запускали. Он может понадобиться при повреждении файлов программ. К тому же, как правило, если вы когда-то удалили программу, а сейчас вам необходимо ее установить, но пакета установщика данной программы у вас нет, можно попробовать поискать его среди содержимого данного каталога. Если же места на диске мало, то можно удалить этот каталог (сначала рекомендуется просто переименовать его, перезагрузиться и поработать с программами, если ни одна программа не требует для своего открытия пакета установщика и ведет себя как обычно, то можно удалить этот каталог).

■ %systemroot%\$название обновления$ — каталоги такого формата содержат файлы операционной системы, которые были заменены при установке обновления или заплаты для компонентов операционной системы. Они необходимы для реализации возможности возврата к предыдущему состоянию системы, если после установки обновления система ведет себя некорректно.

■ %systemroot%\LastGood — еще один каталог файловой системы Windows XP, который иногда можно встретить. Он содержит копии системных файлов, которые гарантированно работают. Если система работает стабильно, то можно удалить этот каталог.

■ %systemroot%\system32\dllcache — является скрытым и хранит копии системных файлов, предназначенные для замены используемых системных файлов в случае их повреждения или незаконного изменения. По умолчанию он занимает очень много места (около 400 Мбайт), хотя размер, отводимый для него, можно изменить с помощью DWORD-параметра SfcQuota, расположенного в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon. Но автор все-таки не советовал бы изменять размер этого каталога или удалять его (он все равно будет восстановлен, если вы его удалите). Единственное, что можно посоветовать, это использование одного каталога для всех операционных систем, установленных на компьютере. Если у вас на компьютере установлено две версии Windows XP (желательно одинаковых), то можно заставить эти операционные системы использовать единственный каталог dllcache. Путь, по которому располагается этот каталог, хранится в реестре. Для этого предназначен параметр строкового типа SFCDllCacheDir, расположенный в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Windows File Protection (по умолчанию не существует). Измените в этом параметре путь к каталогу (например, на d:\recent\dllcache), а потом переместите сам каталог по указанному в параметре пути (в данном случае нужно переместить в каталог d:\recent). После этого нужно перезагрузить компьютер, и если после этого не было создано новой папки dllcache в каталоге %systemroot%\system32, то все хорошо. Аналогично нужно изменить параметр в реестре другой операционной системы, чтобы он ссылался на ту же папку dllcache, а старую папку второй операционной системы удалить.

■ %systemroot%\Driver Cache — содержит архив всех драйверов, поставляемых на установочном диске операционной системы. Он может использоваться при поиске подходящего драйвера для нового устройства вместо установочного диска Windows XP. Хотя если вы готовы при каждом поиске нового драйвера доставать установочный диск Windows вместо того, чтобы выполнить поиск в этом каталоге, то его можно удалить. Если же у вас на компьютере установлены две одинаковые версии Windows XP, то можно изменить путь к этому каталогу, чтобы операционными системами использовался общий каталог, а не отдельный для каждой системы. Путь к данному каталогу хранится в параметре строкового типа DriverCachePath, расположенном в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup.

■ %systemroot%\Temp — предназначен для хранения временных файлов, необходимых при установке программ. Как правило, именно сюда система распаковывает файлы и установочные пакеты программ перед тем, как начать их установку. Поэтому иногда рекомендуется просматривать содержимое данного каталога и удалять уже ненужные файлы, ведь он, как и рассмотренный каталог %systemroot%\Installer, может хранить все пакеты установщика Windows, устанавливаемые на вашем компьютере, а также другие файлы, используемые при установке.

■ %systemroot%\Minidump — содержит файлы малого дампа памяти, создаваемые при аварийной остановке системы. Каждый из этих файлов занимает 92 Кбайт, хотя если «синий экран» для вас не в новинку, то через несколько месяцев может собраться неплохой список файлов.

Это далеко не весь список каталогов, содержимое которых при нехватке места можно попробовать удалить. Если у вас намечена генеральная чистка жесткого диска, то можно заглянуть в ветвь реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches. Она включает в себя список разделов, каждый из которых определяет список файлов или папок, использовавшихся при установке различных компонентов Windows или программ и теперь больше не нужных. Другими словами, теоретически их можно удалить, хотя система почему-то этого не делает. Разделы данной ветви могут содержать следующие строковые параметры:

■ Description — описывает, когда и кем использовались данные файлы и папки и почему они больше не нужны;

■ FileList — включает в себя список файлов, которые можно удалить;

■ Folder — указывает путь к каталогу, в котором хранятся эти файлы;

■ CleanupString — может содержать команду, с помощью которой можно автоматически удалить описываемые временные файлы.

Глава 8 Ветвь реестра НKEY_LOCAL_MACHINE\SYSTEM

Ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM является наиболее важной для загрузки системы. Если она будет повреждена, то с большой долей вероятности вы уже не сможете войти в систему. Поэтому, наверное, стоит несколько слов сказать и о структуре этой ветви.

Структура ветви большей частью статична. Иными словами, независимо от того, как будет называться новый раздел, добавляемый к содержимому разделов ветви, параметры, которые он должен включать в себя, предопределены программистами Microsoft. Вообще, эта ветвь реестра предназначена для хранения сведений обо всех драйверах, службах и сервисах, установленных в системе. Но, кроме этого, ветвь содержит критически важные сведения настройки самой системы. Пример таких сведений можно найти в последней части книги.

Ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM может включать в себя следующие разделы.

■ CurrentControlSet и разделы ControlSetNNN — как раз и определяют все сведения о сервисах и службах, установленных в вашей системе, способ и последовательность их запуска, а также различные настройки сетевых компонентов и самой операционной системы.

■ MountedDevices — указывает настройки монтирования логических дисков вашей системы.

■ Select — определяет ветви ControlSetNNN и способ их использования, но о нем мы поговорим чуть позже.

■ Setup — указывает настройки установки Windows, а также может использоваться программой sysprep для своего запуска при следующей перезагрузке.

■ WPA — содержит сведения об активационных ключах, доступных вашей операционной системе.

Раздел Control Set NNN

Теперь подробнее поговорим о самых важных разделах ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM. Первыми из них будут разделы формата ControlSetNNN и раздел CurrentControlSet. Об их важности говорит уже то, что, хотя в системе может содержаться несколько разделов формата ControlSetNNN (вместо NNN указывается номер раздела, например ControlSet001, ControlSet002 или ControlSet003), все они хранят практически одинаковую информацию. И это не избыточность. Программисты Microsoft приняли решение специально использовать несколько копий разделов, содержащих критически важную информацию, чтобы в случае повреждения одного из них система могла загрузиться с помощью настроек из другого раздела.

Каждый из разделов формата ControlSetNNN используется как страховочный. При этом за двумя из этих разделов всегда зарезервирован свой вид загрузки операционной системы — один из разделов используется для обычной загрузки, а второй применяется при выборе пользователем из списка альтернативных видов загрузки команды Загрузка последней удачной конфигурации. Второй раздел используется в том случае, если систему не удалось загрузить с помощью первого раздела.

Раздел CurrentControlSet на самом деле не является физически существующим в реестре, его содержимое — это лишь ссылка на тот раздел ControlSetNNN, который был загружен в текущий момент.

Для понятия принципа работы данных разделов системы необходимо знать этапы загрузки операционной системы Windows и то, что на этих этапах происходит. Мы же не будем углубляться так далеко, а перечислим лишь несколько фактов, которые помогут в понимании сути рассматриваемых разделов. После сбора информации о конфигурации компьютера и выбора самой загружаемой системы (если используется мультизагрузка) происходит попытка считывания ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\ControlSetNNN, которая в данный момент используется для обычной загрузки. Если на этапе считывания или попытки запуска какого-нибудь драйвера, указанного в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\ControlSetNNN, происходит серьезный сбой, то ветвь системного реестра ControlSetNNN помечается как испорченная. После этого начинается новая перезагрузка компьютера, в процессе которой уже используется ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM\ControlSetNNN, помеченная как удачная при предыдущем удачном запуске операционной системы. Если же системе удается загрузиться при помощи ветви HKEY_LOCAL_MACHINE\SYSTEM\ControlSetNNN и при этом в системе удачно зарегистрировался хотя бы один пользователь, то данная ветвь ControlSetNNN считается корректной, и теперь именно с ее помощью вы будете загружаться при выборе команды Загрузка последней удачной конфигурации. После завершения работы компьютера все занесенные вами в текущий сеанс работы сведения помещаются в используемый при загрузке системы раздел ControlSetNNN. Остальные же разделы остаются без изменений.

Раздел Select

Но как же система узнает, какой из разделов ControlSetNNN необходимо использовать при обычной загрузке, какой нужно применять при загрузке последней удачной конфигурации, а какой вообще является испорченным? Именно для этих целей и предназначен раздел Select. Он содержит параметры DWORD-типа, каждый из которых определяет номер раздела ControlSetNNN и ту метку, которая была ему присвоена во время последнего удачного входа в систему. Рассмотрим назначение каждого из параметров, описанных в разделе Select.

■ Default — определяет, какая копия раздела ControlSetNNN будет загружена при обычной загрузке системы. Например, если значение данного параметра равно 2, то при обычной загрузке системы раздел CurrentControlSet будет ссылкой на содержимое раздела ControlSet002.

■ Current — указывает номер текущей копии раздела ControlSetNNN, который использовался для загрузки системы и на который ссылается раздел CurrentControlSet.

■ LastKnownGood — определяет номер копии раздела ControlSetNNN, которая будет использоваться для загрузки и построения содержимого раздела CurrentControlSet при использовании команды меню альтернативной загрузки Загрузка последней удачной конфигурации.

■ Failed — указывает раздел ControlSetNNN, при предыдущей загрузке которого произошел какой-то серьезный сбой и загрузка с его помощью была прервана.

Настройки служб

После рассмотрения назначения разделов формата ControlSetNNN вы знаете, что они предназначены для хранения настроек запускаемых системой служб. Но как эти настройки хранятся в реестре? Именно этому вопросу и посвящен данный раздел.

Все настройки запуска служб хранятся в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services. Она содержит список разделов, каждый из которых определяет описания одной службы или сервиса. Названия данных разделов, в принципе, не имеют значения (но если для службы не существует параметра DisplayName, то для ее идентификации будет использоваться название раздела, в котором она описывается). Значение имеют те параметры, которые описаны в соответствующем разделе. К таким параметрам можно отнести приведенные ниже.

■ Group — параметр имеет тип REG_SZ и определяет группу, к которой относится служба. Именно от группы зависит, в какой момент будет запущена служба — сначала запускаются все службы одной группы, потом все службы другой и т.д. Саму же последовательность, в которой запускаются группы служб, можно просмотреть в REG_MULTI_SZ-параметре List, расположенном в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServiceGroupOrder.

■ DependOnGroup — этот параметр REG_MULTI_SZ-типа определяет группы, которые должны быть запущены перед запуском данной службы. В контексте оснастки services.msc, которая описывает все службы, установленные на компьютере, данный параметр определяет содержание вкладки Зависимости диалога Свойства для данной службы.

■ DependOnService — параметр REG_MULTI_SZ-типа, определяет сервисы, которые должны быть запущены перед запуском данной службы. Значения этого параметра отображаются на вкладке Зависимости диалога Свойства, вызываемого двойным щелчком левой кнопкой мыши на строке, определяющей данную службу в оснастке services.msc.

■ DisplayName — этот параметр строкового типа определяет строку названия службы, которая как раз и будет идентифицировать службу в оснастке services.msc (данная строка будет отображаться в поле Имя оснастки services.msc).

■ Description — параметр строкового типа, определяет строку описания для соответствующей службы. Строка будет отображаться в поле Описание диалога Свойства для данной службы.

■ ObjectName — этот параметр строкового типа определяет учетную запись, с правами которой будет запускаться служба. Если его значение равно LocalSystem, то вход будет выполняться с правами данной учетной записи (эта запись пришла на смену записи System, определяющей права системы, и содержит меньше прав, чем сама учетная запись System). Если же значение этого параметра равно NT Authority\NetworkService, то вход будет выполнен от имени сетевой службы (аналогично учетной записи LocalSystem, данная учетная запись имеет меньше прав, чем учетная запись System). Если же вам необходимо предоставить службе вход от имени учетной записи определенного пользователя данного компьютера, то параметру ObjectName в качестве значения нужно присвоить строку формата .\логин пользователя.

■ ErrorControl — параметр DWORD-типа, определяет поведение системы при возникновении ошибок в работе службы и может принимать такие значения:

• 0 — игнорировать ошибку;

• 1 — предупреждать пользователя об ошибке;

• 2 — перезагрузить компьютер.

■ ImagePath — этот параметр строкового типа определяет путь к файлу службы, который и будет запускаться системой. В оснастке services.msc параметр определяет содержимое поля Исполняемый файл диалога Свойства для соответствующей службы (это поле позволяет лишь просмотреть путь к файлу службы, но не отредактировать его).

■ Start — параметр DWORD-типа, определяет момент загрузки системы, в который будет запущена данная служба. Он может принимать следующие значения:

• 0 — служба будет запускаться загрузчиком операционной системы перед началом этапа инициализации ядра;

• 1 — данная служба будет запускаться при инициализации ядра (подсистемой ввода/вывода);

• 2 — служба будет запускаться диспетчером сервисов (smss.exe) при входе пользователя в систему;

• 3 — данная служба запускается вручную в тот момент, когда она понадобится какой-нибудь программе;

• 4 — служба не будет запускаться никогда.

■ Type — этот параметр DWORD-типа указывает на то, к какому типу относится служба, и может принимать следующие значения:

• 1 — служба определяет устройства уровня ядра;

• 2 — служба определяет драйвер файловой системы;

• 4 — служба является аргументом для адаптера;

• 8 — служба относится к службам файловой системы;

• 10 — служба является программой, запускающей свой процесс;

• 20 — служба является программой, запускающей общий процесс;

• 100 — если данная битовая маска присутствует в параметре Туре, то система будет разрешать соответствующей службе взаимодействие с Рабочим столом (иначе служба не сможет вывести диалоговое окно, окно сообщения или свое окно).

Для примера попробуем зарегистрировать в системе свою собственную службу. Для этого достаточно только создать свой раздел в ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, а в этом разделе создать такие параметры, как ImagePath, DisplayName, Description, Group. Результат можно видеть на рис. 8.1.

Рис. 8.1. Создание своей службы

Потенциально опасные ветви и параметры реестра

Данным разделом заканчивается знакомство с реестром Windows XP и параметрами, которые в нем могут находиться, поэтому сейчас хотелось бы перечислить некоторые из ветвей реестра и параметров, которые если еще не используются, то скоро могут быть использованы вирусами, троянскими конями или просто различными программами-шутками для своей работы. В этом разделе будут также перечислены некоторые ветви реестра, создание или удаление которых может вызвать проблемы в работе операционной системы.

■ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MiniNT — раздел не предназначен для операционной системы Windows XP, поэтому если он будет присутствовать в системе, то при каждой загрузке система будет выводить сообщение о нехватке размера файла подкачки pagefile.sys и создавать новый файл.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{e17d4fc0-5564-11d1-83f2-00a0c90dc849} — об этом разделе уже упоминалось — если он окажется удаленным, то диалоговое окно Поиск работать не будет.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{1f4de370-d627-11d1-ba4f-00a0c91eedba} — это еще один раздел, без которого не будет работать диалоговое окно Поиск.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon — эта ветвь реестра может включать в себя множество параметров, за содержимым которых необходимо следить. Например, к ним можно отнести следующие параметры строкового типа.

• System — определяет программы, которые будут запускаться с правами системы процессом WINLOGON.EXE при инициализации. Программы пишутся через запятую, то есть параметр может содержать вызов сразу нескольких программ. По умолчанию он ничему не равен.

• Userinit — указывает программы, которые будут запускаться с правами пользователя при его регистрации процессом WINLOGON.EXE. Программы пишутся через запятую, это опять-таки означает, что в данной ветви могут находиться сразу несколько вызовов программ. По умолчанию значение данного параметра равно %systemroot%\system32\userinit.exe.

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

• Shell — указывает файлы оболочки, которые будут запускаться при входе пользователя. Он как раз и определяет, что вы используете стандартную оболочку Windows explorer.exe — именно эта строка является значением параметра Shell по умолчанию. Но если вы измените значение этого параметра, например, на explorer.exe, notepad.exe, то наряду с оболочкой Windows при вашем входе в систему будет запускаться и Блокнот. Этот параметр может находиться как в корневом разделе HKEY_CURRENT_USER, так и в разделе HKEY_LOCAL_MACHINE.

• GinaDLL — определяет путь к библиотеке msgina.dll, которая запускается вместе с системой по умолчанию и необходима для взаимодействия с оболочкой Windows. Если изменить значение этого параметра на вызов какой-нибудь программы, а не библиотеки, то при инициализации процесса WINLOGON.EXE будет выдано сообщение об ошибке и вы не сможете войти в систему.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Windows — может содержать несколько потенциально опасных параметров, среди которых можно выделить следующие параметры строкового типа.

• Run — определяет программы, которые будут запускаться с правами пользователя при его входе. Как и рассмотренные выше параметры, он может вызывать сразу несколько программ — в этом случае они пишутся через запятую. Параметр может находиться как в корневом разделе реестра HKEY_CURRENT_USER, так и в корневом разделе HKEY_LOCAL_MACHINE.

• Load — указывает программы, которые будут запускаться с правами системы при входе любого пользователя. Как и рассмотренные выше параметры, он может вызывать сразу несколько программ — в этом случае они пишутся через запятую.

• AppInit_DLLs — определяет библиотеки, необходимые для совместимости с каким-нибудь оборудованием или программой. Все описанные в данном параметре библиотеки будут запускаться перед запуском любой программы.

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Browser Helper Objects — определяет все CLSID-номера ActiveX-объектов (в виде разделов, названных в честь CLSID-номера ActiveX-объекта), которые будут запускаться при каждом запуске браузера Internet Explorer.

■ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager — содержит REG_MULTI_SZ-параметр BootExecute, его значением являются команды, которые будут запускаться при каждой перезагрузке компьютера. Он используется системой для запуска таких системных программ работы с дисками, как автопроверка диска (значение этого параметра autocheck autochk *) или преобразование файловой системы диска FAT в NTFS (значение данного параметра autoconv \DosDevice\x: /FS:NTFS).

■ HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options — используется для возможности определения программ, при выполнении которых происходит утечка памяти. Но можно воспользоваться этой ветвью и для других целей. Например, если создать в ней раздел explorer.exe, а в нем создать DWORD-параметр ShutdownFlags и присвоить ему значение 3, то после выгрузки оболочки Windows существует вероятность, хотя и малая, что вы не сможете ее загрузить. Система может не дать вам этого сделать. Но даже если вы и сможете загрузить оболочку, то, скорее всего, увеличится количество ошибок неправильной адресации к памяти, выдаваемых различными программами.

■ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SafeBoot\option — определяет, в каком режиме будет загружаться операционная система — обычном или безопасном. Именно поэтому возможна такая шутка — создайте в этой ветви реестра DWORD-параметр OptionValue и присвойте ему значение, равное 1. Теперь вы всегда будете загружаться в режиме, в чем-то подобном безопасному, — будет загружаться лишь минимальный набор сервисов, но драйверы устройств, таких как видеокарта, будут использоваться обычные, устанавливаемые вместе с устройством (а не стандартные, как при полноценном безопасном режиме). При этом, даже если вы являетесь администратором компьютера, вам будет запрещено запускать такие службы, как, например, Windows Audio, которые нельзя запускать в безопасном режиме. Раздел option создается только в безопасном режиме.

■ HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints\«значок диск» и HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\«значок диск» — хранят настройки контекстного меню, значков дисков, а также описание файла autorun.inf, применявшегося ранее для запуска содержимого компакт-диска. В практике автора книги был такой случай, когда записи данных ветвей реестра постоянно приводили к отказу в доступе к приводу DVD. Другими словами, при попытке открытия содержимого диска, установленного в приводе DVD, отображался отказ в доступе к диску. При этом проблема решалась именно удалением раздела, названного в честь буквы диска, доступк которому был отклонен (решалась до следующей попытки доступа к приводу). Поэтому, если у вас возникли подобные проблемы, просто попробуйте удалить соответствующие ветви реестра, а потом установить для них только доступ на чтение.

Загрузка...