Администрирование реестра
Администрирование реестра
Непосредственное редактирование реестра, даже в тех случаях, когда оно необходимо, при условии неумелого выполнения может привести к большим неприятностям. Поэтому, если вы чувствуете себя неуверенно или просто не можете позволить себе затратить значительное время для проведения восстановительных работ, не ставьте смелых экспериментов над реестром своей операционной системы (будь то Windows NT 4.0/Windows 2000, Windows XP или Windows Server 2003). Вполне возможно, что единственная ошибка приведет к необходимости переустановки операционной системы.
Для выполнения задач по конфигурированию системы, по мере возможности, рекомендуется использовать административные утилиты, т. к. их применение всегда предпочтительнее непосредственного редактирования реестра. Этот метод намного безопаснее, поскольку административные средства не позволяют сохранять в реестре некорректные значения. Если в процессе редактирования реестра будет допущена ошибка, то некорректное значение будет сохранено без предупреждения.
Диалоговое окно Add to Favorites
Рисунок 24.11. Диалоговое окно Add to Favorites
Диалоговое окно Export Registry File
Рисунок 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 и завершает сеанс работы с этой программой.
Диалоговое окно позволяющее задать
Рисунок 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.
Хранение данных реестра
Хранение данных реестра
В 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.1 иллюстрирует иерархическую структуру реестра.
Интерфейс программы Regedit
Интерфейс программы Regedit
Окно редактора реестра Regedit.exe состоит из четырех основных областей (Рисунок 24.3).
Строка меню. В этой строке содержатся основные пункты меню: File, Edit, View, Favorites (этот пункт меню впервые был введен в Windows 2000) и Help.
Левая панель (левое подокно). Отображает иерархию реестра, организованную в виде ключей (в литературе они часто обозначаются термином "разделы") и вложенных ключей (другие часто встречающиеся термины — "подключи" или "подразделы").
Правая панель (правое подокно). Показывает текущие параметры выбранного ключа реестра, известные также как значимые элементы (value entires). Каждый параметр реестра характеризуется именем, отображаемым в столбце Name правой панели, типом данных, отображаемым в столбце Туре (на тип данных указывает и небольшой значок, расположенный чуть левее имени), и значением, отображаемым в столбце Data.
Строка состояния. Строка состояния указывает путь к выбранному элементу реестра. Она нужна, чтобы отображать полный путь к ключу реестра, в составе которого содержится выделенный параметр.
Использование редактора реестра
Использование редактора реестра
Большинство операционных систем 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 предпочтительным средством, с помощью которого новички могли безбоязненно начинать знакомство со структурой реестра.
Ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Рисунок 24.16. Ключ реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\BackupRestore\AsrKeysNotToRestore
Рисунок 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, но оно действует менее эффективно).
Команда 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.
Команды меню Edit
Команды меню Edit
Команда Modify (Изменить) используется для изменения данных, содержащихся в составе параметров реестра. Эта опция будет доступна только в том случае, если выбрать один из параметров, перечисленных в правой панели окна Registry Editor. Команда Modify Binary Data (Изменить двоичные данные) позволяет редактировать любые данные (в том числе и данные других форматов) в окне двоичного редактора. Эта команда также будет доступна только в том случае, если выбран один из параметров реестра, перечисленных в правой панели окна редактора реестра.
Команда New (Создать) позволяет добавлять в реестр новые ключи и параметры строковых типов, двоичные параметры и параметры типа REG_DWORD (Рисунок 24.5). Выбирать тип параметра можно в подменю New в контекстном меню, раскрывающемся по нажатию правой кнопки мыши на выбранном ключе.
Команды меню File
Команды меню 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)).
Команды меню View
Команды меню 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. Поэтому перезагрузок потребуется меньше. Тем не менее, ряд модификаций все же входят в силу только после перезагрузки операционной системы.
Меню Favorites
Меню 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, и нажать кнопку ОК.
Назначение реестра
Назначение реестра
Реестр пришел на смену конфигурационным файлам (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 XP и Windows Server 2003, средств и методов его редактирования, резервного копирования и восстановления, рассмотрим пару примеров настройки и конфигурирования Windows, а также решения проблем и устранения неполадок с помощью редактирования реестра. Цель этих примеров — продемонстрировать на практике методы модификации системного реестра, рассмотренные в предыдущих разделах данной главы.
Стоит также отметить, что некоторые из приведенных методов специфичны для Windows Server 2003, в то время как некоторые другие применимы также и к Windows NT/2000.
Окно Add or Remove Programs
Рисунок 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. Закройте редактор реестра и убедитесь в том, что мастер установки и удаления программ больше не отображает несуществующего приложения.
Действуя в соответствии с этой рекомендацией, вы удалите из реестра только ссылку на несуществующее приложение, отображаемую мастером установки и удаления программ. Несмотря на это, существует вероятность того, что некоторые из файлов некорректно удаленного приложения все же останутся в системе. Чтобы полностью удалить такое приложение, вам необходимо удалить из системы все его файлы и все параметры реестра, относящиеся к этому приложению.
Окно Advanced Security Settings for Winlogon
Рисунок 24.7. Окно Advanced Security Settings for Winlogon
Окно Binary Data позволяет просматривать
Рисунок 24.9. Окно Binary Data позволяет просматривать значение выбранного параметра реестра в одном из трех возможных форматов — Byte, Word или Dword
Окно предоставляющее расширенные
Рисунок 24.8. Окно, предоставляющее расширенные опции по редактированию прав доступа к ключам реестра
Как системный администратор, вы можете присвоить себе права владельца на ключ реестра и ограничить доступ к этому ключу. Заменить права владельца можно на вкладке Owner, а установить аудит — на вкладке Auditing.
Пользователь, зарегистрировавшийся на компьютере с правами администратора, может присвоить себе права владельца на любой ключ реестра. Однако, если администратор будет иметь права владельца на ключ без прав доступа типа Full Control, то ключ не может быть возвращен первоначальному владельцу, а в журнале аудита появится соответствующее сообщение.
Аудит действий в отношении реестра
Чтобы установить аудит на действия в отношении реестра, необходимо выполнить следующие действия:
1. Активизировать в системе аудит и задать политику аудита на все события, которые, с вашей точки зрения, подлежат аудиту.
2. Указать пользователей и группы, за действиями которых в отношении выбранных ключей реестра требуется установить аудит. Воспользуйтесь для этого вкладкой Auditing (Аудит) окна, показанного на Рисунок 24.7.
3. Результаты аудита можно просматривать в системном журнале Security с помощью оснастки Event Viewer.
Чтобы иметь возможность выполнить любое из указанных выше действий, необходимо зарегистрироваться на компьютере с использованием учетной записи из группы Administrators. Политика аудита задается для каждого компьютера индивидуально. Прежде чем задавать политику аудита в отношении избранных ключей реестра, необходимо активизировать на компьютере аудит событий, имеющих отношение к системе безопасности.
Как минимум, при установке аудита необходимо выбрать опцию Failure (Отказ) для событий типа File and Object Access. Если выбрать опцию Success (Успех), то в системном журнале может появиться большое количество записей, не имеющих большой практической значимости.
Окно редактора реестра Regedit
Рисунок 24.3. Окно редактора реестра Regedit.exe с обозначением основных областей
В окне редактора реестра Registry Editor отображаются ключи только верхнего уровня иерархии реестра, ответвляющиеся от значка My Computer. Это — имена корневых ключей, базовая информация о которых была приведена в начале этой главы.
Если выполнить щелчок мышью, указав курсором на значок [+], расположенный левее значка любой из папок, то развернется соответствующий ключ, в котором отобразится иерархия содержащихся в его составе вложенных ключей. Эта операция разворачивает дерево ключа реестра до следующего уровня вложенности и во многом напоминает аналогичную операцию раскрытия папок и вложенных папок в Explorer.
Если в составе вложенных ключей имеются другие вложенные ключи, то слева от них тоже будут находиться значки [+], которые можно в свою очередь развернуть для просмотра следующего уровня иерархии. Этот послойный метод организации реестра известен под названием вложения (nesting) и допускает множество уровней.
По достижении самого нижнего уровня вложения слева от вложенного ключа появится значок [—], который указывает, что дальнейшее раскрытие невозможно. После этого перемещение по иерархическому дереву будет возможно только в одном направлении — вверх. Если рядом с ключом нет ни значка [+], ни значка [—], это означает, что он не содержит вложенных ключей.
В табл. 24.5 приведен список клавиш, используемых для просмотра реестра с помощью Regedit.exe
Удаление недействительных
Пример 1. Удаление недействительных записей из списка установленных программ
Утилита Add/Remove Programs на панели управления предназначена для установки, удаления или модификации приложений, установленных в Windows. В Windows XP и Windows Server 2003 эта программа-мастер обладает существенно улучшенным и интуитивно понятным пользовательским интерфейсом (Рисунок 24.12).
Принудительный показ
Пример 2. Принудительный показ "Синего экрана смерти"
Сразу же следует сказать, что в 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>
Конфигурирование программы
Пример 3. Конфигурирование программы Backup путем редактирования реестра
Если вы регулярно выполняете резервное копирование вашей системы, то уже наверняка заметили, что встроенная программа 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).
Конфигурирование регистрации
Пример 4. Конфигурирование регистрации событий, связанных с квотированием диска
Большинство опытных пользователей и администраторов оценили новую весьма полезную возможность квотирования дискового пространства, появившуюся впервые в составе Windows 2000 и, безусловно, присутствующую в Windows XP и Windows Server 2003. События, связанные с квотированием дискового пространства, могут регистрироваться в системном журнале, и вкладка Quota (Квота) окна свойств диска NTFS предоставляет простейшие опции для конфигурирования режима регистрации этих событий (Рисунок 24.17).
По умолчанию регистрация событий, связанных с квотированием дискового пространства, происходит асинхронно (один раз в час). Если вы хотите, чтобы система регистрировала такие события немедленно после того, как пользователь превысит пороговое значение, раскройте редактор реестра, найдите ключ HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ Filesystem и создайте параметр NtfsQuotaNotifyRate (тип данных REG_DWORD). Задайте для этого параметра значение, соответствующее требуемой частоте регистрации событий квотирования в системном журнале (временной интервал в секундах).
Снижение вероятности
Пример 5. Снижение вероятности инсталляции "троянских коней"
Большинство вирусов, "червей" и "троянских коней" регистрируют свою информацию в системном реестре с тем, чтобы автоматически стартовать при загрузке операционной системы. Список излюбленных ключей, которые чаще всего используются в этих целях, приведен ниже:
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.
Редактирование реестра
Пример 6. Редактирование реестра с целью защиты DNS-серверов от DoS-атак
Атаки типа "отказ в обслуживании" (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.
Конфигурирование Windows
Пример 7. Конфигурирование Windows для очистки файла подкачки при останове системы
Некоторые программы могут временно хранить пароли и другую конфиденциальную информацию в памяти в незашифрованном виде. Поскольку 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.
Чтобы внесенное изменение вошло в силу, перезагрузите компьютер.
Устранение неполадок при останове системы
Пример 8. Устранение неполадок при останове системы
В ряде случаев во время останова системы вы можете столкнуться с ситуацией, когда одно из приложений перестает реагировать на системные сообщения (Рисунок 24.19). Что еще хуже, если такая ситуация возникает постоянно, она будет препятствовать нормальному и корректному останову системы. Причина проблемы заключается в том, что при останове Windows каждому из работающих процессов отводится определенный интервал времени, в течение которого он должен корректно завершить свою работу. Если процесс этого сделать не успевает, на экране появляется приведенное на иллюстрации диалоговое окно.
Проблема размера реестра
Проблема размера реестра
Одним из основных недостатков INI-файлов, использовавшихся для управления конфигурацией системы и приложений до введения реестра, являлась проблема, вызванная ограничением по размеру файла Win.ini, использовавшегося в ранних версиях Windows для хранения параметров настройки всех установленных в системе приложений. Каждое вновь устанавливаемое приложение вносило свои параметры в этот файл, вследствие чего он очень быстро рос. Когда размер файла Win.ini превышал установленное ограничение (не более 64 Кбайт), добавление новых записей в его состав создавало проблему, поскольку все дальнейшие изменения, вносимые в последние разделы этого файла (за пределами инициализационной границы), игнорировались.
Казалось, что с введением концепции реестра эта проблема была решена. Однако реестр, при всей своей прогрессивности, все же остался ограниченным по объему (на практике, его размер ограничивался до 80% от объема нерезидентного пула памяти). Поэтому проблема снова начала возникать с появлением приложений, интенсивно использующих реестр (к их числу относятся, например, СОМ и терминальные сервисы). При установке в системе таких приложений значительный объем нерезидентного пула поглощался реестром, оставляя слишком малый объем адресного пространства для других приложений, работающих в режиме ядра. В Windows NT/2000 для решения этой проблемы применяется ограничение по размеру реестра, т. е. существует возможность установить ограничение на размер, до которого может разрастаться реестр.
В отличие от Windows NT/2000, в Windows XP и Windows Server 2003 ограничение по размеру реестра практически снято. Код реестра был переработан таким образом, чтобы переместить реестр из нерезидентного пула и передать управление им диспетчеру кэша. Эта новая реализация позволяет реестру разрастаться до существенно больших размеров, нежели в предыдущих версиях, и фактически ограничивает его размеры только объемом доступного дискового пространства. Таким образом, ни в Windows XP, ни в Windows Server 2003 вы больше не найдете опции, позволяющей задать ограничение по размеру реестра.
Процесс не укладывающийся в отведенный
Рисунок 24.19. Процесс, не укладывающийся в отведенный временной интервал, препятствует корректному останову Windows
Чтобы устранить эту проблему, следует модифицировать значение параметра WaitToKillAppTimeout под следующим ключом реестра: HKEY_CURRENT_USER\Control Panel\Desktop
Значение указывается в миллисекундах. Увеличьте этот интервал (в разумных пределах) и перезагрузите систему, чтобы внесенное изменение вошло в силу.
Как правило, этот интервал не рекомендуется увеличивать слишком сильно, поскольку в случае сбоя в подаче питания UPS может оказаться не в состоянии подавать резервное питание достаточно долго для того, чтобы обеспечить корректный останов ОС.
Работа с системным реестром
Работа с системным реестром
Как и в предыдущих версиях операционных систем из семейства 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 (речь о принципах хранения реестра пойдет далее в этой главе). Приведенный пример убедительно демонстрирует, что единственная ошибка в системном реестре может не только повлиять на всю конфигурацию, но и сделать невозможным запуск операционной системы. Помимо этого, добиться корректной работы некоторых приложений можно также лишь через редактирование реестра. Таким образом, важность навыка редактирования реестра нельзя недооценивать.
Резервное копирование и восстановление реестра
Резервное копирование и восстановление реестра
Прежде чем завершить эту главу примерами, позволяющими на практике освоить методы редактирования реестра, необходимо напомнить, что реестр является жизненно важным компонентом системы, и единственная ошибка в его редактировании может привести к проблемам в работе с системой, включая и проблемы с загрузкой. Если реестр окажется поврежденным, а в вашем распоряжении не найдется работоспособной и пригодной к использованию резервной копии, то весьма высока вероятность того, что единственным методом решения возникшей проблемы будет переустановка операционной системы.
Таким образом, прежде чем начинать редактирование реестра, необходимо выполнить его резервное копирование. 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 2000 в Regedit
Рисунок 24.10. С выходом Windows 2000 в Regedit появился пункт меню Favorites
Содержимое ключа HKLM\SYSTEM\CurrentControlSet\Control\
Рисунок 24.14. Содержимое ключа HKLM\SYSTEM\CurrentControlSet\Control\ BackupRestore\FilesNotToBackup
Таким образом, если вам требуется отредактировать этот список файлов таким образом, чтобы изменения действовали в масштабах всей системы, вам не избежать ручного редактирования реестра.
Параметры, которые по умолчанию находятся в составе ключа FilesNotToBackup (все они имеют тип данных REG_MULTI_SZ), перечислены в табл. 24.9.
Содержимое ключа реестра HKLM\SYSTEM\CurrentControlSet\Control
Рисунок 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.
Структура реестра
Структура реестра
Как и реестры систем 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.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 |
Стандартные файлы
Таблица 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
Клавиши используемые в Registry Editor
Таблица 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
Тип данных |
Описание |
В столбце Data располагаются собственно данные (текстовые или двоичные), соответствующие значению выбранного параметра. Эти данные можно редактировать, модифицировать или создавать в целях оптимизации той или иной функции.
Последующие разделы содержат инструкции по использованию этих возможностей, а также указания по внесению модификаций в реестр.
Типы прав доступа к ключам реестра
Таблица 24.7. Типы прав доступа к ключам реестра
Тип доступа |
Описание |
Read |
Позволяет пользователям, внесенным в список Permissions, просматривать содержимое ключа реестра, не позволяя сохранять изменения |
Full Control |
Позволяет пользователям, внесенным в список Permissions, получать доступ к ключу, редактировать его содержимое и изменять к нему уровень прав доступа |
Special Permissions |
Предоставляет пользователям, внесенным в список Permissions, индивидуально назначаемые комбинации прав доступа и редактирования к избранному ключу. Подробное описание типов и комбинаций Special Permissions можно найти далее в этой главе |
Флажки диалогового окна Permission entry for
Таблица 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.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 |
Усовершенствования в структуре реестра
Усовершенствования в структуре реестра
Новый подход к реализации реестра позволил также существенно повысить производительность системы за счет усовершенствований, перечисленных ниже.
Ускоренная обработка обращений к реестру. В Windows NT/2000 на производительность реестра влияла его фрагментация. Взаимосвязанные ячейки были разбросаны по всему файлу улья, вследствие чего попытки доступа к такой информации (например, поиск атрибутов ключа) могли приводить к генерации большого количества страничных прерываний и существенно снижали общую производительность системы. В Windows XP и Windows Server 2003 при выделении памяти для ячеек реестра применяется улучшенный алгоритм, при котором взаимосвязанным ячейкам реестра выделяется пространство в пределах одной и той же или близких страниц памяти, что снимает эту проблему.
Улучшенные механизмы для работы с данными большого объема. Во всех версиях, предшествующих Windows XP, неэффективно работающее приложение могло создавать разреженные файлы реестра большого объема за счет постоянного увеличения значения параметра реестра малыми приращениями. В Windows XP и Windows Server 2003 эта проблема решена за счет реализации разбиения крупных ячеек на цепочки ячеек размером по 16 Кбайт.
Вкладка Exclude Files окна Options
Рисунок 24.13. Вкладка Exclude Files окна Options встроенной программы Backup
Вкладка Quota окна свойств раздела NTFS
Рисунок 24.17. Вкладка Quota окна свойств раздела NTFS
Запуск Regedit
Запуск Regedit
По умолчанию утилита Regedit.exe в процессе установки операционной системы копируется в каталог %SystemRoot% (например, C:\Windows). Обычно редактор реестра запускается с помощью команды Run (Выполнить) меню Start (Пуск).
Редактор реестра можно также запустить из командной строки с ключом /s. В этом случае Regedit.exe не будет предоставлять графического пользовательского интерфейса и не будет запрашивать подтверждения пользователя на выполнение указанной ему операции. Эта опция позволяет использовать редактор реестра в командных файлах. Например, чтобы выполнить импорт файла реестра MyRegSettings.reg в состав реестра без запроса подтверждения, дайте следующую команду: Regedit /s MyRegSettings.reg