Серверная операционная система Microsoft Windows 2003

         

Работа с системным реестром


Как и в предыдущих версиях операционных систем из семейства Windows (включая Windows 9x/ME и Windows NT/2000/XP), реестр Windows Server 2003 представляет собой централизованную базу данных параметров настройки системы и работающих в ней приложений. В этом смысле реестр аналогичен разнообразным INI-файлам, а также файлам autoexec.bat и config.sys, которые использовались ранее. Реестр содержит информацию обо всех аппаратных средствах, программном обеспечении, операционной системе и сетевых параметрах компьютера. Эта сложная иерархическая база данных принимает участие во всех аспектах работы Windows. Хорошее понимание принципов работы реестра, выполняемых им задач, а также умение манипулировать реестром необходимо всем: системным и сетевым администраторам, специалистам из групп технической поддержки, а также опытным пользователям из числа программистов. Кроме того, для системных администраторов особенно важны вопросы администрирования и защиты реестра, а также его резервного копирования и восстановления.

Как и в предыдущих системах, в Windows Server 2003 реестр также играет ключевую роль в управлении системной конфигурацией и представляет собой централизованное хранилище всей информации об аппаратных средствах, операционной системе и установленных приложениях, а также данных, управляющих пользовательской средой. Реестр по-прежнему хранится на диске в виде файлов ульев, в состав которых внесены лишь незначительные изменения. Однако в код реестра Windows XP/Windows Server 2003 были внесены изменения, направленные на повышение производительности системы за счет ускорения доступа к реестру и на снятие ограничений по размеру реестра, существовавших во всех предыдущих версиях, включая Windows 2000. Усовершенствования, внесенные в реестр, будут подчеркиваться далее по ходу изложения материала данной главы.

Как было показано в главе 3 "Загрузка операционной системы", реестр становится необходимым уже на начальных этапах загрузки Windows. Проблемы при загрузке могут быть вызваны, в том числе, и повреждением реестра. Например, многие пользователи Windows NT/2000 испытывали этот шок, когда в процессе загрузки получали сообщение примерно следующего содержания:

Windows 2000 Could not start because the following file is missing or corrupt: \WINNT\SYSTEM32\CONFIG\SYSTEM You can attempt to repair this file by Starting Windows NT Setup using the original Setup floppy disk or CD-ROM.


Select 'r' at the first screen to repair.

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


Назначение реестра


Реестр пришел на смену конфигурационным файлам (INI-файлам) и призван был снять неудобства и ограничения, связанные с их использованием. В виде, более или менее напоминающем его нынешнюю структуру, реестр появился в Windows NT 3.5 (тогда он имел 4 корневых ключа: HKEY_LOCAL_MACHINE, HKEY_CURRENT_USER, HKEY_CLASSES_ROOT и HKEY_USERS). Новый компонент операционной системы был предназначен для того, чтобы заменить собой многочисленные инициализационные и установочные файлы, разбросанные по различным каталогам на жестком диске и сетевом сервере. Эти файлы требовались для обеспечения корректной работы операционной системы, приложений и аппаратных устройств, но управление ими было задачей сложной, трудоемкой и неудобной. Реестр как централизованная база данных представляет собой источник конфигурационной информации, где все параметры сведены воедино, что обеспечивает возможность эффективного управления операционной системой.
Перечисление компонентов Windows Server 2003, использующих реестр, и краткое описание их взаимодействия с этой базой данных приведено ниже.
 Программы установки (Setup). Каждый раз при запуске программы Setup или других установочных программ (для аппаратных и программных средств) происходит добавление в реестр новых конфигурационных данных. Начиная свою работу, все грамотно разработанные программы уста-новки считывают информацию реестра, чтобы определить, присутствуют ли в системе компоненты, обязательные для успешного завершения установки. Наконец, централизованный реестр позволяет приложениям совместно использовать конфигурационную информацию и предоставляет им больше возможностей взаимодействия между собой. Чтобы приложение могло получить статус "Designed for Windows", оно должно активно и правильно использовать реестр, а также содержать утилиту, позволяющую корректно выполнить удаление этого приложения (uninstall utility), не удаляя компонентов, которые могут использоваться другими программами (.dll, .ocx и т. д.). Эта утилита использует информацию, хранящуюся в реестре.  Распознаватель (Recognizer). Каждый раз при запуске компьютера распознаватель аппаратных средств (hardware recognizer) помещает в реестр список обнаруженных им устройств. На компьютерах с процессорами Intel распознавание аппаратных средств осуществляется программой Ntdetect.com и ядром операционной системы (Ntoskrnl.exe).  Ядро системы (Ntoskrnl.exe). При старте системы ядро извлекает из реестра сведения о загружаемых драйверах устройств и порядке их загрузки. Кроме того, программа Ntoskrnl.exe передает в реестр информацию о себе (примером такой информации может служить, например, номер версии).  Драйверы устройств. Драйверы устройств обмениваются с реестром параметрами загрузки и конфигурационными данными. Эти данные аналогичны строкам DEVICE=, которые можно найти в файле config.sys для запуска компьютера под управлением MS-DOS. Драйвер устройства должен сообщить об используемых им системных ресурсах, включая аппаратные прерывания и каналы DMA, чтобы система могла включить эти данные в реестр. Приложения и драйверы устройств могут считывать эту информацию реестра, предоставляя пользователям интеллектуальные программы инсталляции и конфигурирования.  Административные средства. Административные средства системы, в том числе утилиты панели управления и оснастки, собранные в группу Administrative Tools, представляют собой наиболее удобные и безопасные (с точки зрения внесения возможных ошибок) средства модификации реестра. Редактор реестра, рассмотрению которого посвящен отдельный раздел данной главы, также полезен для его просмотра и, время от времени, для внесения изменений в конфигурацию системы.  Пользовательские профили (user profiles). Windows NT/2000/XP, а также продукты из семейства Windows Server 2003 обеспечивают возможность создания множества пользовательских профилей. Вся информация, относящаяся к конкретному пользовательскому имени и ассоциированным с ним правам, хранится в реестре. Более подробная информация о пользовательских профилях будет приведена далее в этой главе, здесь же отметим, что пользовательский профиль определяет индивидуальные параметры настройки дисплея, параметры сетевых соединений, принтеры и многое другое. Пользовательские профили бывают следующих типов: локальные (local user profile), создаваемые автоматически при первой регистрации пользователя на локальном компьютере, "блуждающие" или перемещаемые (roaming user profile), создаваемые администратором и хранящиеся на сервере, и обязательные (mandatory user profile) — "блуждающие" профили, обязательные для применения. Информация о пользовательских профилях также хранится в реестре.

Обязательные пользовательские профили (mandatory user profiles) поддерживаются в Windows XP и Windows Server 2003 только в целях обеспечения обратной совместимости с существующими доменами Windows NT 4.0. Если же в вашей сети уже применяются домены на базе Windows 2000 или Windows Server 2003, и необходимость обеспечения обратной совместимости отсутствует, то вместо обязательных пользовательских профилей рекомендуется использовать групповую политику (Group Policy).

 Аппаратные профили (hardware profiles). Реестр, в отличие от INI-файлов, позволяет хранить множественные аппаратные конфигурации. Так, например, можно создать профили для dock-станций (что актуально для пользователей портативных компьютеров), а также профили для съемных устройств. Аппаратный профиль представляет собой набор инструкций, с помощью которого можно указать операционной системе, драйверы каких устройств должны загружаться при запуске компьютера. В процессе установки системы создается стандартный аппаратный профиль, который содержит информацию обо всех аппаратных средствах, обнаруженных на компьютере на момент инсталляции.



Структура реестра


Как и реестры систем Windows NT/2000/XP, реестр Windows Server 2003 состоит из пяти так называемых корневых ключей (root keys):
 HKEY_CLASSES_ROOT  HKEY_CURRENT_USER  HKEY_LOCAL_MACHINE  HKEY_USERS  HKEY_CURRENT_CONFIG

Каждый отдельный ключ может содержать элементы данных, которые называются параметрами (value entries), а также дополнительные вложенные ключи (subkeys). Для понимания этой концепции можно провести аналогию с файловой системой. Ключи в структуре реестра аналогичны каталогам, а значимые элементы — файлам. Рис. 24.1 иллюстрирует иерархическую структуру реестра.



Рис. 24.1. Реестр имеет иерархическую структуру, и его ключи могут содержать вложенные ключи и параметры

Все имена корневых ключей начинаются со строки HKEY_, что указывает разработчикам программного обеспечения на то, что это — дескриптор, который может использоваться программой. Дескриптор (handle) — это значение, используемое для уникального описания ресурса, к которому программа может получить доступ. Описания корневых ключей реестра Windows NT/2000/XP и Windows Server 2003 приведены в табл. 24.1.

Таблица 24.1. Корневые ключи реестра

Имя корневого ключа
Описание
HKEY_LOCAL_MACHINE
Содержит глобальную информацию о компьютерной системе, включая такие данные об аппаратных средствах и операционной системе, как: тип шины, системная память, драйверы устройств и управляющие данные, используемые при запуске системы. Информация, содержащаяся в этом ключе, действует применительно ко всем пользователям, регистрирующимся в системе. На верхнем уровне иерархии реестра для этого ключа имеются три псевдонима: HKEY_CLASSES_ROOT, HKEY CURRENT_CONFIG И HKEY_DYN_DATA
HKEY_ CLASSES_ ROOT
Содержит ассоциации между приложениями и типами файлов (по расширениям имени файла). Кроме того, этот ключ содержит информацию OLE (Object Linking and Embedding), ассоциированную с объектами СОМ, а также данные по ассоциациям файлов и классов (эквивалент реестра ранних версий Windows, служивших настройкой над MS-DOS). Параметры этого ключа совпадают с параметрами, расположенными под ключом HKEY_LOCAL_MACHINE \ Sof tware\Classes.
Подробную информацию о ключе HKEY_CLASSES_ROOT можно найти в руководстве OLE Programmer's Reference, входящем в состав продукта Windows Platform Software Development Kit (SDK)
HKEY_CURRENT_ CONFIG
Содержит конфигурационные данные для текущего аппаратного профиля. Аппаратные профили (hardware profiles) представляют собой наборы изменений, внесенных в стандартную конфигурацию сервисов и устройств, установленную данными ключей Software И System корневого ключа HKEY LOCAL_MACHINE. В ключе HKEY_CURRENT_CONFIG отражаются только изменения.
Кроме того, параметры этого ключа появляются также под ключом HKEY_LOCAL_MACHINE\System \CurrentControlSet\HardwareProfiles\Current
HKEY_CURRENT USER
Содержит пользовательский профиль пользователя, на данный момент зарегистрировавшегося в системе, включая переменные окружения, настройку рабочего стола, параметры настройки сети, принтеров и приложений.
Этот ключ представляет собой ссылку на ключ HKEY_USERS \user SID, где user SID— идентификатор безопасности (Security ID, SID) пользователя, зарегистрировавшегося в системе на текущий момент
HKEY_USERS
Содержит все активно загруженные пользовательские профили, включая HKEY_CURRENT_USER, а также профиль по умолчанию. Пользователи, получающие удаленный доступ к серверу, не имеют профилей, содержащихся под этим ключом; их профили загружаются в реестры на их собственных компьютерах.
Операционная система требует наличия учетных записей для каждого пользователя, регистрирующегося в системе. Ключ HKEY_USERS содержит вложенный ключ \Default, а также другие ключи, определяемые идентификатором безопасности (Security ID) каждого пользователя

Следует обратить особое внимание на весьма существенное различие между реестрами Windows 9x/ME и Windows NT/2000/XP/Windows Server 2003, касающееся ключа HKEY_USERS. Как известно, в Windows 9x/ME не существует встроенных средств для предотвращения несанкционированного доступа к системе, и для регистрации нового пользователя не требуется наличия учетной записи. Ключ реестра HKEY_USERS в этих операционных системахсодержит вложенные ключи вида username, где username — входные имена пользователей.
В отличие от Windows 9x/ME и по аналогии с Windows NT/2000, Windows ХР и Windows Server 2003 для доступа пользователей в обязательном порядке требуют наличия пользовательской учетной записи (user account), причем это требование совершенно не зависит от того, принимает ли ваш компьютер участие в работе сети. Далее, Windows NT/ 2000/ХР или Windows Server 2003 идентифицируют пользователей не по входным именам (login names), а по идентификаторам безопасности (Security IDs, SIDs), большинство из которых является уникальными для каждого пользователя (в том числе и для пользовательских учетных записей в разных системах). Исключение составляют только так называемые "хорошо известные" SID (well-known SIDs), например, такие, как встроенная группа Everyone (S-1-1-0) или пользователь Creator Owner (S-1-3-0), полный список которых можно найти в статье Microsoft Knowledge Base Q243330 — "Well Known Security Identifiers in Windows 2000 and Windows ХР". Если вы удалите пользовательскую учетную запись в локальной системе или в домене, а затем создадите новую с использованием того же входного имени, то для новой учетной записи будет сгенерирован новый SID. Идентификаторы безопасности имеют следующий формат: S-1-XXXXX1-YYYYY2-...-RID, где: S-1 — идентификатор безопасности (Security ID), версия 1; ХХХХХ — номер ведомства (authority number), YYYYYn — номера подразделений (subauthority numbers), RID — относительный идентификатор (Relative ID). Обратите внимание на то, что относительные идентификаторы (RID) уже не будут уникальны для каждого компьютера.

Многие пользователи Windows, даже довольно опытные, часто ошибочно считают, что система идентифицирует пользователей по их регистрационной информации — входному имени (username или login name) и паролю (password). Следует особо подчеркнуть, что это распространенное мнение является ошибочным, т. к. система идентифицирует пользователей именно по их идентификаторам безопасности. Пользовательские профили также идентифицируются по ассоциированным с ними SID (рис. 24.2).

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



Рис. 24.2. В отличие от Windows 9x/ME и по аналогии с Windows NT/2000, Windows XP и Windows Server 2003 идентифицируют пользовательские профили по ассоциированным с ним идентификаторам безопасности (SID)

В табл. 24.2 перечислены типы данных, определенные для параметров реестра и используемые в системе.

Таблица 24.2. Типы данных для параметров реестра

Тип данных
Описание
REG_BINARY
Двоичные данные. Большинство аппаратных компонентов используют информацию, которая хранится в виде двоичных данных. Редакторы реестра отображают эту информацию в шестнадцатеричном формате
REG_DWORD
Данные представлены в виде значения, длина которого составляет 4 байта. Этот тип данных используют многие параметры драйверов устройств и сервисов. Редакторы реестра могут отображать эти данные в двоичном, шестнадцатеричном и десятичном формате
REG_EXPAND_SZ
Расширяемая строка данных. Эта строка представляет собой текст, содержащий переменную, которая может быть заменена при вызове со стороны приложения
REGJMULTI_SZ
Многострочное поле. Значения, которые фактически представляют собой списки текстовых строк в формате, удобном для восприятия человеком, обычно имеют этот тип данных. Строки разделены символом NULL
REG_SZ
Текстовая строка в формате, удобном для восприятия человеком. Значениям, представляющим собой описания компонентов, обычно присваивается именно этот тип данных
REG_DWORD_ LITTLE_ENDIAN
32-разрядное число в формате "остроконечников" (little-endian). Представляет собой эквивалент REG DWORD.
При использовании метода "остроконечников" самый младший байт ("little end") хранится в памяти первым в числе. Например, шестнадцатеричное число A02Bh по методу "остроконечников" сохраняется как 2ВАО.
Метод "остроконечников" используется в микропроцессорах Intel
REG_DWORD_BIG_ ENDIAN
32-разрядное число в формате "тупоконечников" (big-endian). В противоположность методу "остроконечников", при использовании метода "тупоконечников" самый старший байт ("big end") оказывается первым байтом числа
REG_LINK
Символическая ссылка Unicode. Этот тип данных предназначен для внутреннего использования.
Тип данных REG LINK особенно интересен тем, что он позволяет одному элементу реестра ссылаться на другой ключ или параметр. Например, если элемент реестра \Rootl\Link имеет параметр типа REG LINK со значением \Root2\RegKey, а ключ RegKey содержит параметр RegValue, то этот параметр идентифицируется двумя путями: \Rootl\Link\RegValue И \Root2 \ RegKey \RegValue. Windows NT/2000/XP и Windows Server 2003 активно использует этот метод — некоторые из корневых ключей реестра, перечисленных в табл. 24.1, являются ссылками на вложенные ключи других корневых ключей
REG_NONE
Параметр не имеет определенного типа данных
REG_QWORD
64-разрядное число
REG_QWORD_LITTLE_ ENDIAN
64-разрядное число в формате "остроконечников". Эквивалент REG QWORD
REG_RESOURCE_LIST
Список аппаратных ресурсов, применяется только в ветви
HKEY_LOCAL_MACHINEXHARDWARE
REG_FULL_RESOURCE_ DESCRIPTOR
Дескриптор (описатель) аппаратного ресурса. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE
REG_RESOUECE_ REQUIREMENTS_LIST
Список необходимых аппаратных ресурсов. Применяется только в ветви HKEY_LOCAL_MACHINE\HARDWARE


Хранение данных реестра


В Windows NT/2000/XP и Windows Server 2003 элементы реестра хранятся в виде атомарной структуры. Реестр подразделяется на составные части, которые разработчики этой операционной системы назвали ульями (hives) по аналогии с ячеистой структурой пчелиного улья. Улей представляет собой дискретную совокупность ключей, вложенных ключей и параметров, берущую начало в вершине иерархии реестра. Отличие ульев от других групп ключей состоит в том, что они являются постоянными компонентами реестра. Ульи не создаются динамически при загрузке операционной системы и не удаляются при ее остановке. Таким образом, ключ HKEY_LOCAL_MACHiNE\Hardware, который строится динамически распознавателем аппаратных средств при запуске операционной системы, ульем не является.
Данные ульев реестра хранятся в файлах, которые находятся в каталогах %SystemRoot%\system32\Config и %SystemRoot'%\Profiles\%Username% (Windows NT 4.0) и %SystemRoot%\system32\Config, и %SystemDrive%\ Documents and Settings\%Username% (Windows 2000, Windows XP и Windows Server 2003).
Каждый улей реестра ассоциирован с набором стандартных файлов. В табл. 24.3 перечислены стандартные ульи реестра Windows NT/2000/XP и Windows Server 2003 и поддерживающие их файлы.

Таблица 24.3. Стандартные файлы, обеспечивающие поддержку ульев реестра Windows NT/2000/XP и Windows Server 2003

Ветвь реестра
Имена файлов
НКЕ Y_LOCAL_MACHINE\SAM
Sam, Sam. log, Sam.sav*
HKEY_LOCAL_MACHINE\Security
Security, Security.log, Security. sav*
HKEY_LOCAL_MACHINE\Software
Software, Software.log, Software. sav
HKEY_LOCAL_MACHINE\System
System, System.alt**, System.log, System. sav
HKEY_CURRENT_CONFIG
System, System.alt**, System.log, System. sav
HKEY_USERS\.DEFAULT
Default, Default.log, Default.sav
(Файлы, не ассоциированные ни с одним ключом)
Userdiff, Userdiff.log, Userdifr***, Userdifr.log***
HKEY_CURRENT_USER
Ntuser.dat, Ntuser.dat.log

* Файлы, появляющиеся в системе лишь при определенных обстоятельствах.
 ** Файлы, исключенные из Windows XP и Windows Server 2003.
 *** Файлы, присутствующие только в Windows XP.

Как видно из приведенной выше таблицы, некоторые из файлов реестра в Windows XP и Windows Server 2003 больше не используются. Это является следствием усовершенствований, внесенных в их реестр.

Все файлы ульев реестра, за исключением HKEY_CURRENT_USER, находятся в подкаталоге %SystemRoot%\system32\config.
Поддержку улья HKEY_CURRENT_USER выполняют файлы Ntuser.dat и Ntuser.dat.log. В файлах Ntuser.dat хранятся пользовательские профили; файл Ntuser.dat.log отслеживает изменения, которые вносились в файл Ntuser.dat. В Windows NT 4.0 (а также в системах Windows 2000/XP и Windows Server 2003, установленных как обновление версий Windows NT 4.0) эти файлы располагаются во всех подкаталогах каталога %SystemRoot%\Profiles (за исключением подкаталога \Аll Users). В Windows 2000/XP и Windows Server 2003 эти файлы располагаются в каталогах %SystemRoot%\Documents and Settings\ % Username%.
Файлы Ntuser и Userdiff были впервые введены в Windows NT 4.0:
 файл Ntuser.dat, в котором хранится пользовательский профиль, заменил собой файлы usernamejcet и admiruco: из предыдущих версий Windows NT;  файл Ntuser.dat из каталога %SystemRoot%\Profiles\DefaultUser заменил собой файл Userdef из предыдущих версий Windows NT. Этот профиль используется для построения улья HKEY_CURRENT_USER, когда новый пользователь впервые регистрируется в системе;  файлы UserdifF, которые находятся только в каталоге %SystemRoot% \system32\config, не ассоциируются ни с одним ульем. Они служат для обновления существующих профилей пользователей, использовавшихся в предыдущих версиях Windows NT, таким образом, чтобы эти профили могли применяться в Windows NT 4.0 и последующих версиях (Windows 2000, Windows XP и Windows Server 2003).

С ульями ассоциируются файлы четырех типов. Все эти типы файлов (с соответствующими расширениями имен файлов) перечислены в табл. 24.4.

Таблица 24.4. Типы файлов, ассоциированных с ульями реестра Windows NT4.0Windows 2000/Windows XP/Windows Server 2003

Тип файла
Описание
Без расширения имени файла
Содержит копию улья
ALT*
Содержит резервную копию жизненно важного улья HKEY LOCAL MACHlNE\System. Только ключ System имеет соответствующий файл с расширением alt. Файлы ульев с таким расширением существуют только в Windows NT/2000. В Windows XP и Windows Server 2003 они больше не используются вследствие того, что в этой операционной системе для хранения и доступа к реестру применяются усовершенствованные алгоритмы
LOG
Содержит журнал транзакций, в котором регистрируются все изменения, внесенные в ключи и значимые элементы улья
SAV
Содержит копии файлов улья в том виде, который они имели на момент завершения текстовой фазы процесса установки. Файлы с расширением sav появляются для ключей Software, System, SAM, Security И Default.
Подобно Windows NT/2000/XP, Windows Server 2003 выполняет резервное копирование содержимого ульев в процессе инсталляции. Процедура инсталляции состоит из двух стадий: стадии текстового режима и стадии графического режима. Когда установка в текстовом режиме завершается, выполняется копирование ульев в файлы с расширением sav. Это делается для того, чтобы защитить ульи от ошибок, которые могут произойти в случае сбоя на графической стадии установки. Если процедура установки даст сбой на графической стадии, то после перезагрузки компьютера будет производиться повтор только графической стадии установки. SAV-файлы используются для перестройки ульев реестра

*Файлы, исключенные изWindows XP иWindows Server 2003

Проблема размера реестра


Одним из основных недостатков INI-файлов, использовавшихся для управления конфигурацией системы и приложений до введения реестра, являлась проблема, вызванная ограничением по размеру файла Win.ini, использовавшегося в ранних версиях Windows для хранения параметров настройки всех установленных в системе приложений. Каждое вновь устанавливаемое приложение вносило свои параметры в этот файл, вследствие чего он очень быстро рос. Когда размер файла Win.ini превышал установленное ограничение (не более 64 Кбайт), добавление новых записей в его состав создавало проблему, поскольку все дальнейшие изменения, вносимые в последние разделы этого файла (за пределами инициализационной границы), игнорировались.
Казалось, что с введением концепции реестра эта проблема была решена. Однако реестр, при всей своей прогрессивности, все же остался ограниченным по объему (на практике, его размер ограничивался до 80% от объема нерезидентного пула памяти). Поэтому проблема снова начала возникать с появлением приложений, интенсивно использующих реестр (к их числу относятся, например, СОМ и терминальные сервисы). При установке в системе таких приложений значительный объем нерезидентного пула поглощался реестром, оставляя слишком малый объем адресного пространства для других приложений, работающих в режиме ядра. В Windows NT/2000 для решения этой проблемы применяется ограничение по размеру реестра, т. е. существует возможность установить ограничение на размер, до которого может разрастаться реестр.
В отличие от Windows NT/2000, в Windows XP и Windows Server 2003 ограничение по размеру реестра практически снято. Код реестра был переработан таким образом, чтобы переместить реестр из нерезидентного пула и передать управление им диспетчеру кэша. Эта новая реализация позволяет реестру разрастаться до существенно больших размеров, нежели в предыдущих версиях, и фактически ограничивает его размеры только объемом доступного дискового пространства. Таким образом, ни в Windows XP, ни в Windows Server 2003 вы больше не найдете опции, позволяющей задать ограничение по размеру реестра.



Усовершенствования в структуре реестра


Новый подход к реализации реестра позволил также существенно повысить производительность системы за счет усовершенствований, перечисленных ниже.
 Ускоренная обработка обращений к реестру. В Windows NT/2000 на производительность реестра влияла его фрагментация. Взаимосвязанные ячейки были разбросаны по всему файлу улья, вследствие чего попытки доступа к такой информации (например, поиск атрибутов ключа) могли приводить к генерации большого количества страничных прерываний и существенно снижали общую производительность системы. В Windows XP и Windows Server 2003 при выделении памяти для ячеек реестра применяется улучшенный алгоритм, при котором взаимосвязанным ячейкам реестра выделяется пространство в пределах одной и той же или близких страниц памяти, что снимает эту проблему.  Улучшенные механизмы для работы с данными большого объема. Во всех версиях, предшествующих Windows XP, неэффективно работающее приложение могло создавать разреженные файлы реестра большого объема за счет постоянного увеличения значения параметра реестра малыми приращениями. В Windows XP и Windows Server 2003 эта проблема решена за счет реализации разбиения крупных ячеек на цепочки ячеек размером по 16 Кбайт.



Администрирование реестра


Непосредственное редактирование реестра, даже в тех случаях, когда оно необходимо, при условии неумелого выполнения может привести к большим неприятностям. Поэтому, если вы чувствуете себя неуверенно или просто не можете позволить себе затратить значительное время для проведения восстановительных работ, не ставьте смелых экспериментов над реестром своей операционной системы (будь то Windows NT 4.0/Windows 2000, Windows XP или Windows Server 2003). Вполне возможно, что единственная ошибка приведет к необходимости переустановки операционной системы.

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



Использование редактора реестра


Большинство операционных систем Windows имеет в своем составе утилиты, предназначенные для просмотра и редактирования реестра, так называемые редакторы реестра. В Windows NT/2000 существует два таких редактора. Традиционная программа редактирования реестра Windows NT носит название Regedt32.exe. Эта программа наследуется от предыдущих версий Windows NT и позволяет редактировать реестр Windows NT/2000 с помощью методов, которые не поддерживаются в Windows 9x/ME. Более новая программа, Regedit.exe, была первоначально написана для Windows 95. Она обладает многими из возможностей Regedt32.exe и снабжена интерфейсом Windows Explorer. Версия Regedit.exe, которая имеется в составе Windows NT/2000, почти полностью идентична аналогичному приложению, имеющемуся в составе Windows 9x/ME. По сравнению с Windows NT/2000, Windows XP и продукты из семейства Windows Server 2003 и в этой области предлагают усовершенствование. Теперь все задачи по редактированию реестра могут выполняться только с помощью редактора реестра Regedit.exe, который в дополнение к своим традиционным возможностям предоставляет и все функции, которые ранее были доступны только через редактор Regedt32.exe (установка разрешений на доступ к ключам реестра, импорт и экспорт поддеревьев реестра и др.).

Стоит, правда, отметить и то, что Regedit.exe в Windows XP и Windows Server 2003 не реализует одной, но очень важной функции, которая была присуща Regedt.32.exe. Речь идет о возможности использования редактора реестра в режиме "только для чтения". Этот режим позволяет защитить реестр от случайных непреднамеренных изменений в процессе его просмотра и знакомства с его структурой. Именно наличие команды Read Only Mode в меню Options и делало Regedt32.exe предпочтительным средством, с помощью которого новички могли безбоязненно начинать знакомство со структурой реестра.



Запуск Regedit


По умолчанию утилита Regedit.exe в процессе установки операционной системы копируется в каталог %SystemRoot% (например, C:\Windows). Обычно редактор реестра запускается с помощью команды Run (Выполнить) меню Start (Пуск).
Редактор реестра можно также запустить из командной строки с ключом /s. В этом случае Regedit.exe не будет предоставлять графического пользовательского интерфейса и не будет запрашивать подтверждения пользователя на выполнение указанной ему операции. Эта опция позволяет использовать редактор реестра в командных файлах. Например, чтобы выполнить импорт файла реестра MyRegSettings.reg в состав реестра без запроса подтверждения, дайте следующую команду: Regedit /s MyRegSettings.reg



Интерфейс программы Regedit


Окно редактора реестра Regedit.exe состоит из четырех основных областей (рис. 24.3).
 Строка меню. В этой строке содержатся основные пункты меню: File, Edit, View, Favorites (этот пункт меню впервые был введен в Windows 2000) и Help.  Левая панель (левое подокно). Отображает иерархию реестра, организованную в виде ключей (в литературе они часто обозначаются термином "разделы") и вложенных ключей (другие часто встречающиеся термины — "подключи" или "подразделы").  Правая панель (правое подокно). Показывает текущие параметры выбранного ключа реестра, известные также как значимые элементы (value entires). Каждый параметр реестра характеризуется именем, отображаемым в столбце Name правой панели, типом данных, отображаемым в столбце Туре (на тип данных указывает и небольшой значок, расположенный чуть левее имени), и значением, отображаемым в столбце Data.  Строка состояния. Строка состояния указывает путь к выбранному элементу реестра. Она нужна, чтобы отображать полный путь к ключу реестра, в составе которого содержится выделенный параметр.



Рис. 24.3. Окно редактора реестра Regedit.exe с обозначением основных областей

В окне редактора реестра Registry Editor отображаются ключи только верхнего уровня иерархии реестра, ответвляющиеся от значка My Computer. Это — имена корневых ключей, базовая информация о которых была приведена в начале этой главы.
Если выполнить щелчок мышью, указав курсором на значок [+], расположенный левее значка любой из папок, то развернется соответствующий ключ, в котором отобразится иерархия содержащихся в его составе вложенных ключей. Эта операция разворачивает дерево ключа реестра до следующего уровня вложенности и во многом напоминает аналогичную операцию раскрытия папок и вложенных папок в Explorer.
Если в составе вложенных ключей имеются другие вложенные ключи, то слева от них тоже будут находиться значки [+], которые можно в свою очередь развернуть для просмотра следующего уровня иерархии. Этот послойный метод организации реестра известен под названием вложения (nesting) и допускает множество уровней.
По достижении самого нижнего уровня вложения слева от вложенного ключа появится значок [—], который указывает, что дальнейшее раскрытие невозможно. После этого перемещение по иерархическому дереву будет возможно только в одном направлении — вверх. Если рядом с ключом нет ни значка [+], ни значка [—], это означает, что он не содержит вложенных ключей.
В табл. 24.5 приведен список клавиш, используемых для просмотра реестра с помощью Regedit.exe

Таблица 24.5. Клавиши, используемые в Registry Editor

Клавиша
Действие
<+>
Разворачивает выбранный ключ на один уровень, показывая вложенные подключи
<- >
Сворачивает выбранный ключ на один уровень
вверх
Перемещает вверх к следующему ключу
вниз
Перемещает вниз к следующему ключу
<- >>
Разворачивает выделенный ключ на один уровень, показывая его подключи; если подключен нет, то перемещает вниз к следующему ключу
<<->
Сворачивает выделенный ключ, если он был развернут; в противном случае перемещает вверх к следующему ключу
<Таb>
Перемещает в другое подокно окна Registry Editor

В правой панели окна Registry Editor располагаются параметры реестра, каждый из которых характеризуется именем, типом данных, и собственно данными.
Каждый параметр реестра характеризуется именем. Многие параметры, предоставляемые Microsoft, используют имя Default (вы убедитесь в этом, когда начнете интенсивно работать с Registry Editor). Имена параметров располагаются в столбце Name правой панели окна Registry Editor. Эти имена присваиваются значимым элементам разработчиками приложений и физических устройств.
Типы данных, характеризующие параметры реестра, отображаются в столбце Туре.
Утилита Regedit.exe для удобства применяет также специальные значки, отображаемые чуть левее имен параметров и позволяющие быстро отличать двоичные данные от текстовых. Краткое описание значков, отображаемых в окне редактора реестра Regedit, приведено в табл. 24.6.

Таблица 24.6. Значки, соответствующие типам данных в окне Registry Editor

Тип данных
Описание

Означает, что данные имеют двоичный формат (типы данных REG_BINARY И REG_DWORD)

Означает текст и символы, которые вы можете прочесть, например, "On The Microsoft Network" (строковые типы данных - REG_EXPAND_SZ, REG_MULTI_SZ И REG_SZ)

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

Команды меню File


Команда Import (Импорт) позволяет импортировать в реестр предварительно экспортированные REG-файлы и файлы ульев реестра.
Команда Export (Экспорт) позволяет сохранить весь реестр или его часть в виде REG-файла или файла другого типа, например, файла улья реестра или текстового файла формата ASCII.
Чтобы экспортировать ветвь реестра, выполните следующие действия:
1. Выделите ветвь реестра, затем выберите в меню File (Файл) команду Export.
2. В поле File name открывшегося диалогового окна Export Registry File (рис. 24.4) введите имя файла. По умолчанию файлу будет присвоено расширение reg. Чтобы сохранить экспортируемый файл в другом формате, выберите нужную опцию из списка Save as type, расположенного непосредственно под полем File name. Обратите внимание, что, несмотря на все внешнее сходство, утилиты Regedit.exe, поставляемые в составе Windows 9x, Windows NT 4.0, Windows 2000, Windows XP и Windows Server 2003, представляют собой разные версии этого приложения. Поэтому версия Regedit.exe из Windows XP или Windows Server 2003 позволяет сохранять экспортированные файлы реестра как в формате Windows XP/ Windows Server 2003 (для этой цели служит опция Registration Files (*.reg)), так и в формате файлов реестра Windows 9x/NT 4 (для этой цели служит опция Win9x/NT 4 Registration Files (*.reg)).



Рис. 24.4. Диалоговое окно Export Registry File

3. Если требуется сохранить часть реестра, выбирайте опцию сохранения только выделенной ветви реестра. Для этого установите переключатель Selected branch из группы Export range. Однако, если вы часто модифицируете реестр, то экспорт всего реестра целиком — неплохая идея. Это даст вам дополнительные гарантии восстановления в случае ошибки.
4. Нажмите кнопку Save.
Сохраненный файл можно просмотреть в текстовом редакторе, чтобы убедиться в правильности сохранения. Экспортированные файлы реестра содержат текст ASCII без каких-либо символов форматирования.

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

Обращаясь с экспортированными файлами реестра, следует соблюдать осторожность, особенно в том случае, если экспорт производится с целью экспериментов. Например, опытные администраторы, хорошо знакомые с реестром, экспериментируют над своей системой или решают некоторые проблемы путем редактирования экспортированного файла реестра, а затем импортируют его обратно в систему. Однако перед тем, как вносить такие изменения, рекомендуется принять следующие меры предосторожности:
1. Предварительно создайте резервную копию экспортированного файла, который требуется редактировать. Если при редактировании будет допущена ошибка, которая приведет к возникновению проблем, можно будет импортировать в реестр резервную копию этого REG-файла.
2. Если вы часто экспериментируете с реестрами различных операционных систем, то экспортированные файлы реестров каждой из этих операционных систем рекомендуется держать отдельно друг от друга, в различных каталогах, специально выделенных для этой цели. Это поможет избежать случайного импорта в систему несовместимого файла реестра.
Команды Load Hive (Загрузить улей) и Unload Hive (Выгрузить улей) действуют по аналогии с одноименными командами, существовавшими в редакторе реестра Regedt32.exe. Они позволяют загрузить в реестр ранее сохраненный файл улья или выгрузить ранее загруженный файл улья соответственно. Следует отметить, что эти команды меню File действуют только применительно к ключам HKEY_USERS И HKEY_LOCAL_MACHINE и будут эфективны только в том случае, когда выбран один из этих ключей. Во всех остальных случаях эти команды будут недоступны. Улей, будучи загружен в реестр, станет вложенным ключом одного из упомянутых выше ключей.
Команда Connect Network Registry (Подключить сетевой реестр) позволяет выполнить редактирование реестра на другом компьютере, работающем в составе сети.
Чтобы отключиться от реестра, расположенного на удаленном компьютере, используется команда Disconnect Network Registry (Отключить сетевой реестр). Если вы на текущий момент не подключены к сетевому реестру, эта опция будет недоступна.

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

Команду Print из меню Registry можно использовать для распечатки выбранной ветви реестра (которая может потребовать довольно большое количество листов бумаги).
Команда Exit закрывает окно Regedit и завершает сеанс работы с этой программой.



Команды меню Edit


Команда Modify (Изменить) используется для изменения данных, содержащихся в составе параметров реестра. Эта опция будет доступна только в том случае, если выбрать один из параметров, перечисленных в правой панели окна Registry Editor. Команда Modify Binary Data (Изменить двоичные данные) позволяет редактировать любые данные (в том числе и данные других форматов) в окне двоичного редактора. Эта команда также будет доступна только в том случае, если выбран один из параметров реестра, перечисленных в правой панели окна редактора реестра.
Команда New (Создать) позволяет добавлять в реестр новые ключи и параметры строковых типов, двоичные параметры и параметры типа REG_DWORD (рис. 24.5). Выбирать тип параметра можно в подменю New в контекстном меню, раскрывающемся по нажатию правой кнопки мыши на выбранном ключе.



Рис. 24.5. Команда New позволяет добавлять в реестр новые ключи, а также строковые и двоичные параметры

Опции Rename (Переименовать) и Delete (Удалить) меню Edit позволяют, соответственно, переименовать или удалить значимый элемент реестра. Удалить значимый элемент можно и другим способом: выделите нужный элемент, выполнив на нем щелчок мышью, а затем нажмите клавишу <Del>. Аналогичным образом, для быстрого переименования значимого элемента можно указать на него курсором, выполнить щелчок правой кнопкой мыши, выбрать из контекстного меню команду Rename и ввести новое имя.

Удаление параметров и ключей реестра с помощью утилиты Regedit — это необратимая операция. Regedit не имеет команды Undo, поэтому при удалении параметров и ключей следует соблюдать осторожность.

Команда Copy Key Name (Копировать имя раздела) позволяет скопировать в буфер обмена имя ключа, выделенного на текущий момент. Впоследствии скопированное имя можно вставить в любой текст с помощью команды Paste (Вставить), имеющейся в любом текстовом редакторе. Поскольку реестр представляет собой сложную иерархическую базу данных, пути к нужному элементу могут оказаться очень длинными и сложными для запоминания. Поэтому многие по достоинству оценили удобство этой функции. Команду Copy Key Name очень удобно использовать в сочетании с командами Find и Find Next.
Команды Find (Найти) и Find Next (Найти далее) используются для поиска конкретных элементов или данных (включая строки и слова) в реестре. Можно выполнять поиск ключей, параметров, данных или любой их комбинации. Искомые значения могут быть как текстовыми, так и числовыми. Наконец, особого внимания заслуживает команда Permissions (Разрешения), которая позволяет управлять правами доступа к ключам реестра и осуществлять аудит действий в отношении ключей реестра. Здесь необходимо упомянуть, что в Windows NT/2000 эти возможности были доступны только в Regedt32.exe, где для их установки требовалось использовать опции меню Security. В Windows XP и Windows Server 2003 все эти функциональные возможности были интегрированы в состав редактора реестра Regedit.exe. Права доступа к ключам реестра можно назначать вне зависимости от типа файловой системы на разделе, где содержатся файлы операционной системы.

Изменение прав доступа к ключу реестра может иметь серьезные последствия. Например, если вы установите права доступа типа No Access на ключ, необходимый для конфигурирования сети с помощью опции Network Connections из Control Panel, то это приложение работать не будет. Права полного доступа (Full Control) к ключам реестра должны иметь, как минимум, члены группы Administrators и сама операционная система (Operating System). Такая установка прав доступа позволяет гарантировать возможность восстановления ключа реестра администратором при запуске системы.

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

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

В Regedit.exe команды из меню Permissions по назначению ключам реестра прав владельца и прав доступа работают по такому же принципу, как и аналогичные команды Windows Explorer по установке прав доступа к файлам и каталогам на разделах NTFS. Чтобы установить права доступа к конкретному ключу реестра, проделайте следующее:
1. Перед внесением изменений выполните резервное копирование тех ключей реестра, на которые будут устанавливаться права доступа.
2. Выделите ключ, на который собираетесь установить права доступа. После этого выберите команду Permissions меню Edit.
3. В открывшемся диалоговом окне (рис. 24.6) выберите имя нужного пользователя или группы в поле Group or user names (Группы или пользователи) и установите для них нужный тип прав доступа в поле Permissions for <group or user name>. Типы прав доступа, которые вы сможете установить, перечислены в табл. 24.7.

Таблица 24.7. Типы прав доступа к ключам реестра

Тип доступа
Описание
Read
Позволяет пользователям, внесенным в список Permissions, просматривать содержимое ключа реестра, не позволяя сохранять изменения
Full Control
Позволяет пользователям, внесенным в список Permissions, получать доступ к ключу, редактировать его содержимое и изменять к нему уровень прав доступа
Special Permissions
Предоставляет пользователям, внесенным в список Permissions, индивидуально назначаемые комбинации прав доступа и редактирования к избранному ключу. Подробное описание типов и комбинаций Special Permissions можно найти далее в этой главе

 



Рис. 24.6. Диалоговое окно, позволяющее задать права доступа к ключам реестра

4. Чтобы установить аудит на доступ к реестру и задать комбинацию прав доступа типа Special Permissions, нажмите кнопку Advanced (Дополнительно). Раскроется диалоговое окно Advanced Security Settings for <Registry Key Name>, где <Registry Key Name> — имя ключа, для которого требуется задать расширенные права доступа (рис. 24.7). Выберите имя пользователя или группы из списка Permission entries и нажмите кнопку Edit. Раскроется следующее окно (рис. 24.8), в котором вам будут предоставлены опции по расширенному редактированию прав доступа к ключам реестра. Типы прав доступа, которые вы сможете установить в этом окне, перечислены в табл. 24.8.

Таблица 24.8. Флажки диалогового окна Permission entry for

Флажок
Назначаемые права
Query Value
Дает право чтения значимых элементов из ключа реестра
Set Value
Дает право установить значимый элемент в ключе реестра
Create Subkey
Дает право создавать подключи в выбранном ключе реестра
Enumerate Subkey
Дает право идентифицировать подключи выбранного ключа реестра
Notify
Дает право установить аудит на ключи реестра
Create Link
Дает право создавать символические ссылки в конкретном подключе реестра
Delete
Дает право удаления выделенного ключа
Write DAC
Дает право получать доступ к ключу и создавать/модифицировать для него список контроля доступа (Access Control List, ACL)
Write Owner
Дает право присвоения прав владельца данного ключа
Read Control
Дает право просматривать параметры безопасности, установленные для данного ключа

 



Рис. 24.7. Окно Advanced Security Settings for Winlogon



Рис. 24.8. Окно, предоставляющее расширенные опции по редактированию прав доступа к ключам реестра

Как системный администратор, вы можете присвоить себе права владельца на ключ реестра и ограничить доступ к этому ключу. Заменить права владельца можно на вкладке Owner, а установить аудит — на вкладке Auditing.
Пользователь, зарегистрировавшийся на компьютере с правами администратора, может присвоить себе права владельца на любой ключ реестра. Однако, если администратор будет иметь права владельца на ключ без прав доступа типа Full Control, то ключ не может быть возвращен первоначальному владельцу, а в журнале аудита появится соответствующее сообщение.
Аудит действий в отношении реестра
Чтобы установить аудит на действия в отношении реестра, необходимо выполнить следующие действия:
1. Активизировать в системе аудит и задать политику аудита на все события, которые, с вашей точки зрения, подлежат аудиту.
2. Указать пользователей и группы, за действиями которых в отношении выбранных ключей реестра требуется установить аудит. Воспользуйтесь для этого вкладкой Auditing (Аудит) окна, показанного на рис. 24.7.
3. Результаты аудита можно просматривать в системном журнале Security с помощью оснастки Event Viewer.
Чтобы иметь возможность выполнить любое из указанных выше действий, необходимо зарегистрироваться на компьютере с использованием учетной записи из группы Administrators. Политика аудита задается для каждого компьютера индивидуально. Прежде чем задавать политику аудита в отношении избранных ключей реестра, необходимо активизировать на компьютере аудит событий, имеющих отношение к системе безопасности.

Как минимум, при установке аудита необходимо выбрать опцию Failure (Отказ) для событий типа File and Object Access. Если выбрать опцию Success (Успех), то в системном журнале может появиться большое количество записей, не имеющих большой практической значимости.

Команды меню View


Команда Status Bar (Строка состояния) меню View (Вид) позволяет при желании отключить строку состояния. Поскольку строка состояния помогает быстрее ориентироваться в реестре, отображая путь к текущему ключу, ее рекомендуется постоянно держать включенной.
Опция Split (Разделить) перемещает курсор мыши на разделитель левой и правой частей окна Registry Editor, после чего остается только переместить мышь влево или вправо, чтобы найти удобную позицию для разделителя, и выполнить щелчок левой кнопкой мыши.
Команда Display Binary Data (Вывод двоичных данных) из меню View, впервые появившаяся в Windows XP, становится доступной только после того, как вы выберете один из параметров реестра, отображаемых в правой панели окна Registry Editor. Эта команда позволяет вам просматривать значение параметра, используя один из следующих трех форматов: Byte, Word или Dword (рис. 24.9). Обратите внимание, что эта команда не позволяет вам выполнять редактирование данных (если вам требуется выполнить именно эту операцию, следует выбрать команду Modify Binary Data из меню Edit).
В меню View имеется еще одна команда — Refresh (Обновить). При внесении изменений в реестр не все они могут отображаться в окне редактора реестра немедленно после внесения модификации. Обновить окно Registry Editor можно с помощью команды Refresh или нажатием клавиши <F5>.

Как правило, в Windows NT 4.0 многие изменения (в том числе и внесенные путем редактирования реестра) входят в силу только после перезагрузки системы. В Windows 2000 впервые (для операционных систем Windows NT) была введена полноценная поддержка Plug and Play, которая была расширена и усе- вершенствована в Windows XP и Windows Server 2003. Поэтому перезагрузок потребуется меньше. Тем не менее, ряд модификаций все же входят в силу только после перезагрузки операционной системы.



Рис. 24.9. Окно Binary Data позволяет просматривать значение выбранного параметра реестра в одном из трех возможных форматов — Byte, Word или Dword



Меню Favorites


Одним из полезных новшеств, впервые появившихся в Windows 2000, является то, что пункт меню Favorites (Избранное) присутствует теперь повсюду, и редактор реестра Regedit.exe — не исключение (рис. 24.10).
Все, кто часто выполняет поиск ключей и значимых элементов в реестре, а также интенсивно занимается его редактированием, по достоинству оценят эту удобную функциональную возможность. С помощью меню Favorites можно создать список наиболее часто редактируемых ключей реестра (и не повторять затем громоздкую процедуру поиска).
Чтобы добавить ключ реестра в список Favorites, проделайте следующее:
1. Выделите ключ реестра, который требуется добавить в список Favorites.
2. В меню Favorites выберите команду Add to Favorites (Добавить в избранное).
3. В раскрывшемся диалоговом окне Add to Favorites (рис. 24.11) согласитесь с именем ключа, предложенным по умолчанию, или введите новое имя в поле Favorite name. Нажмите кнопку ОК, и ключ появится в списке Favorites.
Теперь вы в любой момент сможете быстро перейти к нужному ключу, выбрав его имя из списка Favorites. Удалить ключ реестра из списка Favorites очень просто — для этого достаточно выбрать в меню Favorites команду Remove Favorite (Удалить из избранного), а затем в раскрывшемся диалоговом окне выделить ключ, который требуется удалить из списка Favorites, и нажать кнопку ОК.



Рис. 24.10. С выходом Windows 2000 в Regedit появился пункт меню Favorites



Рис. 24.11. Диалоговое окно Add to Favorites



Резервное копирование и восстановление реестра


Прежде чем завершить эту главу примерами, позволяющими на практике освоить методы редактирования реестра, необходимо напомнить, что реестр является жизненно важным компонентом системы, и единственная ошибка в его редактировании может привести к проблемам в работе с системой, включая и проблемы с загрузкой. Если реестр окажется поврежденным, а в вашем распоряжении не найдется работоспособной и пригодной к использованию резервной копии, то весьма высока вероятность того, что единственным методом решения возникшей проблемы будет переустановка операционной системы.
Таким образом, прежде чем начинать редактирование реестра, необходимо выполнить его резервное копирование. Windows XP и Windows Server 2003 предоставляют множество методов резервного копирования реестра, в том числе перечисленные ниже.
 Экспорт ключа реестра, который вы собираетесь редактировать. Это простейший метод резервного копирования реестра, который рекомендуется выполнять в любом случае. Если внесенные вами изменения приведут к нежелательным эффектам, вы сможете быстро восстановить первоначальное состояние путем импорта этого файла в реестр.  System Restore — функция System Restore создает точки восстановления, фактически представляющие собой "моментальные снимки" системной конфигурации, которая включает в себя и данные реестра. Перед внесением любых серьезных изменений в конфигурацию системы (включая и непосредственное редактирование реестра) рекомендуется вручную создать точку восстановления, которая позволит выполнить быстрое восстановление системы в случае возникновения неполадок и проблем с загрузкой. Что особенно важно, System Restore может применяться как при нормальном режиме загрузки, так и в безопасном режиме (safe mode). Следует, однако, отметить, что данная функция имеется только в Windows XP.  Процедура автоматического восстановления поврежденной системы (Automated System Recovery, ASR). Никогда не пренебрегайте подготовкой к процедуре ASR перед внесением серьезных изменений в конфигурацию системы. Процедуры подготовки и выполнения ASR были подробно рассмотрены в главе 23 "Восстановление системы".  Резервное копирование системных конфигурационных данных (System State). Подобно предыдущим двум опциям, этот вариант резервного копирования реестра подробно рассматривался в главе 23. Здесь же стоит отметить один факт, весьма важный с точки зрения резервного копирования и восстановления реестра, а именно: при выполнении резервного копирования системных конфигурационных данных система сохраняет резервные копии файлов реестра в каталоге %SystemRoot%\repair. Если ульи реестра получат повреждения, то вы можете воспользоваться этими резервными копиями для восстановления системы, не прибегая к громоздкой процедуре переустановки системы и последующего восстановления системных конфигурационных данных. Однако пользоваться этим методом могут только опытные пользователи, которые отлично понимают, что именно они делают.  Ручное резервное копирование реестра. Чтобы выполнить ручное резервное копирование и восстановление реестра Windows NT/2000/XP или Windows Server 2003, скопируйте на съемный носитель следующие файлы, хранящиеся в каталоге %SystemRoot%\system32\config:  Appevent.evt  Secevent.evt  Sysevent.evt  Default  Security  System  Default.log  Security.log  System.alt*  Default.sav   Software  System.log  Sam  Software.log  System.sav  Sam.log  Software.sav Userdiff

* Файл, присутствующий только в Windows NT/2000.

Использование этого метода резервного копирования и восстановления реестра сопряжено с некоторыми сложностями. Так, весьма логично было бы использовать для резервного копирования дискету емкостью 1,44 Мбайт, но отнюдь не всегда ее объема хватит для копирования всех файлов. Далее, если раздел, на котором установлена поврежденная копия Windows XP или Windows Server 2003, отформатирован для использования NTFS, то вы столкнетесь с некоторыми трудностями при загрузке с дискет MS-DOS или Windows 9x/ME (хотя эта трудность легко преодолима, если вы воспользуетесь утилитой NTFSDOS, которую можно загрузить, посетив сайт http://www.sysinternals/com). Помимо этого, в данной ситуации могут помочь загрузочная дискета Windows Server 2003, параллельная установка операционной системы, а также Recovery Console.



Некоторые методы решения проблем путем редактирования реестра


Теперь, после рассмотрения общих концепций реестра и его усовершенствований, введенных с выходом Windows XP и Windows Server 2003, средств и методов его редактирования, резервного копирования и восстановления, рассмотрим пару примеров настройки и конфигурирования Windows, а также решения проблем и устранения неполадок с помощью редактирования реестра. Цель этих примеров — продемонстрировать на практике методы модификации системного реестра, рассмотренные в предыдущих разделах данной главы.
Стоит также отметить, что некоторые из приведенных методов специфичны для Windows Server 2003, в то время как некоторые другие применимы также и к Windows NT/2000.



Remove Programs на панели управления


Утилита Add/ Remove Programs на панели управления предназначена для установки, удаления или модификации приложений, установленных в Windows. В Windows XP и Windows Server 2003 эта программа-мастер обладает существенно улучшенным и интуитивно понятным пользовательским интерфейсом (рис. 24.12).

Рис. 24.12.Окно Add or Remove Programs
Однако, несмотря на все улучшения, в работе этого мастера могут возникать неполадки, вызванные некорректно или не полностью удаленными приложениями. В частности, если одно из приложений удалено некорректно, то ссылка на него по-прежнему будет фигурировать в списке Currently installed programs. При этом любая попытка воспользоваться мастером установки и удаления приложений (путем нажатия на кнопку Change/Remove) будет приводить к появлению сообщений об ошибке, информирующих пользователя об отсутствии файлов, требующихся для корректного удаления приложения и невозможности завершить процедуру удаления. Несуществующие приложения по-прежнему останутся в списке. Возникновение данной проблемы возможно как в Windows 9x/ME, так и в Windows NT/2000/XP и Windows Server 2003.
Чтобы устранить эту проблему и удалить несуществующие приложения из списка установленных программ, проделайте следующее:
1. Запустите редактор реестра (Regedit.exe) и раскройте ключ HKEY_LOCAL_MACHINE\SOFTWARE\ Microsoft\Windows\CurrentVersion\Uninstall.
2. В составе этого ключа найдите вложенный ключ, соответствующий приложению, которое требуется удалить из списка установленных программ. Если наименование программы не следует с очевидностью из имени вложенного ключа, просмотрите содержимое всех вложенных ключей списка. В составе каждого из вложенных ключей имеется параметр DispiayName, значение которого представляет собой строки, отображаемые мастером установки и удаления программ.
3. Обнаружив ключ, в составе которого имеется параметр DispiayName, задающий имя приложения, которое должно быть удалено из списка установленных программ, удалите этот ключ вместе со всем его содержимым.
Никогда не удаляйте ключ Uninstall целиком!
4. Закройте редактор реестра и убедитесь в том, что мастер установки и удаления программ больше не отображает несуществующего приложения.
Действуя в соответствии с этой рекомендацией, вы удалите из реестра только ссылку на несуществующее приложение, отображаемую мастером установки и удаления программ. Несмотря на это, существует вероятность того, что некоторые из файлов некорректно удаленного приложения все же останутся в системе. Чтобы полностью удалить такое приложение, вам необходимо удалить из системы все его файлы и все параметры реестра, относящиеся к этому приложению.


Сразу же следует сказать, что


Сразу же следует сказать, что в Windows XP и Windows Server 2003 появление "Синего экрана смерти" (Blue Screen of Death, BSOD) стало гораздо более редким событием, нежели в Windows NT/2000. Как правило, теперь Windows корректно обрабатывает многие ситуации, которые в предыдущих версиях могли вызвать такого рода сбой.
Однако, если вы хотите в ознакомительных целях посмотреть, что же представляет собой пресловутый "Синий экран" (который более подробно будет рассмотрен в следующей главе), вы можете это сделать путем несложного редактирования реестра. Данный совет применим как к Windows 2000/XP, так и к операционным системам из семейства Windows Server 2003. Дело в том, что все перечисленные операционные системы имеют возможность искусственной генерации ошибки ядра (сообщения STOP) с последующим созданием аварийного дампа памяти (Memory.dmp). Экран сообщения STOP, который при этом появится, будет содержать следующее сообщение:
*** STOP: 0x000000E2 (0x00000000,0x00000000,0x00000000,0x00000000)  The end-user manually generated the crashdump.
По умолчанию эта функция блокирована. Для ее активизации следует открыть реестр, найти ключ HKEY_LOCAL_MACHINE \SYSTEM\CurrentcontrolSet\ Services\i8042prt\Parameters, добавить В его состав параметр CrashOnCtrlScroll(тип данных REG_DWORD) и установить его равным 1.
После перезагрузки вы сможете вручную создать аварийный дамп и посмотреть на "синий экран". Для этого нажмите правую клавишу <Ctrl> и, удерживая ее в этом состоянии, дважды нажмите клавишу <Scroll Lock>


Если вы регулярно выполняете резервное


Если вы регулярно выполняете резервное копирование вашей системы, то уже наверняка заметили, что встроенная программа Backup, имеющаяся в составе Windows 2000, Windows XP и Windows Server 2003, исключает из резервного копирования целый ряд файлов. Чтобы просмотреть список этих файлов, запустите программу Backup, затем выберите команду Options из меню Tools и перейдите на вкладку Exclude Files (Исключить файлы) (рис. 24.13).
В обычных условиях, вероятнее всего, эти файлы действительно должны быть исключены из процессов резервного копирования и восстановления. Однако возможны и такие ситуации, когда системный администратор захочет включить эти файлы в процедуры резервного копирования и восстановления системы.
Все файлы, которые по умолчанию исключаются из процедур резервного копирования и восстановления, перечислены под следующим ключом реестра: HKLM\SYSTEM\CurrentControlSet\Control\ BackupRestore\FilesNotToBackup (рис. 24.14).
Несмотря на то, что на вкладке Exclude Files окна Options программы Backup пользователю предоставляется возможность редактирования списка файлов, исключаемых из процессов резервного копирования и восстановления, внесенные изменения будут действовать только применительно к тому пользователю, от имени которого вы зарегистрировались в системе (т. е. они будут записаны в реестре под ключом HKEY_CURRENTJJSER).

Рис. 24.13. Вкладка Exclude Files окна Options встроенной программы Backup


Рис. 24.14. Содержимое ключа  HKLM\SYSTEM\CurrentControlSet\Control\ BackupRestore\FilesNotToBackup
Таким образом, если вам требуется отредактировать этот список файлов таким образом, чтобы изменения действовали в масштабах всей системы, вам не избежать ручного редактирования реестра.
Параметры, которые по умолчанию находятся в составе ключа FilesNotToBackup (все они имеют тип данных REG_MULTI_SZ), перечислены в табл. 24.9.
Таблица 24.9. Список параметров реестра ключа FilesNotToBackup
Параметр Значение
ASR error file*
%SystemRoot%\repair\asr.err
ASR log file*
%SystemRootf%\repair\asr.log
Catalog database*
%SystemRoot%\sysiem32\CatRoot2\ * /s
Client Side Cache
%SystemRoot%\csc\* /s
ComPlus
%SystemRoot/%\Registration\*.crrnlog /s
Digital Rights Management (DRM) folder*
%SystemDrive%\Documer\te and SettingsW/ l/sers\DRM\* /s
Internet Explorer
%UserProfile%\mdex.dai /s
Memory Page File
\Pagefile.sys
Microsoft Writer (Bootable state)*
%SystemRoot%\Registration\*.clb \ *. crmlog /s
Microsoft Writer (Service state)*
%SystemRoot%\system32\NtmsData\*
MS Distributed Transaction
%SystemRoot%\system32\DTCLog\MSDTC.LOG
Netlogon*
%SystemRoot%\netlogon.chg
NTDS**
%SystemRoot%\NTDS\*
NtFrs
%SystemRoot%\ntf rs\jet\* /s %SystemRoot%\debug\NtFrs*
%SystemRoot%\sysvol\domain \DO_NOT_REMOVE_NtFrs_Prelnstall_Directory\*/s
%SystemRoot%\sysvol\domain \NtFrs_PreExisting __ See_EventLog\* /s
%SystemRoot%\sysvol\staging\domain\NTFRS_*
Power Management
\hiberfil.sys
Registry Writer**
%SystemRoot%\system32\NtmsData\*
Task Scheduler**
%SystemRoot%\Jasks\sc hed Ig u . txt
Temporary Files
%TEMP%\* /s
VSS Default Provider*
\System Volume lnformation\*{3808876B-C176-4e48-B7AE-04046E6CC752} /s
VSS Service Alternate DB**
\System Volume lnformation\*.{7cc467ef-6865-4831-853f-2a4817fd1bca}ALT
VSS Service DB**
\System Volume lnformation\*.{7cc467ef-6865-4831-853f-2a4817fd1bca}DB
Winlogon debug**
%W//VD/R%\debug\*
* Параметры, новые для Windows XP.
** Параметры, новые для Windows Server 2003.
Еще более сложная ситуация возникает с ключами реестра, которые должны исключаться из процесса резервного копирования. Эти ключи даже не перечисляются на вкладке Exclude Files окна Options; следовательно, пользовательский интерфейс не предоставляет возможности их редактирования. Сам этот список хранится в реестре под ключом HKLM\SYSTEM\ CurrentContrоlSet\Control\BackupRestore\KeysNotToRestore (рис. 24.15).
Список параметров реестра, по умолчанию исключаемых из процесса резервного копирования в Windows Server 2003, приведен в табл. 24.10.
Таблица 24.10. Список параметров ключа HKLM\SYSTEM\Current ControlSet\Control\BackupRestore\KeysNotToRestore
Параметр
Значение
Active Directory Restore
CurrentControlSet\Services\NTDS\Restore In Progress \CurrentControlSet\Services\NTDS\Parameters \New Database QUID
ASR Information
CurrentControlSet\Control\ASR\
Fault Tolerance
Disk\
Installed Services
CurrentControlSet\Services\*
LDM Boot Information
CurrentControlSet\Services\dmio\boot info\
LDM Boot Information (dmboot)
CurrentControlSet\Services\dmboot\
Mount Manager
Мои nted Devices\
NtFrs
CurrentControlSet\Services\NtFrs\Parameters\Backup/Re store\Process at Startup\
Pending Rename Operations
CurrentControlSet\Control\Session Man-ager\PendingFileRenameOperations
Plug and Play
CurrentControlSet\Enum\CurrentControlSet \Control\CriticalDeviceDatabase\
Removable Storage Manager
CurrenlControlSet\Control\NTMS\lrnporlDatabase
Session Manager
CurrentControlSet\Control\Session
Windows Setup
Setup\SystemPartition


Рис. 24.15. Содержимое ключа реестра HKLM\SYSTEM\CurrentControlSet\Control \BackupRestore\KeysNotToRestore
Обратите внимание на то, что в составе ключа реестра HKLM\SYSTEM\ CurrentControlSet\Control\BackupRestore В Windows XP И Windows Server 2003 появился новый вложенный ключ — HKEY_LOCAL_MACHINE\SYSTEM\ CurrentControlSet\Control\BackupRestore\AsrKeysNotToRestore (рис. 24.16). Как видно из приведенной иллюстрации, этот ключ содержит параметр Plug & Play, указывающий на базу данных критических устройств. Редактировать этот параметр не следует, поскольку эта база данных содержит устройства, для которых программа Windows Setup должна произвести повторную энумерацию в ходе процесса ASR.


Рис. 24.16. Ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\BackupRestore\AsrKeysNotToRestore

и администраторов оценили новую весьма


Большинство опытных пользователей и администраторов оценили новую весьма полезную возможность квотирования дискового пространства, появившуюся впервые в составе Windows 2000 и, безусловно, присутствующую в Windows XP и Windows Server 2003. События, связанные с квотированием дискового пространства, могут регистрироваться в системном журнале, и вкладка Quota (Квота) окна свойств диска NTFS предоставляет простейшие опции для конфигурирования режима регистрации этих событий (рис. 24.17).
По умолчанию регистрация событий, связанных с квотированием дискового пространства, происходит асинхронно (один раз в час). Если вы хотите, чтобы система регистрировала такие события немедленно после того, как пользователь превысит пороговое значение, раскройте редактор реестра, найдите ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ Filesystem и создайте параметр NtfsQuotaNotifyRate (тип данных REG_DWORD). Задайте для этого параметра значение, соответствующее требуемой частоте регистрации событий квотирования в системном журнале (временной интервал в секундах).

Рис. 24.17. Вкладка Quota окна свойств раздела NTFS


троянских коней" регистрируют свою информацию


Большинство вирусов, "червей" и " троянских коней" регистрируют свою информацию в системном реестре с тем, чтобы автоматически стартовать при загрузке операционной системы. Список излюбленных ключей, которые чаще всего используются в этих целях, приведен ниже:
 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\Run  HKEY__LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\RunServices  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\RunOnce  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\RunServicesOnce  HKEYJJSERS\DEFAULT\SOFTWARE\Microsoft\ Windows\CurrentVersion\Run  HKEY_CURRENT_USER\SOFTWARE\Microsoft\ Windows\CurrentVersion\Run  HKEY_CURRENT_USER\SOFTWARE\Microsoft\ Windows\CurrentVersion\RunServices  HKEY_CURRENT_USER\SOFTWARE\Microsoft\ Windows\CurrentVersion\RunOnce  HKEY_CURRENT_USER\SOFTWARE\Microsoft\ Windows\CurrentVersion\RunServicesOnce  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ Windows\CurrentVersion\RunOnceEx Поэтому, если вы подозреваете такого рода атаку на свой компьютер, эти ключи реестра необходимо проверить в первую очередь. Более того, список таких ключей реестра постоянно пополняется. За последнее время, помимо традиционного списка ключей, приведенного выше, в него были включены и следующие ключи реестра:
 HKLM\Software\Microsoft\Windows\CurrentVersion\App Paths  HKLM\Software\Microsoft\Windows\CurrentVersion\Controls Folder  HKLM\Software\Microsoft\Windows\CurrentVersion\DeleteFiles  HKLM\Software\Microsoft\Windows\CurrentVersion\Explorer  HKLM\Software\Microsoft\Windows\CurrentVersion\Extensions  HKLM\Software\Microsoft\Windows\CurrentVersion\ExtShellViews  HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings  НКM\Software\Microsoft\Windows\CurrentVersion\ModuleUsage  HKLM\Software\Microsoft\Windows\CurrentVersion\RenameFiles  HKLM\Software\Microsoft\Windows\CurrentVersion\Setup  HKLM\Software\Microsoft\Windows\CurrentVersion\SharedDLLs  HKLM\Software\Microsoft\Windows\CurrentVersion\Shell Extensions  HKLM\Software\Microsoft\Window-s\CurrentVersion\Uninstall  HKLM\Software\Microsoft\Windows NT\CurrentVersion\Compatibility  HKLM\Software\Microsoft\Windows NT\CurrentVersion\Drivers  HKLM\Software\Microsoft\Windows NT\CurrentVersion\drivers.desc  HKLMXSoftware\Microsoft\Windows NT\CurrentVersion\Drivers32\0  HKLM\Software\Microsoft\Windows NT\CurrentVersion\Embedding  HKLM\Software\Microsoft\Windows NT\CurrentVersion\MCI  HKLM\Software\Microsoft\Windows NT\CurrentVersion\MCI Extensions  HKLM\Software\Microsoft\Windows NT\CurrentVersion\Ports  HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList  HKLM\Software\Microsoft\Windows NT\CurrentVersion\WOW Разумеется, приведенные здесь советы и рекомендации не заменят собой ни антивирусного программного обеспечения, ни системы обнаружения атак. Однако они все же смогут обеспечить хотя бы минимальную защиту от неприятных "подарков" и рекомендуются в качестве дополнительных защитных мер.
Итак, чтобы минимизировать риск инсталляции "троянских коней", следует запретить этим программам доступ к реестру путем установки аудита на доступ к перечисленным ключам и редактирования прав доступа к ним. Общая рекомендация сводится к следующему: права типа Full Control к этим ключам должны иметь только пользователи из группы Administrators и встроенная учетная запись SYSTEM. В Windows XP и Windows Server 2003 эта задача выполняется с помощью редактора реестра Regedit.exe.


Distributed Denial of Service, DDoS)


Атаки типа "отказ в обслуживании" (Denial of Service, DoS-attacks) и особенно распределенные атаки ( Distributed Denial of Service, DDoS) за последние несколько лет начали представлять собой одну из наиболее серьезных угроз безопасности сетей любого масштаба. При этом количество таких атак с каждым годом растет, и теперь уже практически никто не может считать себя полностью от них застрахованным. Подобно рекомендациям, рассмотренным в предыдущем разделе, советы, приведенные здесь, не дадут полной гарантии защиты от атак сервера DNS. Однако они послужат хорошим дополнением к принимаемым вами мерам защиты.
Перед тем как вносить описанные ниже изменения в конфигурацию сервера, используемого в производственном процессе, рекомендуется испытать их в лабораторных условиях.
Все параметры реестра, описанные в данном разделе, находятся под ключом  реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\ Parameters (рис. 24.18).
Краткие описания этих параметров и рекомендуемые значения приведены ниже.
 EnableDeadcwDetect (тип данных REG_DWORD). Значение по умолчанию позволяет TCP/IP переключаться на дополнительный шлюз в том случае, когда большое количество соединений начинает испытывать проблемы. Такое поведение нежелательно в случае DoS-атак, поскольку в этом случае трафик может быть перенаправлен на шлюз, который не является объектом постоянного мониторинга. Поэтому установите для данного параметра значение 0.

Рис. 24.18. Ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Services\Tcpip\Parameters
 EnablePMTUDiscovery (тип данных REG_DWORD). Значение, по умолчанию устанавливаемое для данного параметра, позволяет TCP/IP определять максимальный размер передаваемого фрагмента (maximum transmission unit, MTU), который может быть передан системе. В принципе, это опасно, поскольку дает возможность обойти систему защиты или вывести ее из строя путем передачи фрагментированного трафика (например, многие системы обнаружения атак не умеют правильно восстанавливать фрагментированные IP-пакеты). Если для этого параметра установить значение 0, то MTU всегда будет установлено на значение 576 байт.  KeepAlive (тип данных REG_DWORD). Этот параметр указывает, насколько часто будет осуществляться проверка и верификация активности открытых соединений. Для этого параметра рекомендуется установить значение 300 000.  synAttackProtect (тип данных REG_DWORD). Создание этого параметра позволяет защититься от атак SYN Flood, препятствующих нормальному процессу установления соединения между клиентом и сервером. При нормальных условиях, этот процесс протекает в три этапа.  Клиент отправляет серверу запрос на установление соединения (SYN).  Сервер отвечает отправкой подтверждения (SYN-ACK).  Клиент подтверждает прием, отправляя сообщение АСК. Если сервер стал мишенью для атаки SYN Flood, он будет получать огромное количество запросов на соединения, что создаст препятствия в получении подтверждений от клиентов и, таким образом, не позволит легальным пользователям устанавливать соединения. Рекомендуемое значение для этого параметра — 2 (можно также установить значение 1, но оно действует менее эффективно).


Некоторые программы могут временно хранить


Некоторые программы могут временно хранить пароли и другую конфиденциальную информацию в памяти в незашифрованном виде. Поскольку Windows периодически сбрасывает эту информацию на диск, она может присутствовать в файле подкачки (Pagefile.sys), что представляет собой потенциальную угрозу безопасности системы. Таким образом, пользователи, обеспокоенные безопасностью системы, наверняка захотят сконфигурировать ее таким образом, чтобы при останове происходила очистка файла подкачки.
Эта рекомендация универсальна и применима ко всем версиям Windows NT (начиная с NT 3.51 и заканчивая продуктами из семейства Windows Server 2003). Обратите внимание на то, что очистка файла подкачки при останове системы не является заменой физической безопасности компьютера. Однако она поможет обезопасить вашу конфиденциальную информацию, когда операционная система не загружена (например, компьютер загружен под управлением альтернативной ОС).
Чтобы сконфигурировать Windows для очистки файла подкачки при останове, проделайте следующее:
1. Для Windows XP и Windows Server 2003 запустите редактор реестра Regedit.exe. Для выполнения той же задачи в Windows NT/2000, запустите Regedt32.exe.
2. Найдите ключ реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ Session Manager\Memory Management
3. Создайте параметр ClearPageFileAtshutdown (тип данных — REG_DWORD) и установите его значение равным 1.
Чтобы внесенное изменение вошло в силу, перезагрузите компьютер.


В ряде случаев во время


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

Рис. 24.19. Процесс, не укладывающийся в отведенный временной интервал, препятствует корректному останову Windows
Чтобы устранить эту проблему, следует модифицировать значение параметра WaitToKillAppTimeout под следующим ключом реестра:  HKEY_CURRENT_USER\Control Panel\Desktop
Значение указывается в миллисекундах. Увеличьте этот интервал (в разумных пределах) и перезагрузите систему, чтобы внесенное изменение вошло в силу.
Как правило, этот интервал не рекомендуется увеличивать слишком сильно, поскольку в случае сбоя в подаче питания UPS может оказаться не в состоянии подавать резервное питание достаточно долго для того, чтобы обеспечить корректный останов ОС.