Рейтинговые книги
Читем онлайн Недокументированные и малоизвестные возможности Windows XP - Роман Клименко

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 41 42 43 44 45 46 47 48 49 ... 100

Глава 8

Ветвь реестра НKEY_LOCAL_MACHINESYSTEM

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

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

Ветвь реестра HKEY_LOCAL_MACHINESYSTEM может включать в себя следующие разделы.

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

■ MountedDevices — указывает настройки монтирования логических дисков вашей системы.

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

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

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

Раздел Control Set NNN

Теперь подробнее поговорим о самых важных разделах ветви системного реестра HKEY_LOCAL_MACHINESYSTEM. Первыми из них будут разделы формата ControlSetNNN и раздел CurrentControlSet. Об их важности говорит уже то, что, хотя в системе может содержаться несколько разделов формата ControlSetNNN (вместо NNN указывается номер раздела, например ControlSet001, ControlSet002 или ControlSet003), все они хранят практически одинаковую информацию. И это не избыточность. Программисты Microsoft приняли решение специально использовать несколько копий разделов, содержащих критически важную информацию, чтобы в случае повреждения одного из них система могла загрузиться с помощью настроек из другого раздела.

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

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

Для понятия принципа работы данных разделов системы необходимо знать этапы загрузки операционной системы Windows и то, что на этих этапах происходит. Мы же не будем углубляться так далеко, а перечислим лишь несколько фактов, которые помогут в понимании сути рассматриваемых разделов. После сбора информации о конфигурации компьютера и выбора самой загружаемой системы (если используется мультизагрузка) происходит попытка считывания ветви реестра HKEY_LOCAL_MACHINESYSTEMControlSetNNN, которая в данный момент используется для обычной загрузки. Если на этапе считывания или попытки запуска какого-нибудь драйвера, указанного в ветви реестра HKEY_LOCAL_MACHINESYSTEMControlSetNNN, происходит серьезный сбой, то ветвь системного реестра ControlSetNNN помечается как испорченная. После этого начинается новая перезагрузка компьютера, в процессе которой уже используется ветвь реестра HKEY_LOCAL_MACHINESYSTEMControlSetNNN, помеченная как удачная при предыдущем удачном запуске операционной системы. Если же системе удается загрузиться при помощи ветви HKEY_LOCAL_MACHINESYSTEMControlSetNNN и при этом в системе удачно зарегистрировался хотя бы один пользователь, то данная ветвь ControlSetNNN считается корректной, и теперь именно с ее помощью вы будете загружаться при выборе команды Загрузка последней удачной конфигурации. После завершения работы компьютера все занесенные вами в текущий сеанс работы сведения помещаются в используемый при загрузке системы раздел ControlSetNNN. Остальные же разделы остаются без изменений.

Раздел Select

Но как же система узнает, какой из разделов ControlSetNNN необходимо использовать при обычной загрузке, какой нужно применять при загрузке последней удачной конфигурации, а какой вообще является испорченным? Именно для этих целей и предназначен раздел Select. Он содержит параметры DWORD-типа, каждый из которых определяет номер раздела ControlSetNNN и ту метку, которая была ему присвоена во время последнего удачного входа в систему. Рассмотрим назначение каждого из параметров, описанных в разделе Select.

■ Default — определяет, какая копия раздела ControlSetNNN будет загружена при обычной загрузке системы. Например, если значение данного параметра равно 2, то при обычной загрузке системы раздел CurrentControlSet будет ссылкой на содержимое раздела ControlSet002.

■ Current — указывает номер текущей копии раздела ControlSetNNN, который использовался для загрузки системы и на который ссылается раздел CurrentControlSet.

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

■ Failed — указывает раздел ControlSetNNN, при предыдущей загрузке которого произошел какой-то серьезный сбой и загрузка с его помощью была прервана.

Настройки служб

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

Все настройки запуска служб хранятся в ветви реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices. Она содержит список разделов, каждый из которых определяет описания одной службы или сервиса. Названия данных разделов, в принципе, не имеют значения (но если для службы не существует параметра DisplayName, то для ее идентификации будет использоваться название раздела, в котором она описывается). Значение имеют те параметры, которые описаны в соответствующем разделе. К таким параметрам можно отнести приведенные ниже.

■ Group — параметр имеет тип REG_SZ и определяет группу, к которой относится служба. Именно от группы зависит, в какой момент будет запущена служба — сначала запускаются все службы одной группы, потом все службы другой и т.д. Саму же последовательность, в которой запускаются группы служб, можно просмотреть в REG_MULTI_SZ-параметре List, расположенном в ветви реестра HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlServiceGroupOrder.

■ DependOnGroup — этот параметр REG_MULTI_SZ-типа определяет группы, которые должны быть запущены перед запуском данной службы. В контексте оснастки services.msc, которая описывает все службы, установленные на компьютере, данный параметр определяет содержание вкладки Зависимости диалога Свойства для данной службы.

■ DependOnService — параметр REG_MULTI_SZ-типа, определяет сервисы, которые должны быть запущены перед запуском данной службы. Значения этого параметра отображаются на вкладке Зависимости диалога Свойства, вызываемого двойным щелчком левой кнопкой мыши на строке, определяющей данную службу в оснастке services.msc.

■ DisplayName — этот параметр строкового типа определяет строку названия службы, которая как раз и будет идентифицировать службу в оснастке services.msc (данная строка будет отображаться в поле Имя оснастки services.msc).

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

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

■ ErrorControl — параметр DWORD-типа, определяет поведение системы при возникновении ошибок в работе службы и может принимать такие значения:

1 ... 41 42 43 44 45 46 47 48 49 ... 100
На этой странице вы можете бесплатно читать книгу Недокументированные и малоизвестные возможности Windows XP - Роман Клименко бесплатно.
Похожие на Недокументированные и малоизвестные возможности Windows XP - Роман Клименко книги

Оставить комментарий