• Глава 9 Окно консоли управления Microsoft
  • Запуск программы mmc.exe
  • Окно программы mmc.exe
  • Хранение параметров настройки консоли
  • Добавление оснасток в консоль
  • Глава 10 Оснастки настройки Windows XP
  • Дефрагментация диска
  • Запуск оснастки
  • Работа с оснасткой
  • Диспетчер устройств
  • Пример диалога Свойства
  • Дополнительные настройки диалогов Свойства
  • Другие настройки реестра, изменяемые оснасткой
  • Служба индексирования
  • Службы
  • Глава 11 Оснастки администрирования Windows XP
  • Журналы и оповещения производительности
  • Системный монитор
  • Добавление счетчиков
  • Изменение вида системного монитора
  • Журналы и оповещения производительности
  • Журналы счетчиков
  • Журналы трассировки
  • Оповещения
  • Управляющий элемент WMI
  • Свойства WMI
  • Настройки WMI в реестре
  • Доступ к WMI с помощью сервера сценариев
  • Включение и выключение SystemRestore для отдельных дисков
  • Создание контрольной точки восстановления
  • Энумерация содержимого ветви реестра
  • Создание, завершение и просмотр учетной записи процесса
  • Выключение, перезагрузка компьютера, завершение сеанса пользователя
  • Получение сведений об установленных на компьютере программах
  • Получение сведений о компьютере
  • Другие классы и функции пространств имен WMI
  • Стандартные сценарии сервера сценариев
  • Просмотр событий
  • Запуск консоли
  • Ветви реестра, используемые оснасткой
  • Редактор объекта групповой политики
  • Запуск консоли gpedit.msc
  • Работа с консолью
  • Конфигурация программ
  • Конфигурация Windows
  • Административные шаблоны
  • Результирующая политика
  • Шаблоны безопасности
  • Содержимое шаблонов безопасности
  • Политики учетных записей
  • Локальные политики
  • Журнал событий
  • Группы с ограниченным доступом
  • Системные службы
  • Реестр
  • Файловая система
  • Стандартные шаблоны безопасности
  • Compatws.inf
  • Securews.inf
  • Hisecws.inf
  • Rootsec.inf
  • Notssid.inf
  • Создание и импортирование шаблона безопасности
  • Создание шаблона безопасности
  • Импортирование шаблона безопасности
  • Часть 3

    Консоль управления Microsoft

    Глава 9

    Окно консоли управления Microsoft

    Консоль управления Microsoft — это специальное средство для администрирования компьютера, которое, начиная с Windows NT 4.0, пришло на смену Панели управления. Если раньше Панель управления содержала значительную часть программ, направленных на администрирование компьютера, то теперь эти программы преобразованы в так называемые оснастки, доступ к которым можно получить именно с помощью консоли управления Microsoft. Например, теперь именно с помощью оснасток можно выполнить такие операции, как добавление или удаление пользователя, дефрагментация диска, добавление или удаление общедоступных ресурсов, остановка или запуск служб и многое другое. При этом на основе наиболее часто используемых оснасток были созданы стандартные консоли (файлы с расширением MSC). Консоль — это набор оснасток, которые будут открываться при открытии консоли (при этом консоль будет открываться в программе mmc.exe, без которой работать с консолями невозможно). Другими словами, теперь с помощью консоли управления Microsoft можно с легкостью создавать собственные консоли, содержащие наиболее часто используемые вами оснастки.

    Чтобы отобразить консоль управления Microsoft, необходимо в диалоговом окне Запуск программы ввести команду mmc.exe. Ввод данной команды приведет к отображению окна консоли управления Microsoft. Но еще несколько слов скажем о запуске программы mmc.exe — какие же процессы происходят на уровне файловой системы и реестра Windows XP при запуске консоли управления Microsoft?

    Запуск программы mmc.exe

    На уровне файловой системы, как оказывается, ничего интересного не происходит — по умолчанию консоль управления Microsoft не ведет журнал и не записывает события ни в один из журналов системы. Единственное, что можно отметить, так это запуск библиотеки MMCNDMGR.DLL, которая, как известно из части 1, является основной библиотекой консоли управления Microsoft и с помощью которой можно удалить или установить сведения о консоли управления в реестре. Например, с помощью команды rundll32.exe MMCNDMGR.DLL, DllRegisterServer выполняется повторная установка (в реестре) всех сведений, необходимых для запуска самой консоли управления Microsoft (в первую очередь сведений ветви системного реестра HKEY_CLASSES_ROOT\CLSID\{43136EB5-D36C-11CF-ADBC-00AA00А80033}, без которой работа с консолью управления Microsoft невозможна), а также выполняется повторная установка следующих стандартных оснасток: Элемент ActiveX, Ссылка на веб-ресурс и Папка.

    На уровне реестра сначала идет обращение к ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Консоль управления (MMC)\Recent File List, содержащей список всех ранее открывавшихся консолей. Эта ветвь включает в себя четыре параметра строкового типа с именами от File1 до File4. Значения этих параметров определяют пути к уже открываемым вами консолям. Следует заметить, что программным способом не все открывавшиеся консоли записываются в эти четыре параметра, тем не менее на уровне реестра вы можете определить пути к любым консолям, с которыми часто работаете. Потом, например, можно запретить полный доступ к данной ветви реестра, оставив только доступ на чтение, чтобы ссылки на часто открываемые вами консоли не заменялись другими ссылками.

    Идет также обращение к ветви реестра Windows HKEY_CURRENT_USER\Software\Microsoft\Консоль управления (MMC)\Settings. Она содержит параметр строкового типа List Save Location, определяющий путь к каталогу, в котором по умолчанию будут сохраняться экспортируемые из консоли управления Microsoft данные.

    После того как будет определен список ранее запускавшихся консолей, консоль управления Microsoft начнет считывать из реестра данные, необходимые для ее работы. Как правило, все эти данные расположены в корневом разделе системного реестра HKEY_CLASSES_ROOT. После определения конфигурации консоль управления Microsoft просматривает ветвь HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC, которая может содержать ограничения групповой политики на запуск программы mmc.exe. Например, в этой ветви могут находиться следующие два параметра DWORD-типа (параметр появляется, если вы пользовались консолью управления Microsoft).

    ■ RestrictAuthorMode — если значение равно 1, то запуск консоли управления Microsoft будет запрещен. При этом стоит заметить, что этот запрет не распространяется на консоли, созданные с помощью программы mmc.exe, — их по-прежнему можно будет открывать, но при этом работа в расширенном режиме (об этом ниже) будет невозможна.

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

    Консоль управления Microsoft также ищет DWORD-параметр Restrict_Run в ветвях реестра формата HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\GUID-оснастки}. При этом если параметр Restrict_Run в одной из ветвей будет равен 1, то соответствующую оснастку запускать будет запрещено. Для примера работы данного ограничения можно создать параметр Restrict_Run в ветви реестра HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\{C96401CC-0E17-11D3-885B-00C04F72C717} и присвоить ему значение 1. После этого будет запрещено запускать оснастку Папки. Как правило, она всегда запускается вместе с созданными консолями.

    Окно программы mmc.exe

    Если приведенные выше параметры не существуют или равны нулю (точнее, параметр RestrictAuthorMode), то консоль управления Microsoft откроется и отобразит свое окно (рис. 9.1). Стоит заметить, что при открытии консоли управления Microsoft просто создается новая консоль с именем Консоль 1, что и можно увидеть на рис. 9.1, если посмотреть на строку заголовка окна.

    Рис. 9.1. Окно консоли управления Microsoft


    Окно консоли управления Microsoft включает в себя вложенное окно, имеющее заголовок Корень консоли, с которым по умолчанию и будет выполняться работа (добавление или удаление оснасток, а также работа с содержимым оснастки). Но вы можете открыть еще одно окно Корень консоли. Для этого достаточно в меню Окно консоли управления Microsoft выбрать команду Новое (или нажать комбинацию клавиш Ctrl+W). Возможность создания отдельных окон в консоли была реализована для удобства работы с оснастками (чтобы не перегружать одно окно большим количеством загруженных оснасток). Например, в одно окно может быть загружена одна оснастка, в другое окно — несколько других оснасток и т.д., а переход между окнами можно выполнить с помощью меню консоли управления Microsoft Окно или с помощью выделения определенного окна мышью.

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

    Рис. 9.2. Настройка отображения консоли


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

    Рис. 9.3. Мастер настройки вида панели задач


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

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

    Хранение параметров настройки консоли

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

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

    Рис. 9.4. Использование диалога Параметры для скрытия возможности настройки вида консоли


    Если вы используете такой метод скрытия возможности изменения вида консоли, то посмотрим на содержимое данного файла консоли, открытого в Блокноте (рис. 9.5).

    Рис. 9.5. Форматирование консоли


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

    ■ NoStdMenus — если значение равно true, то в меню консоли будут скрыты меню Действие, Вид и Избранное;

    ■ NoStdButtons — если значение параметра равно true, то в консоли будет скрыта панель инструментов;

    ■ NoSnapinMenus — если значение равно true, то меню оснасток будут скрыты (если, конечно, они имеют меню);

    ■ NoSnapinButtons — если значение параметра равно true, то панели инструментов оснасток будут скрыты;

    ■ NoStatusBar — если значение равно true, то строка состояния консоли будет скрыта;

    ■ NoTaskpadTabs — если значение данного параметра равно true, то вкладки панели задач консоли будут скрыты;

    ■ DescriptionBarVisible — если значение равно false, то область описания консоли будет скрыта.

    Например, если присвоить параметру NoStdMenus значение false, то при следующем открытии данной оснастки меню Действие, Вид и Избранное опять отобразятся в строке меню.

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

    Рис. 9.6. Диалог настройки ограничений консоли


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

    На рис. 9.7 можно увидеть результат использования режима Пользовательский — ограниченный доступ, одно окно. Как можно заметить, возможность добавления и удаления оснасток, а также возможность создания новых окон были скрыты. Тем не менее команда Параметры из меню Консоль осталась, но при ее открытии окажется, что она не будет содержать вкладки Консоль.

    Рис. 9.7. Применение пользовательского режима


    Итак, что же изменилось при использовании режима Пользовательский — ограниченный доступ, одно окно в содержимом файла консоли? На рис. 9.8 можно увидеть изменения, которые произошли в верхнем теге MMC_ConsoleFile. Одним из его параметров является ProgramMode, который в данном случае равен UserSDI. Следует заметить, что при авторском режиме доступа к оснастке этот параметр равен Author. Другими словами, если вы измените значение параметра ProgramMode на Author, то при следующем запуске консоли попадете в авторский режим с возможностью добавления новых оснасток.

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

    Рис. 9.8. Применение пользовательского режима консоли

    Добавление оснасток в консоль

    Теперь попробуем загрузить какую-нибудь оснастку в созданную консоль. Для этого необходимо воспользоваться командой Добавить или удалить оснастку из меню Консоль (или комбинацией клавиш Ctrl+M). После вызова этой команды перед вами отобразится диалоговое окно Добавить/удалить оснастку (рис. 9.9), с помощью которого можно добавить в консоль новую оснастку или удалить уже присутствующие. Чтобы добавить консоль, нужно нажать кнопку Добавить.


    Рис. 9.9. Диалог добавления оснасток в консоль


    После нажатия кнопки Добавить консоль управления Microsoft начнет просматривать содержимое ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns. Она хранит ссылки на все GUID-номера оснасток, доступных на компьютере. Именно список оснасток из этой ветви и будет отображаться в появившемся после нажатия кнопки Добавить диалоговом окне. Иными словами, если удалить из данной ветви GUID-номер оснастки, то ее нельзя будет открыть с помощью данного списка, хотя оснастка по-прежнему будет работать в уже готовых консолях. Но для удаления оснастки из списка можно поступить проще — дело в том, что все оснастки, которые будут отображаться в списке Добавить изолированную оснастку, должны содержать в своей ветви вложенный раздел StandAlone. Если его удалить, то оснастка не будет отображаться в списке Добавить изолированную оснастку. Можно же, наоборот, добавить этот раздел к одной из ветвей, в которой его не существует. Например, если добавить его к разделу {243E20B0-48ED-11D2-97DA-00A024D77700}, то появится возможность включать в консоль оснастку Модуль расширения съемных носителей. А если добавить его к разделу {BACF5C8A-A3C7-11D1-A760-00C04FB9603F}, то появится возможность добавления к консоли оснастки Установка программ (пользователи). Можно также добавить оснастку Установка программ (Компьютеры). Для этого необходимо воспользоваться разделом {942A8E4F-A261-11D1-A760-00C04FB9603F}. Две предыдущие возможности понадобятся в следующих главах книги, ведь по умолчанию никаким другим способом нельзя получить доступ к оснасткам Установка программ (пользователи) и Установка программ (Компьютеры), если компьютер не находится в домене.

    С помощью данной ветви можно также изменить название оснастки, отображаемое в списке оснасток, — оно хранится в параметре, имеющем строковый тип NameStringIndirect ветви HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ MMC\SnapIns\{GUID-номер оснастки}. Например, чтобы изменить название оснастки Диспетчер устройств на Описание установленного на компьютере оборудования, необходимо присвоить новое название оснастки параметру NameStringIndirect ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{74246bfc-4c96-11d0-abef-0020af6b0b7a} (рис. 9.10).

    Рис. 9.10. Изменение названия оснастки Диспетчер задач


    ПРИМЕЧАНИЕ

    Существует еще один трюк, который можно выполнить с помощью ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\Snaplns\{GUID-номер оснастки}. Это запрет отображения диалога Добавить/удалить оснастку. Для этого достаточно изменить название одной из ветвей реестра {GUID-номер оснастки} на название {{GUID-номер оснастки}. Например, если изменить название уже рассмотренного раздела {74246bfc4c96-11d0-abef-0020af6b0b7a} на {{74246bfc4c96-11d0-abef-0020af6b0b7a}, то при выборе команды Добавить или удалить оснастку из меню Консоль ничего происходить не будет. 

    Для примера попробуем добавить в консоль оснастку Редактор объекта групповой политики. Для этого необходимо выделить в списке эту оснастку, нажать кнопку Добавить, после чего появится окно Выбор объекта групповой политики, в котором нужно нажать кнопку Готово. Далее нужно нажать кнопку Закрыть в окне Добавить изолированную оснастку, чтобы закрыть список оснасток. В диалоге Добавить/удалить оснастку появилась добавленная оснастка. В этом окне нужно нажать кнопку OK. Теперь предлагаю посмотреть на рис. 9.11. Слева на этом рисунке отображена консоль в расширенном виде. Этот вид стал доступен в Windows XP и отличается от обычного тем, что слева появилась панель описания элемента оснастки. Очень часто эта панель мешает просмотру оснастки, поэтому приходится переходить к обычному виду (по умолчанию оснастка загружается в расширенном виде). Справа же на рисунке отображена та же оснастка, но в обычном виде — при этом возможность расширенного вида была удалена. Чтобы удалить возможность расширенного вида, необходимо удалить из ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns раздел {B708457E-DB61-4C55-A92F-0D4B5E9B1224}. 

    Рис. 9.11. Расширенный и обычный вид консоли


    Напоследок рассмотрим краткое описание всех оснасток, доступных в операционной системе Windows XP. Далее они будут подробно описаны.

    ■ Дефрагментация диска — позволяет узнать, необходима ли диску дефрагментация, а также выполнить ее. Для открытия данной оснастки можно воспользоваться стандартной консолью Windows XP dfrg.msc.

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

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

    ■ Управляющий элемент WMI — позволяет настроить параметры работы элемента WMI, который добавляет новые функциональные возможности серверу сценариев Windows. Для открытия данной оснастки можно воспользоваться консолью Инструментарий управления WMI, вызов которой осуществляется с помощью команды wmimgmt.msc.

    ■ Управление компьютером — содержит набор оснасток, с помощью которых можно выполнить большинство административных работ на локальном компьютере: Просмотр событий, Общие папки, Диспетчер устройств и многие другие. Оснастку можно вызвать как одноименную консоль compmgmt.msc.

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

    ■ Общие папки — с помощью данной оснастки можно просмотреть все общедоступные папки системы, а также добавить или удалить общедоступную папку. Можно также настроить параметры доступа к общедоступным папкам или просмотреть открытые в данный момент общедоступные ресурсы и сеансы подключения. Для открытия оснастки можно воспользоваться одноименной консолью, вызов которой осуществляется с помощью команды fsmgmt.msc.

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

    ■ Просмотр событий — с помощью этой оснастки можно просмотреть стандартные журналы системы. Оснастку можно вызвать в виде стандартной консоли eventvwr.msc.

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

    ■ Результирующая политика — дает возможность просмотреть установленные для компьютера или пользователя параметры ограничений групповой политики. Оснастку можно вызвать в виде стандартной консоли rsop.msc.

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

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

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

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

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

    ■ Управление съемными носителями — с помощью этой оснастки можно просмотреть список подключенных к компьютеру съемных носителей, а также извлечь эти носители. Для открытия оснастки можно воспользоваться консолью Съемные носители, вызов которой осуществляется с помощью команды ntmsmgr.msc.

    ■ Управление дисками — позволяет отформатировать диск, сделать его активным, изменить букву локального диска, а также открыть его содержимое в Проводнике. Для ее открытия можно воспользоваться консолью Управление дисками, вызов которой осуществляется с помощью команды diskmgmt.msc.

    ■ Элемент ActiveX — является стандартной оснасткой, устанавливаемой вместе с консолью управления Microsoft.

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

    Глава 10

    Оснастки настройки Windows XP

    Дефрагментация диска

    Как уже было сказано, оснастка Дефрагментация диска предназначена для выполнения дефрагментации и входит в состав консоли dfrg.msc.

    Оснастка имеет GUID-номер {43668E21-2636-11D1-A1CE-0080C88593A5}, то есть если вы создадите DWORD-параметр Restrict_Run в ветви реестра HKEY_CURRENT_USER\Software\Policies\Microsoft\MMC\{43668E21-2636-11D1-A1CE-0080C88593A5} и присвоите ему значение 1, то будет запрещено открывать оснастку Дефрагментация диска.

    ПРИМЕЧАНИЕ

    Оснастка может не работать и в случае повреждения ветви системного реестра HKEY_CLASSES_ROOT\AppID\{80EE4901-33A8-11d1-A213-0080C88593A5}. Например, если данная ветвь реестра будет содержать параметр строкового типа RunAs с некорректным значением, то такие функции оснастки, как анализ и дефрагментация дисков, работать не будут.

    Запуск оснастки

    При открытии оснастки система начинает просматривать необходимые для работы библиотеки, название одной из которых определено в параметре строкового типа ResourceDllName, расположенным в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Dfrg\ResourceDllName.

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

    ■ CreateLogFile — этот параметр DWORD-типа определяет, будет ли создаваться файл журнала анализа диска. Если его значение равно 1, то файл журнала создаваться будет.

    ■ LogFilePath — параметр строкового типа, определяет название файла журнала (и путь к нему), в который будет записываться информация о выполнении анализа диска, если значение параметра CreateLogFile будет равно 1.

    Если работа оснастки не запрещена групповыми политиками и все библиотеки и параметры реестра, необходимые оснастке, содержат корректные данные, то после ввода в диалоге Запуск программы команды dfrg.msc (или открытия этой оснастки с помощью консоли управления Microsoft mmc.exe) перед вами отобразится окно, подобное приведенному на рис. 10.1. 

    Рис. 10.1. Окно оснастки Дефрагментация диска

    Работа с оснасткой

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

    Кнопки в нижней области определяют полную функциональность оснастки Дефрагментация диска. Иными словами, с ее помощью можно только выполнить анализ расположения содержимого диска и дефрагментацию диска. При этом обе эти возможности по умолчанию используют для своей реализации программу DfrgNtfs.exe. Эта программа запускается как ActiveX-объект, и сведения о ней находятся в ветви реестра HKEY_CLASSES_ROOT\CLSID\{80EE4901-33A8-11d1-A213-0080C88593A5}\LocalServer32. Параметр (По умолчанию) этой ветви как раз и содержит название программы — DfrgNtfs.exe. Данная ветвь системного реестра может также включать в себя параметр строкового типа ServerExecutable. Он определяет название программы, запускающейся как сервер для программы DfrgNtfs.exe. Иными словами, если значение параметра ServerExecutable будет равно, допустим, cmd.exe, то после нажатия кнопки Анализ или кнопки Дефрагментация будет запущена программа cmd.exe (при этом в заголовке командной строки будет указано название DfrgNtfs.exe).

     После выделения в верхней области необходимого логического диска и нажатия кнопки Анализ консоль управления Microsoft начнет проверку расположения файлов на данном диске. После проверки перед вами будет отображено сообщение о том, нужна ли данному логическому диску дефрагментация или нет. При этом окно будет содержать три кнопки: Вывести отчет (выводит полную информацию о логическом диске (размер кластера, количество фрагментированных файлов фрагментация MFT и т.д.), а также список наиболее сильно фрагментируемых файлов, если вы используете возможность ведения файла журнала с помощью описанного выше параметра CreateLogFile, то та же информация будет храниться в файле журнала), Дефрагментация (выполнить дефрагментацию диска) и Закрыть. После проведения анализа полоса оценки расположения файлов будет включать в себя гистограмму содержимого логического диска (рис. 10.2). 

    Рис. 10.2. Окно оснастки после проведения анализа логического диска


    ПРИМЕЧАНИЕ

    MFT — главная файловая таблица, содержащая сведения обо всех файлах, расположенных на логическом диске. По умолчанию MFT занимает для своего роста 12% от всего объема логического диска. 

    ПРИМЕЧАНИЕ

    Запрещено проводить анализ или дефрагментацию логического диска, если системой для него была определена необходимость проверки с помощью команды chkdsk /f.

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

    1. Удалить все ненужные вам файлы, расположенные на данном диске.

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

    3. Удалить файлы журнала, хранящиеся на данном логическом диске.

    4. Проанализировать расположение содержимого диска с помощью кнопки Анализ. 

    Диспетчер устройств

    Диспетчер устройств входит в стандартную консоль devmgmt.msc и имеет GUID-номер {74246BFC-4C96-11D0-ABEF-0020AF6B0B7A}. После вызова данной консоли откроется окно, подобное приведенному на рис. 10.3.

    Окно Диспетчера устройств отображает все установленное на компьютере оборудование. Но иногда бывают ситуации, когда оборудование, подключающееся в «горячем» режиме (то есть без выключения компьютера), не будет распознано Диспетчером устройств. При этом оно будет считаться неустановленным и работать не будет. Например, довольно часто этим грешат модемы, подключаемые в процессе работы компьютера (особенно часто могут не определяться подключаемые в «горячем» режиме мобильные телефоны, используемые как модемы для подключения к Интернету с помощью стандарта GPRS, хотя обычные модемы также иногда не распознаются). Как правило, это не такая страшная проблема — скорее всего, нераспознанное оборудование будет найдено при обновлении списка оборудования Диспетчера устройств. Для инициации процесса обновления необходимо в меню Действие выбрать команду Обновить конфигурацию оборудования. После этого консоль управления Microsoft начнет поиск новых устройств Plug and Play.

    Рис. 10.3. Окно консоли devmgmt.msc


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

    ■  Устройства по типу — используется по умолчанию и группирует устройства по их типу (например, все сетевые карты (как физические, так и виртуальные) в группе Сетевые платы);

    ■ Устройства по подключению — группирует все устройства по интерфейсу подключения, используемого ими (например, все устройства, подключенные к шине PCI);

    ■ Ресурсы по типу — группирует все устройства по типу ресурсов, которые они используют (то есть если устройство использует как адреса памяти, так и прерывание IRQ, то оно будет описано сразу в двух группах);

    ■ Ресурсы по подключению — ресурсы, как и в предыдущем способе, группируются в четыре группы (Ввод/вывод, Запрос на прерывание (IRQ), Память и Прямой доступ к памяти), но теперь ресурсы в группах дополнительно группируются по диапазону адресов (прерываний и т.п.), который они используют.

    В меню Вид присутствует флажок Показать скрытые устройства, установка которого приводит к отображению в окне консоли Диспетчер устройств списка системных устройств и драйверов, а также устройств, отключенных или не работающих в данный момент. Отдельно стоит сказать о типе устройств Драйверы устройств не Plug and Play, отображаемом при установке флажка Показать скрытые устройства. Данный тип содержит список всех драйверов устройств не Plug and Play, установленных на компьютере. Причем диалог Свойства для устройств данного типа является единственным способом отключения таких драйверов — для этого используется раскрывающийся список Тип (в области Автозагрузка) на вкладке Драйвер. На этой вкладке можно также определить раздел ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, в котором хранятся настройки данного драйвера.

    ПРИМЕЧАНИЕ

    Следует внимательно относиться к драйверам типа устройств Драйверы устройств не Plug and Play, так как довольно часты случаи запуска вирусов, троянских коней, перехватчиков клавиатуры и других «хакерских» программ, выдающих себя за драйверы устройств не Plug and Play. 

    Пример диалога Свойства

    Для примера рассмотрим диалог Свойства какого-нибудь устройства. Для этого будет использоваться стандартный способ группировки устройств. Например, выберите группу DVD и CD-ROM дисководы. Если вы имеете несколько дисководов такого типа, то данная группа будет содержать несколько устройств. Чтобы просмотреть свойства устройства, нужно дважды щелкнуть кнопкой мыши на нем, после чего перед вами отобразится диалог свойств, подобный приведенному на рис. 10.4.

    Рис. 10.4. Отображение диалога свойств устройства


    Вкладка Общие, как правило, стандартна для всех устройств, установленных на компьютере. Данная вкладка описывает следующие данные.

    ■ Тип устройства — в этой строке описывается класс, к которому принадлежат устройства, указанные в данной группе. Как правило, тип устройства является названием группы, в которой оно описано в оснастке Диспетчер устройств. При этом название типа устройства хранится в реестре — для этого применяется параметр (По умолчанию) ветвей реестра формата HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{GUID-номер класса устройства}. Например, рассматриваемый тип устройств DVD и CD-ROM дисководы описывается в параметре (По умолчанию) ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}. Если вы измените значение параметра (По умолчанию) данной ветви реестра, то соответственно изменится и название типа устройств в Диспетчере устройств

    ПРИМЕЧАНИЕ

    В ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{GUID-номер устройства} может также присутствовать DWORD-параметр NoDisplayClass. Именно он и определяет, будет ли считаться данное устройство скрытым. Другими словами, например, если параметр NoDisplayClass будет присутствовать в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}, то тип DVD и CD-ROM дисководы по умолчанию будет скрыт в Диспетчере устройств и увидеть его можно будет, только установив флажок Показать скрытые устройства в меню Вид.

    В данной ветви реестра может также содержаться DWORD-параметр NoUseClass. Если он будет присутствовать в ветви описания класса устройств, то сведения об устройствах данного типа вообще будут скрыты из консоли Диспетчер устройств. Например, чтобы скрыть описываемую группу DVD и CD-ROM дисководы, нужно создать параметр NoUseClass в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}.

     ■ Изготовитель — определяет производителя данного устройства. Как правило, если производителем является Microsoft (или производитель вообще не описывается), то пишется, что данное устройство является стандартным. Название производителя определяется в параметре строкового типа ProviderName ветви реестра формата HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{GUID-номер класса устройства}\«номер устройства».

    ■ Размещение — указывает шину или порядковый номер, по которому установлено устройство. Сведения о размещении считываются в процессе загрузки компьютера, но существует возможность добавления к этим сведениям своей строки (или замещения сведений своей строкой). Для этого применяется параметр строкового типа LocationInformationOverride ветви реестра формата HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{GUID-номер класса устройства}\«номер устройства». Например, сведения в скобках в строке Размещение на рис. 10.4 были добавлены (для некоторых устройств они замещают оригинальные сведения, а для некоторых добавляются к оригинальным сведениям) с помощью строкового параметра LocationInformationOverride ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318}\0000.

    ■ Состояние устройства — содержит информацию о неполадках в работе устройства или, если неполадок нет, строку Устройство работает нормально.

    ■ Применение устройства — позволяет отключить или включить устройство.

    К другим возможностям, которые можно настроить на этой вкладке, является стандартный значок для данной группы устройств (отображается напротив названия дисковода). Его идентификатор определен в параметре строкового типа Icon ветви реестра НКЕY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E965-E325-11CE-BFC1-08002BE10318} (только идентификатор, а не название библиотеки и идентификатор). Например, по умолчанию для устройств типа DVD и CD-ROM дисководы используется значок с идентификатором –51.

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

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

    Вкладка Драйвер содержит сведения о драйвере, установленном для данного устройства, имя поставщика драйвера (параметр строкового типа ProviderName), дату разработки драйвера (REG_BINARY-параметр DriverDateData), версию драйвера (параметр строкового типа DriverVersion). Все эти параметры хранятся в ветвях формата HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{GUID-номер класса устройства}\«номер устройства». На вкладке Драйвер можно выполнить обновление или удаление текущего драйвера, а также его откат. Откат применяется в случае, если после обновления драйвера устройство стало работать некорректно, и позволяет установить тот драйвер, который применялся до обновления.

    Вкладка Сведения позволяет просмотреть служебную информацию об устройстве. По умолчанию отображается Код экземпляра устройства, но с помощью раскрывающегося списка данной вкладки можно просмотреть очень многие характеристики устройства. Большая часть из них предназначены не для пользователя (то есть описывается специальными константами, которые могут знать разве что представители технического персонала производителя устройства или очень опытные пользователи), но некоторые могут быть интересны и нам. Например, элемент Служба данного списка определяет название раздела в ветви системного реестраHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services, который определяет настройки службы, реализующей функции данного устройства. Элементы списка, названия которых начинаются со слова Зависимости, определяют оборудование (службы и т.п.), которое должно быть удалено перед тем, как выполнить ту или иную операцию с устройством. Элементы Установщик классов и Соустановщики классов списка определяют функции библиотек (вспомните вызов команды rundll32.exe), предназначенные для установки GUID-номера класса (разделы ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class) или соустановщика класса.

    Дополнительные настройки диалогов Свойства

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

    Если на вашей материнской плате присутствуют USB-порты, то в консоли Диспетчер устройств будет присутствовать тип устройств Контроллеры универсальной последовательной шины USB. Среди устройств, подключенных к этому типу, будут присутствовать корневые USB-концентраторы. Если открыть диалог Свойства одного из корневых USB-концентраторов, то можно увидеть вкладку Управление электропитанием, с помощью которой настраивается возможность отключения устройства для экономии энергии. С помощью реестра существует возможность скрыть эту вкладку (или, наоборот, добавить ее, если она отсутствует). Для того чтобы скрыть вкладку Управление электропитанием, достаточно параметру DWORD-типа DisableSelectiveSuspend из ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usb присвоить значение, равное 1. 

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

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

    ■ 802.1p QOS — определяет, будет ли использоваться резервирование 20 % пропускной способности сети для сервиса QOS. По умолчанию значение данного свойства равно Disable. Как же это влияет на реестр? Во-первых, настройки отображения данного дополнительного параметра сетевой карты расположены в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\«номер устройства»\Ndi\params\Enable8021p. Если удалить данную ветвь реестра, то исчезнет и сама возможность настройки сервиса QOS. Кроме того, ветвь содержит следующие параметры.

     • type — этот параметр строкового типа определяет способ отображения значения для данного свойства сетевой карты. По умолчанию значение данного параметра равно enum, что говорит об использовании списка для представления значений. Значение может быть равно edit. В этом случае для представления значений будет применяться поле, в котором пользователь сам должен ввести необходимое ему значение.

     • ParamDesc — данный параметр строкового типа определяет название свойства сетевой карты. Иными словами, для нашего свойства сетевой карты данный параметр реестра будет равен 802.1p QOS. Вы можете изменить значение этого параметра на более понятное, например на значение Включить сервис QOS.

     • Default — параметр строкового типа, определяет номер значения (например, если используется значение, описанное параметром 0, то значение этого параметра будет равно 0) свойства настройки сетевой карты, используемого в данный момент. При этом сами возможные значения хранятся в разделе enum данной ветви реестра. Именно этот раздел и содержит рассмотренный выше список параметров формата 1, 2 и т.д. По умолчанию в разделе enum находится только два параметра, имеющих значения Enable и Disable. Но вы можете создать новые параметры, например третий параметр 3, которому присвоить значение, допустим, Еще не решил. После этого список значений для данного свойства настройки сетевой платы будет содержать и ваше значение (рис. 10.5). Если же для ввода значений свойства настройки сетевой карты используется поле ввода, то данный параметра будет хранить само введенное пользователем значение. 

    Рис. 10.5. Редактирование списка дополнительных параметров настройки сетевой карты


    Изменение данного свойства влияет на DWORD-параметр Enable8021p, расположенный в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}\«номер устройства». Если это свойство отключено, то данный параметр будет равен 0.

    ПРИМЕЧАНИЕ

    Почему ноль? Именно потому, что значение свойства Disabled описано в параметре 0. Например, если выбрать созданное значение Еще не решил, которое описано в параметре 3, то параметру ЕпаЫе8021р будет присвоено значение 3. 

    Если на вашем компьютере присутствует устройство инфракрасной связи (IrDA), то в консоли Диспетчер устройств будет находиться тип устройств Устройства ИК-связи. Диалог Свойства для устройств данного типа содержит вкладку Настройка инфракрасной связи, с помощью которой можно указать скорость передачи данных по инфракрасной связи. При этом возможные значения скорости передачи данных можно определить с помощью реестра. Для этого применяются два параметра REG_MULTI_SZ-типа из ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{6BDD1FC5-810F-11D0-BEC7-08002BE2092F}\«номер устройства». Параметр MaxConnectList содержит список возможных скоростей, который будет отображаться на вкладке Настройка инфракрасной связи. Значения данного параметра играют косметическую роль, то есть присутствуют только на вкладке, а не отражают реальную скорость передачи данных. Реальные же скорости передачи данных, которые соответствуют значениям предыдущего параметра, находятся в параметре MaxConnectRate.

    Диалог Свойства для устройств ИК-связи может содержать вкладку Дополнительно. Свойства, отображаемые на этой вкладке, будут описываться в ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{6BDD1FC5-810F-11D0-BEC7-08002BE2092F}\«номер устройства»\Ndi\Params. Формат описания данных свойств был рассмотрен выше.

    Другие настройки реестра, изменяемые оснасткой

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

    ■ Чтобы запретить вывод сообщений об ошибках в работе устройств, подключенных к портам USB, необходимо DWORD-параметру ErrorCheckingEnabled присвоить значение 0. Этот параметр расположен в ветви системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Usb (по умолчанию раздел не существует).

    ■ Чтобы запретить отключение питания неиспользуемого USB-контроллера, необходимо присвоить DWORD-параметру HcDisableSelectiveSuspend значение, равное 1. Параметр может находиться в ветвях реестра, имеющих формат HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{36FC9E60-C465-11CF-8056-444553540000}\«номер контроллера». Чтобы определить, какой именно USB-контроллер описывается в данной ветви реестра, необходимо посмотреть на параметр строкового типа DriverDesc.

    ■ Чтобы изменить текущую скорость порта для модема, нужно воспользоваться DWORD-параметром MaximumPortSpeed, расположенным в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\«номер устройства». Его значение определяет скорость работы порта для модема и может принимать следующие значения: 12c, 4b0, 960, 12с0, 2580, e100, 1c200, 35400, 70800 и т. д.

    ■ Для того чтобы изменить название журнала (и путь к нему), предназначенного для протоколирования работы модема, необходимо воспользоваться параметром строкового типа LoggingPath, который расположен в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\«номер устройства». Стоит также учитывать, что если REG_BINARY-параметр Logging из данной ветви реестра будет равен 0, то протоколирование работы модема вестись не будет.

    ■ Чтобы изменить дополнительные параметры инициализации модема, необходимо воспользоваться параметром строкового типа Userinit. Параметр расположен в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}\«номер устройства» и содержит строку инициализации модема.

    ■ Параметры работы СОМ-портов также можно изменить. Для этого предназначена ветвь реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Ports. Она включает в себя список параметров строкового типа, среди которых можно найти такие параметры, как, например, СОМ1:, COM2 : и т.д. Эти параметры как раз и определяют настройки соответствующих СОМ-портов и содержат значения такого формата: скорость, четность, биты данных, стоповые биты, управление потоком. Четность может принимать следующие значения:

     • n — нет;

     • e — чет;

     • o — нечет;

     • m — маркер;

     • s — пробел.

    Управление потоком может содержать следующие значения:

     • р — аппаратное;

     • х – Xon/Xoff;

     • значение отсутствует — нет.

    Например, значение параметра 9600,n,8,1 расшифровывается так: скорость передачи данных равна 9600 бит/сек, четность не применяется, на представление одного символа используется 8 бит, интервал времени между передаваемыми символами равен 1 бит/сек. 

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

    Раньше служба индексирования уже рассматривалась с точки зрения параметров реестра, влияющих на ее производительность. Сейчас же будет рассмотрена оснастка Служба индексирования: как с ее помощью определить каталоги для индексирования, а также выполнить поиск в содержимом индексированных файлов. Оснастка Служба индексирования входит в состав консоли ciadv.msc и имеет GUID-номер {95AD72F0-44CE-11D0-AE29-00AA004B9986}.

    Но перед кратким описанием консоли ciadv.msc поговорим о том, что же можно ожидать от этой службы. Служба индексирования при нахождении нового файла просматривает список фильтров документов для определения, умеет ли она работать с файлами данного расширения. По умолчанию в состав операционной системы Windows XP входят фильтры для работы с документами, создаваемыми продуктами комплекта Microsoft Office, а также с текстовыми файлами, файлами HTML и файлами почты и групп новостей. При этом любая программа может поставлять собственные фильтры для работы с новыми расширениями файлов. Если найденный файл имеет расширение, поддерживаемое существующими в операционной системе фильтрами, то служба индексирования пытается определить язык, на котором написан данный файл. Русского языка служба индексирования не понимает, поэтому поиск по русским словам невозможен. Зато поиск в каталоге службы индексирования возможен по английским словам. Поэтому если содержимое файла написано на английском языке, то оно разбивается на отдельные слова и заносится во временный список слов. В процессе слияния списки слов помещаются в общий индекс на жестком диске в сильно сжатом виде. Благодаря этому возможно увеличение скорости поиска в содержимом файлов в несколько раз. Как можно заметить, единственным минусом службы индексирования является непонимание русского языка, поэтому если вы наиболее часто имеете дело с файлами на русском языке, то использовать службу индексирования нет смысла. Если же вы также имеете дело с файлами на английском языке, то рекомендуется помещать их в одну папку, а после этого с помощью консоли Служба индексирования указать системе выполнять индексацию только содержимого этой папки.

    После запуска консоли ciadv.msc перед вами отобразится окно, включающее в себя один элемент — System (если на компьютере присутствует IIS-сервер, то в оснастке также будет присутствовать элемент Web). Элемент System представляет собой стандартный каталог, создаваемый службой индексирования при установке операционной системы. Именно с помощью элемента System и выполняется по умолчанию вся работа со службой индексирования на файловой системе Windows.

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

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

    С помощью контекстного меню элемента System можно также создать новую папку (внутри элемента System) и определить, будет ли содержимое этой папки добавляться к индексу. Для этого служит команда Создать►Папка. Но перед созданием папки щелкните дважды кнопкой мыши на элементе System. После этого отобразится содержимое данного элемента: разделы Папки, Свойства и Опрос каталога.

    С помощью раздела Папки можно определить, содержимое каких каталогов будет индексироваться, а каких в индекс помещаться не будет. По умолчанию в индекс помещается содержимое всех логических дисков компьютера, кроме папок профилей пользователей Application Data и Local Settings (в индекс также не входит содержимое съемных дисков). Вы можете добавить свои папки или удалить уже существующие. С помощью контекстного меню папок можно также выполнить повторное сканирование их содержимого на предмет существования новых файлов, которые можно поместить в индекс (команда Все задачи►Выполнить сканирование, которая появляется только тогда, когда Служба индексирования запущена).

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

    С помощью раздела Опрос каталога можно перейти на форму для поиска в содержимом индексированных документов (рис. 10.6). Форма находится отдельно в каталоге %systemroot%\HELP и называется ciquery.htm (еще в приведенном каталоге хранится ciquery.htm, также используемый разделом Опрос каталога). Иными словами, если данные HTML-файлы будут отсутствовать в каталоге %systemroot%\HELP, то вы не сможете обратиться к содержимому каталога службы индексирования. С помощью данной формы можно выполнить поиск по ключевым словам (не забудьте, что русские слова не индексируются) или по свойствам. Более подробную информацию о поиске в каталоге можно найти в файле справки по данной консоли.

    Рис. 10.6. Поиск в каталоге индексированных файлов

    Службы

    В части 2 уже рассматривались как способ описания служб в реестре, так и сами службы, запускающиеся автоматически при запуске компьютера (а также ветви реестра и иногда параметры реестра, используемые этими службами). Сейчас же рассмотрим более простой способ доступа к службам — с помощью оснастки Службы. Эта оснастка входит в стандартную консоль services.msc и имеет CLSID-номер {58221C66-EA27-11CF-ADCF-00AA00A80033}.

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

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

    ■ Имя — указывает имя службы и является значением параметра системного реестра DisplayName раздела службы.

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

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

    ■ Тип запуска — определяет, как запускается служба, и может принимать следующие значения: Отключено, Авто (запускается вместе с системой) и Вручную (запускается по требованию других программ или служб). Данный столбец для определения типа запуска использует параметр реестра Start раздела службы.

    ■ Вход от имени — указывает учетную запись, от имени которой будет выполняться запуск службы. Службу можно запускать или от имени любого пользователя системы, или от имени трех стандартных учетных записей компьютера: Локальная система (с правами системы), Локальная служба (с правами группы Пользователи) и Сетевая служба (с правами группы Пользователи). Данный стол бец для определения прав службы использует параметр реестра ObjectName раздела службы.

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

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

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

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

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

    Глава 11

    Оснастки администрирования Windows XP

    Журналы и оповещения производительности

    Оснастка предназначена для наблюдения за работой устройств, установленных на компьютере. Она содержит большой набор функций, что является как несомненным плюсом, так и большим минусом. Минус заключается в довольно сложном механизме работы с оснасткой, который может сначала отпугнуть пользователя операционной системы Windows XP. Оснастка входит в состав стандартной консоли perfmon.msc, работа с которой и будет рассмотрена. Оснастка Журналы и оповещения производительности имеет GUID-номер {7478EF61-8C46-11d1-8D99-00A0C913CAD4}, после запрещения которого доступ к оснастке будет заблокирован. В консоль Производительность также входит ActiveX-объект Системный монитор, отображение которого можно запретить с помощью GUID-номера {C96401CF-0E17-11D3-885B-00C04F72C717}.

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

    Системный монитор

    После ввода в командной строке Выполнить команды perfmon.msc консоль управления Microsoft обращается к содержимому ветвей реестра HKEY_CURRENT_USER\Software\Microsoft\SystemMonitor и HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib, параметры которых будут рассмотрены чуть позже. После ввода команды перед вами отобразится окно консоли Производительность, открытое на ActiveX-объекте Системный монитор (рис. 11.1).

    Рис. 11.1. Окно консоли Производительность


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

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

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

    Для примера попробуем добавить счетчики производительности. Для начала удалите все используемые в данный момент счетчики. Для этого нужно выделить счетчик в области счетчиков и нажать клавишу Delete. После этого вызовите контекстное меню в любой из областей системного монитора и выберите команду Добавить счетчики. Это приведет к отображению диалогового окна, приведенного на рис. 11.2.

    Рис. 11.2. Окно добавления счетчиков


    С помощью данного окна можно определить, счетчики какого компьютера будут подключаться к консоли (локального или любого другого, подключенного к сети), определить устройство (список Объект), за работой которого вы будете следить, а также определить сами счетчики (переключатель Выбрать счетчики из списка) параметров работы устройства, которые будут отслеживаться. После выбора счетчика в правом окне можно выбрать экземпляр устройства, работа которого будет отслеживаться. На рис. 11.2 отображено только два экземпляра устройства — _Total и 0. Экземпляр 0 определяет первый процессор, установленный в системе, а экземпляр _Total определяет слежение за всеми процессорами, установленными на компьютере (при этом будет выводиться среднее арифметическое данных по работе процессоров). Если на компьютере установлен только один процессор, то экземпляр _Total эквивалентен экземпляру 0, но если бы компьютер содержал большее количество установленных процессоров, то присутствовали бы и другие экземпляры устройств: 1 — для второго процессора, 2 — для третьего процессора и т.д.

    ПРИМЕЧАНИЕ

    Если значение DWORD-параметра Disable Performance Counters, расположенного в ветви системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib, будет равно 1, то будет запрещено добавление счетчиков, а также работа с ActiveX-объектом Системный монитор. Если значение данного параметра будет равно 1, то список счетчиков просто-напросто будет пуст. Аналогичного результата можно добиться, если присвоить DWORD-параметру Updating той же ветви реестра значение, равное 0. 

    ВНИМАНИЕ

    Название экземпляра Total можно изменить на любое другое. Для этого применяется параметр строкового типа TotalInstanceName, расположенный в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Perflib. При этом следует учитывать, что все счетчики, загруженные до изменения значения параметра TotalInstanceName, работать не будут.

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

    ПРИМЕЧАНИЕ

    В любом случае, здесь не будут рассмотрены все объекты, счетчики которых можно использовать, так как количество объектов на различных компьютерах может быть разное. Это связано с тем, что любая служба может добавить свои собственные счетчики. Для этого достаточно в параметре строкового типа Library указать библиотеку, содержащую функции работы с новыми счетчиками. Параметр расположен в разделе Performance ветви реестра, хранящей сведения о данной службе (на страницах книги уже несколько раз упоминалось, что настройки служб находятся в отдельных разделах ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services). Можно также удалить возможность работы со счетчиками данного объекта, просто удалив раздел Performance (или переименовав его). Но можно поступить и намного проще — просто запретить работу счетчиков данного объекта. Для этого необходимо в разделе Performance данной службы создать DWORD-параметр Disable Performance Counters и присвоить ему значение 1.

    Основные параметры раздела Performance неинтересны и содержат названия функций библиотеки для работы со счетчиками. 

    Для процессора это следующие счетчики.

    ■ % загруженности процессора — в зависимости от экземпляра устройства определяет процент загруженности конкретного процессора или всех процессоров, установленных на компьютере. Аналогичную информацию можно просмотреть и в Диспетчере задач Windows (на вкладке Быстродействие). Если процессор постоянно загружен на 70-90%, значит, пора покупать более мощный процессор.

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

    Для памяти это следующие счетчики.

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

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

    ■ Доступно байт — определяет количество свободной в данный момент виртуальной памяти. Если показания этого счетчика постоянно колеблются в пределах 10-20 Мбайт, рекомендуется купить дополнительные планки оперативной памяти.

    Для физического диска это следующие счетчики.

    ■ % активности диска — определяет процент времени, которое жесткий диск тратит на удовлетворение запросов на чтение/запись данных. Если показания данного счетчика долгое время колеблются в районе 80-100%, то необходимо подумать над покупкой более быстрого жесткого диска или дополнительного объема оперативной памяти.

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

    Для системы это следующий счетчик.

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

    ПРИМЕЧАНИЕ

    Названия счетчиков, а также описания их работы на разных компьютерах могут отличаться. Это связано с тем, что сведения о названиях счетчиков и их описания хранятся не в файле библиотеки, а непосредственно в реестре. Для их хранения применяются два параметра REG_MULTI_SZ-типа ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\019 (для англоязычной версии операционной системы используется конечный подраздел 009). Данная ветвь реестра содержит два параметра — Counter и Help. Первый из них определяет названия счетчиков, а второй — их описание. 

    Для примера загрузим в консоль следующие счетчики: % времени прерываний и Длина очереди процессора для процессора, Ошибок страниц в секунду для памяти, % активности дисков и Текущая длина очереди диска для физического диска. Чтобы загрузить счетчик, необходимо выделить его и нажать кнопку Добавить. После этого счетчик загрузится, но диалог Добавить счетчики закрыт не будет. После того, как вы добавите все необходимые счетчики, просто нажмите кнопку Закрыть, чтобы перейти к окну консоли.

    Изменение вида системного монитора

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

     Рис. 11.3. Способ отображения показаний счетчиков в виде графика


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


    Таблица 11.1. Кнопки изменения вида показаний счетчиков 

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

    Еще одной интересной вкладкой диалога Свойства: Системный монитор является вкладка Источник, с помощью которой можно определить источник показаний счетчиков, отображаемых системным монитором. По умолчанию используются текущие показания счетчиков, но существует возможность загрузки в системный монитор показаний, описанных в файле журнала или базе данных. Вероятно, пока что данные возможности системного монитора вам будут непонятны, поэтому рассматривать их не станем. Вместо этого мы закончим рассказ об ActiveX-объекте Системный монитор и перейдем к рассмотрению оснастки Журналы и оповещения производительности, ведь именно с ее помощью создаются файлы журналов показаний счетчиков или базы данных SQL, которые и используются на вкладке Источник диалога Свойства: Системный монитор как возможные источники показаний счетчиков для работы системного монитора.

    Журналы и оповещения производительности

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

    Журналы счетчиков

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

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

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

    ПРИМЕЧАНИЕ

    Информация обо всех журналах счетчиков хранится в реестре. Для этого предназначена ветвь реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysmonLog\Log Queries. Она принадлежит службе Журналы и оповещения производительности, запускаемой в качестве сетевой службы. Другими словами, если данная служба будет остановлена, то нельзя будет работать с журналами счетчиков. Каждый журнал счетчиков создает в приведенной ветви реестра свой собственный раздел, имеющий название в формате GUID-номера. Например, для журнала счетчиков Обзор системы используется раздел {123a660c-c5ce469a-ac149-7c1ee9c1e9376c}. 

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

    С помощью вкладки Общие можно добавить счетчики, показания которых будут заноситься в журнал производительности (кнопка Добавить счетчики), определить интервал времени, с которым показания счетчиков будут сниматься и заноситься в журнал (область Снимать показания каждые:), а также указать учетную запись пользователя, от имени которого будет запускаться данный журнал (поле От имени). Работа с диалогом, отображаемым после нажатия кнопки Добавить счетчики, ничем не отличается от работы с уже рассмотренным диалогом Добавить счетчики. Для добавления счетчиков можно также воспользоваться кнопкой Добавить объекты. В этом случае будут добавлены все счетчики какого-либо объекта. Стоит также взглянуть на поле Текущий файл журнала. На данной вкладке его запрещено редактировать, хотя на других вкладках можно будет отредактировать как путь к журналу, так и его имя. Тем не менее благодаря реестру существует еще одна интересная возможность настройки создания журналов — определение пути к папке, в которую будут помещаться журналы счетчиков по умолчанию. Если вам для всех создаваемых журналов приходится определять другой каталог хранения (по умолчанию для хранения журналов счетчиков используется системный диск), то предлагаю воспользоваться параметром строкового типа DefaultLogFileFolder, расположенным в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysmonLog. 

    Рис. 11.4. Параметры создания нового журнала счетчиков


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

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

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

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

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

    ■ База данных SQL — позволяет заносить показания счетчиков в общую базу данных SQL.

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

    СОВЕТ

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

    ПРИМЕЧАНИЕ

    Создать журнал счетчиков можно и с помощью командной строки. Для этого применяется команда logman create counter. На страницах книги работа с этой командой описана не будет, тем не менее она не представляет трудности, если вы знаете, как создаются журналы счетчиков с помощью консоли Производительность. Для просмотра параметров данной команды введите в командной строке команду logman create counter /?.

    После того как вы создадите журнал счетчиков, он отобразится в том же списке, что и журнал Обзор системы. При этом значок напротив журнала счетчиков будет красного цвета, это говорит о том, что в данный момент журнал остановлен. После запуска журнала счетчиков значок напротив него станет зеленого цвета. Но допустим, что у нас уже есть файл показаний счетчика, то есть наш журнал счетчиков был запущен и остановлен (файл показаний счетчиков должен содержать больше двух показаний, иначе его нельзя будет использовать, то есть по умолчанию показания должны сниматься как минимум 45 секунд). Что же теперь делать с созданным файлом показаний счетчиков? Во-первых, можно указать путь к нему на вкладке Источник рассмотренного диалога Свойства: Системный монитор. А можно воспользоваться командой Сохранить параметры как из контекстного меню созданного журнала счетчиков. С помощью данной команды можно будет создать HTML-файл, хранящий ActiveX-объект Системный монитор. Запуск этого HTML-файла приведет к появлению уже знакомого окна Системный монитор, которое по умолчанию будет использовать для своей работы показания счетчиков, хранящиеся в созданном с помощью данного журнала счетчиков файле показаний.

    Теперь рассмотрим параметры реестра, которые используются для хранения параметров журналов счетчиков. Как было сказано выше, все журналы счетчиков имеют свой собственный раздел в ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysmonLog\Log Queries. Все разделы данной ветви реестра представляют собой CLSID-номера, генерируемые системой при создании журналов счетчиков. Каждый раздел, соответствующий журналу счетчиков, может содержать следующие параметры, которые можно редактировать даже для журнала счетчиков Обзор системы, несмотря на то, что изменение параметров этого журнала с помощью оснастки невозможно.

    ■ Collection Name — параметр строкового типа, определяет имя журнала счетчиков. Значение переопределяется параметром строкового типа Collection Name Indirect.

    ■ Counter List — этот параметр REG_MULTI_SZ-типа определяет названия счетчиков, показания которых будут считываться.

    ■ Create New File — если значение данного параметра DWORD-типа равно 1, то при следующем запуске журнала счетчиков будет создан новый файл (а не переписан уже существующий).

    ■ Current Log File Name — этот параметр строкового типа определяет путь к файлу (и его имя), в который будут записываться показания счетчиков. При этом значение состоит из значений двух других параметров строкового типа — Log File Folder и Log File Base Name. Первый из них определяет путь к каталогу, содержащему файл счетчиков, а второй параметр определяет название файла.

    ■ Log File Max Size — параметр DWORD-типа, определяет максимальный размер создаваемого файла.

    Журналы трассировки

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

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

    ПРИМЕЧАНИЕ

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

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

    ПРИМЕЧАНИЕ

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

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

    Но чем же, с точки зрения реестра, отличаются журналы трассировки от журналов счетчиков? Как оказалось, они отличаются значением всего одного параметра. Если значение DWORВ-параметра Log Type равно 0, то данный журнал является журналом счетчиков, а если значение параметра Log Type равно 1, то журналом трассировки. Например, если значение параметра Log Type ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysmonLog\Log Queries\{123a660c-c5ce-469a-ad49-7dee9de9376c} будет равно 1, то стандартный журнал Обзор системы станет журналом трассировки, а не журналом счетчиков. 

    ПРИМЕЧАНИЕ

    Если значение параметра Log Туре равно 0xffffffff, то журнал будет скрыт. 

    Для журналов трассировки могут применяться следующие дополнительные параметры DWORD-типа.

    ■ Trace Buffer Flush Interval — определяет интервал времени в секундах, с которым будет выполняться сбрасывание содержимого буферов в файл трассировки.

    ■ Trace Buffer Min Count — указывает минимальное количество буферов трассировки, которое будет использоваться в любом случае.

    ■ Trace Buffer Max Count — определяет максимальное количество буферов трассировки. Если количества буферов, определенного в параметре Trace Buffer Min Count, не хватает для буферизации данных, то будут созданы дополнительные буферы (общее количество буферов не должно быть больше, чем значение параметра Trace Buffer Max Count).

    ■ Trace Buffer Size— указывает размер в килобайтах каждого буфера трассировки.

    Оповещения

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

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

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

    Настройки оповещений также находятся в разделах ветви системного реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SysmonLog\Log Queries. При этом значение DWORD-параметра Log Type, равное 2, как раз и определяет, что данная ветвь реестра описывает оповещение. 

    Управляющий элемент WMI

    Оснастка Управляющий элемент WMI включает в себя настройки инструментария управления Windows (WMI), с помощью которого можно удаленно или локально управлять различными настройками операционной системы Windows. WMI реализовано на основе протокола WBEM (протокол управления предприятием на основе веб-технологий) и включает в себя CIM-совместимую базу данных (CIMOM), содержащую сведения об объектах системы, а также диспетчер CIM, с помощью которого реализованы функции работы с поставщиками WMI. Поставщики WMI являются посредниками между WMI и компонентами компьютера. Именно с их помощью реализуются такие возможности, как считывание, оповещение о событии и изменение данных состояния компонентов компьютера. Сама же возможность WMI может применяться как в программировании под Windows с помощью WinAPI, так и при создании сценариев сервера сценариев Windows. Возможности WMI также используются в компонентах Свойства системы, Сведения о системе и для формирования вкладки Зависимости, находящейся в окне диалога свойств конкретной службы в оснастке Службы.

    ПРИМЕЧАНИЕ

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

    Свойства WMI

    Для работы оснастки Управляющий элемент WMI необходимо, чтобы в системе был зарегистрирован GUID-номер {5C659257-E236-11D2-8899-00104B2AFB46}. Именно этот GUID-номер и идентифицирует настройки оснастки Управляющий элемент WMI. Эта оснастка входит в состав консоли Инфраструктура управления WMI, открыть которую можно с помощью команды wmimgmt.msc. После ее ввода перед вами отобразится пустое окно консоли, содержащее единственный элемент дерева консоли — Элемент управления WMI (локальный). Контекстное меню данного элемента включает в себя две основные команды: Подключение к другому компьютеру и Свойства. Первая предназначена для просмотра WMI удаленного компьютера, а вторая позволяет просмотреть настройки WMI локального компьютера. После выбора команды Свойства перед вами отобразится диалоговое окно, подобное приведенному на рис. 11.5.

    На вкладке Общие диалога свойств отображается общая информация о компьютере, к WMI которого вы подключились. С помощью данной вкладки можно изменить учетную запись, от имени которой вы подключились. Для этого предназначена кнопка Изменить. На вкладке Ведение журнала можно определить путь к журналу событий WMI, его размер, а также сведения, которые будут помещаться в этот журнал. На вкладке Архивация или восстановление можно вручную выполнить такие операции, как архивация или восстановление CIM-совместимой базы данных WMI. На вкладке Дополнительно можно определить пространство имен WMI, используемое по умолчанию при разработке сценариев (если конкретное пространство имен указано не было). На вкладке Безопасность можно определить права доступа для различных пространств имен WMI. По умолчанию администраторы имеют полный доступ ко всему пространству имен, а остальным группам пользователей разрешен только доступ на выполнение методов пространства имен. 

    Рис. 11.5. Свойства WMI


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

    Настройки WMI в реестре

    В предыдущем разделе вкратце были рассмотрены настройки WMI, которые можно изменить с помощью диалога Свойства: Элемент управления WMI (локальный). 

    Теперь же рассмотрим настройки WMI, доступ к которым предоставляет реестр Windows XP. Все эти настройки содержатся в ветви HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM в следующих параметрах строкового типа.

    ■ Build — определяет номер версии WMI, установленной в системе. По умолчанию в Windows XP используется версия 2600.0000.

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

    ■ MOF Self-Install Directory — определяет путь к каталогу, в который будут помещаться файлы с расширением MOF, предназначенные для автоматического добавления новых поставщиков WMI, а также функций и методов.

    Кроме параметров, данная ветвь реестра включает в себя вложенный раздел CIMOM, содержащий сведения о CIM-совместимой базе данных WMI. Этот раздел хранит следующие параметры.

    ■ Autorecover MOFs —данный параметр REG_MULTI_SZ-типа включает в себя список всех файлов с расширением MOF, используемых при инициализации и восстановлении базы данных WMI. Содержимое этого файла также определяет порядок, в котором компилировались файлы MOF при установке WMI.

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

    ■ EnableEvents — этот параметр строкового типа определяет, будет ли использоваться подсистема событий WMI. Если значение равно 1, то будет. Как правило, значение параметра равно 0.

    ■ EnableStartupHeapPreallocation — параметр DWORD-типа, определяет, будет ли сразу же при запуске WMI выделяться куча (часть оперативной памяти, используемая для хранения объектов). Если значение равно 1, то при запуске WMI будет заранее выделяться куча, размер которой определен в параметре LastStartupHeapPreallocation. По умолчанию эти параметры не существуют.

    ■ EnablePrivateObjectHeap — этот параметр DWORD-типа определяет, будет ли использоваться куча для хранения объектов от поставщиков. По умолчанию не существует.

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

    ■ High Threshold On Client Objects (B) — этот параметр DWORD-типа определяет верхнее пороговое значение очереди объектов от поставщиков, достижение которого приводит к прекращению приема объектов от поставщиков (в этом случае WMI возвращает поставщикам код WBEM_E_OUT_OF_MEMORY). По умолчанию параметр не существует.

    ■ High Threshold On Events (B) — значение этого параметра DWORD-типа аналогично значению предыдущего, но в этом случае определяется верхнее пороговое значение очереди событий (а не объектов) от поставщиков.

    ■ Log File Max Size — определяет максимальный размер файлов журналов, создаваемых службами WMI.

    ■ Logging — этот параметр строкового типа определяет уровень протоколирования ошибок и может принимать следующие значения:

     • 0 — отключить протоколирование;

     • 1 — краткое протоколирование ошибок;

     • 2 — полное протоколирование ошибок.

    ■ Logging Directory — этот параметр строкового типа содержит путь к каталогу, в котором находятся файлы системных журналов WMI. Именно значение этого параметра и редактируется на вкладке Ведение журнала.

    ■ Low Threshold On Client Objects (B) — параметр DWORD-типа, определяет нижнее пороговое значение очереди объектов от поставщиков, достижение которого приводит к замедлению скорости создания объектов. По умолчанию в реестре не существует.

    ■ Low Threshold On Events (B) — этот параметр DWORD-типа определяет нижнее пороговое значение очереди событий от поставщиков, достижение которого приводит к замедлению скорости создания событий.

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

    ■ Max Wait On Events (ms) — этот параметр строкового типа указывает время в миллисекундах, в течение которого событие может находиться в очереди. Если по истечении этого времени событие все еще находится в очереди, то оно будет автоматически удалено.

    ■ Max Wait On Client Objects (ms) — параметр строкового типа, указывает время в миллисекундах, в течение которого объект может находиться в очереди. Если по истечении этого времени объект все еще находится в очереди, то он будет автоматически удален. По умолчанию в реестре не существует.

    ■ Repository Directory — этот параметр строкового типа определяет путь к каталогу, используемому службой WMI для хранения архивов СIМ-совместимой базы данных. Они используются при восстановлении базы данных.

    ■ Working Directory — параметр строкового типа, определяет путь к рабочему каталогу WMI. По умолчанию используется путь %systemroot%\system32\wbem.

    В реестре также существует ветвь HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WBEM\Scripting. Значения данной ветви определяют настройки взаимодействия WMI и сервера сценариев Windows. Например, ветвь может содержать следующие параметры.

    ■ Default Namespace — этот параметр строкового типа определяет пространство имен, используемое по умолчанию (если пространство имен не указано явно). Чаще всего значение равно root\cimv2.

    ■ Enable for ASP — если значение данного параметра DWORD-типа равно 1, то будет разрешено использование сценариев WMI для ASP.

    ■ Default Impersonation Level — этот параметр DWORD-типа определяет используемый по умолчанию (если уровень не указан в сценарии) уровень прав безопасности. По умолчанию значение равно 3.

    Доступ к WMI с помощью сервера сценариев

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

    Итак, сервер сценариев Windows является объектно-ориентированным языком. Иными словами, при написании сценариев в них можно подключать различные объекты (хранящие описания методов, реализующих различные возможности работы с операционной системой), а также моникеры (СОМ-механизм для обеспечения привязки к СОМ-объекту, например к базе данных WMI). Сценарии сервера сценариев можно писать на языке VBScript либо JScript. В данном случае для рассмотрения примеров будет использоваться язык VBScript.

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

    Включение и выключение SystemRestore для отдельных дисков

    Рассмотрим первый пример тех возможностей, которые предоставляет администратору WMI. В этом примере воспользуемся классом SystemRestore, описанным в пространстве имен root /default для реализации возможности отключения или включения восстановления системы на отдельных дисках с помощью сервера сценариев Windows. Пример, кроме доступа к WMI, будет содержать описание реализации основных возможностей объектов сервера сценариев, а также подробное объяснение, для чего записывается та или иная строка сценария.

    Листинг 11.1. Отключение или включение восстановления системы на отдельном диске

    'Для работы данного сценария используются возможности объектов Windows

    '(работа с реестром и файловой системой), поэтому перед обращением к

    'этим возможностям нужно объявить в сценарии объекты, в которых они описаны

    'Сейчас мы объявляем объект для работы с файловой системой Windows, он

    'нам понадобится для возможности записи в файл сведений об отключении

    'SystemRestore.

    set objFS = CreateObject("Scripting.FileSystemObject")

    'После объявления объекта необходимо открыть текстовый файл

    '(например, файл sr_log.txt, расположенный в каталоге d:\)

    'для записи (если файл не сущестует, то он будет автоматически создан).

    'В этот файл будет записываться информация о работе сценария.

    set objTextFile = objFS.OpenTextFile("d:\sr_log.txt", 8, True)

    'Теперь мы объявляем объект для работы с реестром Windows.

    'Он нам понадобится для доступа к параметру, указывающему, включена ли

    'в данный момент возможность SystemRestore

    set objREG = WScript.CreateObject("Wscript.Shell")

    Теперь мы объявляем объект, с помощью которого можно обработать

    'передаваемые в сценарий параметры командной строки. Наш сценарий будет

    'использовать параметры командной строки для определения того, что же

    'ему нужно делать. При этом полная строка запуска нашего сценария

    'будет выглядеть так: cscript «путь к файлу сценария и его имя» «значок

    'диска» «если этот параметр равен Y, то SystemRestore на диске будет

    включена, если же значение этого параметра равно N, то отключена».

    'Если параметры не заданы (например, сценарий запускается двойным щелчком

    'на его значке), то будут применяться параметры По умолчанию: будет

    'отключаться возможность SystemRestore на диске C:\.

    Set Args = wscript.Arguments

    Теперь мы проверяем, использовали ли при запуске сценария параметр

    'значка диска (первую опцию). Если не использовали, то будем работать

    'с диском C:\.

    If Args.Count() > 0 Then

     Drive = Args.item(0)

    Else

     Drive = "c:\"

    End If

    'Теперь мы проверяем использование при запуске сценария второго параметра

    If Args.Count() > 1 Then

     StopSR = Args.item(1)

    Else

     StopSR = "N"

    End If

    'При каждом запуске даннного сценария мы будем вести журнал его работы.

    'Каждый журнал, как правило, начинается с даты и времени, когда сценарий

    'был запущен – именно эту информацию мы и добавляем в открытый ранее

    'файл. Для этого мы используем метод Write, чтобы сервер сценариев

    'не переходил на следующую строку файла журнала после занесения в него

    'даты и времени.

    objTextFile.Write Date() & " в " & Time()

    'Сейчас мы вызываем главную функцию программы, описанную ниже в сценарии.

    'Главный код программы был реализован в виде функции, чтобы показать

    'читателю большинство возможностей сервера сценариев Windows.

    call sronoff()


    'А вот и главная функция программы (которая будет называться sronoff).

    'Именно эта функция отключает или включает SystemRestore на определенном

    'диске. Реализация частей кода сценария в виде функций позволяет

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

    'позволяет завершать работу сценария в любое время, независимо от

    'оставшегося для обработки кода, или использовать для каждой части

    'кода свои методы обработки ошибок.

    private sub sronoff()

     'Внимание, именно сейчас мы подключаемся к WMI с помощью моникера winmgmts.

     'Здесь мы подключаемся к пространству имен root/default локального

     'компьютера и объявляем класс SystemRestore этого пространства c имитацией

     'прав доступа (impersonate). Если вам запрещен доступ к пространству

     'имен root/default, то вы не сможете объявить класс SystemRestore

     'Помните, выше мы рассматривали параметры реестра, для определения порогов

     'передачи объектов от поставщиков WMI. Именно передачей объектов мы и

     'пользуемся в данный момент.

     Set obj = GetObject("winmgmts:{impersonationLevel=impersonate}!root/default:SystemRestore")

     'Чуть ниже мы считываем из реестра значение параметра. Особенность

     'сценария состоит в том, что он будет выдавать ошибку, если параметра,

     'значение которого мы считываем, не существует в реестре. Чтобы сценарий

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

     'Иными словами, приведенная ниже строка говорит серверу сценариев о том,

     'что в случае возникновения ошибки он должен дальше обрабатывать сценарий,

     'не обращая внимания на возникшую ошибку.

     ON ERROR RESUME NEXT

     'Именно сейчас мы и работаем с реестром. Мы считываем значение

     'параметра DisableSR. Если значение данного параметра равно 1,

     'то SystemRestore полностью отключен на всех дисках и наш

     'сценарий в любом случае не будет работать со всеми дисками,

     'кроме системного.

     dasableSR = objREG.RegRead("HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SystemRestore\DisableSR")

     'Если параметр, значение которого мы считываем, не существует в

     'реестре, тогда компилятор запишет в специальный объект err

     'код ошибки, равный –2147024894 (именно ошибка с этим кодом и возникает

     'в том случае, если параметр реестра, к которому мы пытаемся

     'получить доступ, в реестре отсутствует) .Если действительно произошла

     'ошибка с данным кодом, то SystemRestore на компьютере отключена,

     'то есть все попытки включения/отключения дисков, отличных от системного

     '(ниже под С:\ понимается системный диск), будут неудачны.

     'Ниже в сценарии будет присутствовать еще одно условие, выполняющее те же

     'действия, что и это. Работа с объектом для хранения ошибок была описана

     'лишь для примера, таккак в сценариях сервера сценариев Windows это

     'единственный способ определить, присутствует ли в реестре конкретный

     'параметр.

     if (err.Number = –2147024894) and (Drive <> "c:\") then

      objTextFile.WriteLine " : Параметр DisableSR отсутствует в реестре. Это значит, что SystemRestore отключена и вкладка для ее настройки отсутствует в диалоге Свойства системы"

      'Выходим из функции, а поскольку эта функция главная, то завершается

      'и работа сценария. Иными словами, дальнейший код сценария

      'выполняться не будет, если мы пытаемся включить/отключить несистемный

      'диск, если сама возможность SystemRestore отключена.

      exit sub

     End if

     'Под диском C:\ понимается системный диск, поэтому если вашим системным

     'диском является не диск С:\, то букву нужно заменить. Особенность

     'работы SystemRestore заключается в том, что в случае остановки

     'SystemRestore на системном диске SystemRestore автоматически

     'останавливается на всех дисках компьютера и параметр DisableSR становится

     'равен 1. Именно поэтому запросы на включение/выключение System Restore

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

     'параметра DisableSR, равном 1 (эти запросы работать не будут). При

     'этом системный диск запросы обрабатывать может – если SystemRestore на

     'нем будет включена, то параметр DisableSR станет равным 0, а значит,

     'будет включена и сама возможность автоматического восстановления.

     'Именно поэтому ниже системный диск исключается из условного выполнения.

     if (dasableSR > 0) and (Drive <> "c:\") then

      objTextFile.WriteLine " : Возможность работы SystemRestore на всех дисках была отключена"

      exit sub

     else

      'Для облегчения читаемости приведенного кода вместо условных конструкций

      'if … else используются конструкции select case. В остальном дальше

      'код довольно простой, поэтому описывать его мы не будем.

      select case StopSR

      case "N"

       If (obj.Disable(Drive)) = 0 Then

        objTextFile.WriteLine " : SystemRestore для диска " & Drive & " успешно остановлена"

       Else

        objTextFile.WriteLine " : Внимание!!! SystemRestore для диска " & Drive & " остановить не удалось"

       End If

      case "Y"

       If (obj.Enable(Drive)) = 0 Then

        objTextFile.WriteLine " : SystemRestore для диска " & Drive & " успешно запущена"

       Else

        objTextFile.WriteLine " : Внимание!!! SystemRestore для диска " & Drive & " запустить не удалось"

       End If

      End Select

     End if

     'Считается хорошим тоном закрывать в сценариях текстовые файлы, открытые

     'до этого. Именно этим и занимается приведенная ниже строка.

     objTextFile.Close

    end sub

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

    Set obj = GetObject("winmgmts:{impersonationLevel=impersonate}!root/ default:SystemRestore")

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

    Set obj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\«имякомпьютера»\root\default:SystemRestore")

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

    Напоследок несколько возможных команд запуска приведенного сценария:

    ■ cscript d: \sr.vbs — полностью отключить возможность восстановления системы (если диск C: является системным);

    ■ cscript d:\sr.vbs c:\ Y — полностью включить возможность восстановления системы (если диск C: является системным);

    ■ cscript d:\sr.vbs D:\ N — отключить SystemRestore только на диске D:.

    Создание контрольной точки восстановления

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

    Листинг 11.2 Создание контрольной точки восстановления

    Set obj = GetObject("winmgmts:{impersonationLevel=impersonate}!root/ default:SystemRestore")

    'С помощью данной функции и создается точка восстановления.

    'Функция имеет три параметра, первый из которых определяет описание

    'создаваемой точки восстановления и возвращает код ошибки в случае

    'неудачной попытки создания. Нам этот код не нужен,

    'но тем не менее его необходимо поместить в любую переменную.

    'Если вы будете записывать сведения о создании точки в журнал,

    'то данный код может понадобиться.

    ErrorSRCode = obj.CreateRestorePoint("Точка восстановления от " & Time(), 0, 100)

    Энумерация содержимого ветви реестра

    Стандартные методы объекта, предназначенные для доступа к системному реестру (WScript.CreateObject("Wscript.Shell") ), один из которых, позволяющий считывать значения параметров из реестра, был рассмотрен в примере сценария для включения/отключения восстановления системы на логических дисках компьютера, позволяют выполнить базовые операции с реестром.

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

    ПРИМЕЧАНИЕ

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

    За выполнение перечисления параметров, расположенных в ветви реестра, отвечает метод EnumValues, принадлежащий классу StdRegProv. Данный класс определяет методы для доступа к реестру Windows XP (более функциональный аналог стандартного объекта Windows, рассмотренного выше) и принадлежит к пространству имен Root\Default. Мы не будем создавать целый работоспособный сценарий для описания работы данного метода — лучше создадим отдельную процедуру, которая будет выполнять перечисление параметров указанной ветви реестра, а также проверим ее работу с помощью записи в файл журнала выводимых значений. 

    Листинг 11.3. Энумерация параметров ветви реестра

    set objFS = CreateObject("Scripting.FIleSystemObject")

    'Для вывода списка содержащихся в ветви реестра параметров мы будем

    'использовать файл. В нашем случае – файл enum_log.txt на диске d:\..

    set objTextFile = objFS.CreateTextFile("d:\enum_log.txt", 8, True)

    'подключаем объект

    Set obj = GetObject("winmgmts:{impersonationLevel=impersonate}!root/Default:StdRegProv")

    'Переменная RootKey будет определять корневой раздел ветви, параметры

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

    'в соответствии с правилами, определеннымивфайле Winreg.h. В файле

    'определены следующие корневые разделы: HKEY_CLASSES_ROOT (0x80000000),

    'HKEY_CURRENT_USER (0x80000001), HKEY_LOCAL_MACHINE (0x80000002),

    'HKEY_USERS (0x80000003), HKEY_CURRENT_CONFIG (0x80000005), HKEY_DYN_DATA

    '(0x80000006). В нашем случае будет использоваться корневой раздел

    'HKEY_CURRENT_USER.

    RootKey = &H80000001

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

    'работы процедуры необходимы три параметра: ветвь реестра, параметры которой

    'нужно перечислять (в нашем случае Control Panel\Desktop), объект,

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

    'ветви, а также корневой раздел указанной ранее ветви, записанный в нашем

    'случае в параметре RootKey. После работы процедуры закрываем открытый

    'текстовый файл.

    call EnumV("Control Panel\Desktop", objTextFile, RootKey)

    objTextFile.Close

    Sub EnumV(Path, objTextFile, RootKey)

     objTextFile.WriteLine ":::: Ветвь реестра: HKEY_CURRENT_USER\" & Path & vbCrLf

     'Выполняем перечисление параметров, расположенных в ветви реестра

     'HKEY_CURRENT_USER\Control Panel\Desktop. Для этого используется метод

     'EnumValues, для работы которого необходимы следующие параметры:

     '– Корневой раздел ветви (в нашем случае параметр RootKey)

     '– Остальной путь к ветви реестра (в нашем случае параметр RootKey,

     'указываемый при вызове процедуры).

     ' – Переменная, в которую будут помещаться содержащиеся в ветви реестра

     'параметры. В нашем случае назовем эту переменную Names

     ' – Переменная, в которую будет помещаться идентификатор типа параметра.

     'В нашем случае назовем ее Types.

     obj.EnumValues RootKey, Path, Names, Types

     'Проверяем, существуют ли в указанной ветви реестра параметры. Во-первых,

     'проверяется равенство нулю переменной Names, содержащей названия

     'параметров. А во-вторых, проверяем на равенство нулю переменную Types.

     'Переменные нужно проверять именно на равенство нулю, так как ноль

     'возвращается методом EnumValues в случае ошибки.

     if not IsNull(Names) and not IsNull(Types) Then

      'Выполняем цикл, количество итераций которого указывается границами

      'переменной types (количеством элементов в переменной types, так как это

      'массив). Иными словами, выполняем цикл столько раз, сколько переменных было

      'найдено в указанной ветви реестра.

      for i = lbound(types) to ubound(types)

       'При этом мы будем выполнять запись в текстовый файл в зависимости

       'от типа переменной, указанного в переменной types. Для этого будем

       'использовать выражение select case из-за особенности метода EnumValues.

       'Особенностью этого метода является способ указания типа найденной

       'переменной. Для этого используется массив types (в нашем случае),

       'в который помещаются идентификаторы типа переменной, определенные

       'в файле Winreg.h. Возможны следующие идентификаторы:

       '1 – определяет переменную строкового типа;

       '2 – определяет переменную расширенного строкового типа;

       '3 – определяет переменную REG_BINARY-типа;

       '4 – определяетпеременную REG_DWORD-типа;

       '7 – определяет переменную REG_MULTI_SZ-типа.

       select case types(i)

       'Проверяем тип параметра и в зависимости от этого типа используем

       'разные методы для получения значения параметра. Все методы для

       'получения значений параметров реестра также описаны в классе

       'StdRegProv. Мы используем следующие методы.

       'GetStringValue – получение значения строкового типа.

       'GetExpandedStringValue – получение значения расширенного строкового типа.

       'GetBinaryValue – получение значения параметра REG_BINARY-типа.

       'GetDWordValue – получение значения параметра REG_DWORD-типа.

       'GetMultiStringValue – получение значения параметра REG_MULTI_SZ-типа.

       'Все эти методы используют для своей работы следующие переменные:

       'идентификатор корневого раздела ветви реестра, остальной путь к ветви

       'реестра, имя параметра (в нашем случае элемент массива names), а также

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

       'параметра.

       case 1

        obj.GetStringValue RootKey, path, names(i), value

        'После считывания значения параметра проверяем, не произошла ли ошибка

        'при считывании (как обычно, значение нуль в переменной). Если ошибки нет,

        'то записываем параметр и его значение в текстовый файл. Аналогично

        'выполняется работа и с другими типами параметров, поэтому их мы описывать

        'не будем.

        If isnull(names(i)) or not isnull(value) then

         objTextFile.WriteLine names(i) & " = REG_SZ: " & value

        end if

       case 2

        obj.GetExpandedStringValue RootKey, path, names(i), value

        if not isnull(names(i)) or not isnull(value) then

         objTextFile.WriteLine names(i) & " = REG_EXPAND_SZ: " & value

        end if

       case 3

        obj.GetBinaryValue RootKey, path, names(i), value

        for j = lbound(value) to ubound(value)

         value(j) = hex(cint(value(j)))

        next

        if not isnull(names(i)) or not isnull(value) then

         objTextFile.WriteLine names(i) &" = REG_BINARY : "& _

          join(value, ",")

        end if

       case 4

        obj.GetDWordValue RootKey, path, names(i), value

        if not isnull(names(i)) or value then

         objTextFile.WriteLine names(i) & " = REG_DWORD : " & _

          hex(value)

        end if

       case 7

        obj.GetMultiStringValue RootKey, path, names(i), value

        for j = lbound(value) to ubound(value)

         value(j) = value(j)

        next

        if not isnull(names(i)) or not isnull(value) then

         objTextFile.WriteLine names(i) &" = REG_MULTI_SZ : "& _

          join(value, ",")

        end if

       end select

      next

     end if

    End Sub

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

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

    ПРИМЕЧАНИЕ

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

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

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

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

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

    ■ CheckAccess — определяет, разрешен ли пользователю доступ к указанной ветви реестра. Если метод выполнился успешно, то он возвратит значение 0, иначе — любое другое значение. Для его работы необходимы следующие четыре параметра: идентификатор корневого раздела ветви реестра (аналог переменной RootKey приведенного сценария), остальной путь к ветви реестра, права на которую необходимо проверить, флаг для определения проверяемых прав, а также переменная, в которую будет помещен результат выполнения метода. Если значение этой переменной будет равно true, то пользователь обладает нужными правами на данную ветвь реестра, иначе возвращается значение false.

    Флаг для определения проверяемых прав является битовой маской, значения которой определены в файле Winnt.h. Этот флаг может содержать следующие значения:

    ■ 0X0001 — KEY_QUERY_VALUE (разрешено запрашивать значения из дочерних разделов вашей ветви реестра);

    ■ 0X0002 — KEY_SET_VALUE (разрешено создание, удаление и установка значений параметров вашей ветви реестра);

    ■ 0X0004 — KEY_CREATE_SUB_KEY (разрешено создание и удаление дочерних разделов вашей ветви реестра);

    ■ 0X0008 — KEY_ENUMERATE_SUB_KEYS (разрешена энумерация дочерних разделов вашей ветви реестра);

    ■ 0X0010 — KEY_NOTIFY (разрешен вывод подтверждения на запрос изменения параметров или дочерних разделов вашей ветви реестра);

    ■ 0X0020 — KEY_CREATE_LINK (используется системой);

    ■ 0x00010000 — DELETE (разрешено удаление);

    ■ 0x00020000 — READ_CONTROL (разрешено управление чтением);

    ■ 0X00040000— WRITE_DAC (разрешен избирательный контроль над доступом к записи);

    ■ 0X00080000 — WRITE_OWNER (разрешено изменение владельца ветви).

    В классе StdRegProv также описаны методы SetBinaryValue, SetExpandedStringValue, SetMultiStringValue, SetStringValue, но мы их описывать не будем, так как их вызов аналогичен вызову описанного выше метода SetDWORDValue.

    ПРИМЕЧАНИЕ

    Подробнее о классе StdRegProv можно узнать из стандартного файла Windows XP regevent.mfl, расположенного в каталоге %systemroot%\SYSTEM32\wbem.

    Создание, завершение и просмотр учетной записи процесса

    К другим основным возможностям инструментария управления WMI относятся возможности работы с процессами, запущенными на удаленном или локальном компьютере. При этом инструментарий предоставляет возможности не только по запуску или завершению процесса, но и по определению учетной записи, от имени которой запущен определенный процесс. Для работы с процессами используется класс Win32_Process, принадлежащий к пространству имен root\cimv2. Рассмотрим маленький пример по созданию нового процесса с использованием метода Create. 

    Листинг 11.4. Создание нового процесса

    set obj = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\ cimv2:Win32_Process")

    obj.Create "C:\WINDOWS\regedit.exe"

    Действительно, маленький пример. Теперь подробнее рассмотрим методы класса Win32_Process, направленные на работу с процессами.

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

     • 0 — успешное завершение;

     • 2 — пользователь не имеет доступа к запрашиваемым данным;

     • 3 — у пользователя нет достаточных привилегий;

     • 8 — неизвестная ошибка;

     • 9 — пользователь не имеет необходимых привилегий;

     • 21 — указан недопустимый параметр.

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

    ■ Terminate — прекращает процесс и все его дочерние процессы.

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

    ■ GetOwnerSid — возвращает SID пользователя, от имени которого был запущен процесс.

    ■ SetPriority — устанавливает приоритет выполнения определенного процесса.

    ■ AttachDebugger — вызывает отладчик данного процесса.

    ПРИМЕЧАНИЕ

    За более детальной информацией обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM32\wbem.

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

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

    Листинг 11.5. Завершение сеанса пользователя компьютера

    'Подключаемся к пространству имен root\cimv2

    set objWMIService = GetObject("winmgmts:" & "{impersonationLevel = impersonate}!\\.\root\cimv2")

    'Выполняем SQL-запрос для подключения к классу

    set colSoftware = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

    'Вызываем метод для завершения сеанса пользователя. Метод для своей

    'работы использует один параметр (точнее, два, но второй параметр на данный

    'момент не используется) – флаг, указывающий на необходимое действие.

    'В нашем случае флаг равен 0, что говорит о необходимости завершения сеанса

    'пользователя .Для осуществления возможности перезагрузки или выключения

    'компьютера необходимо, чтобы инициирующий перезагрузку процесс обладал

    'правом SE_SHUTDOWN_NAME. Остальные значения флага определяются от бита,

    'установленного в нем. Биты описаны следующим образом: "Завершение работы",

    '"Перезагрузка", "Принудительно", "Питание выключено"

    for each objSoftware in colSoftware

     objSoftware.Win32Shutdown 0

    next

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

    Кроме метода Win32 Shutdown, класс Win32_OperatingSystem описывает еще три метода. Если вызывающий процесс обладает правом SE_SHUTDOWN_NAME, то выполняются следующие действия.

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

    ■ Shutdown — компьютер будет выключен. Метод не имеет параметров, но при успешном выполнении возвращает 0.

    ■ SetDateTime — будет установлено системное время компьютера. Данный метод для своей работы требует один параметр, определяющий новое время, которое нужно установить (имеет тип DateTime, имеющий довольно странный формат, например установка параметра равным "00000000000000.000000:000" обнуляет время).

    Получение сведений об установленных на компьютере программах

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

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

    'Объявляем объект для доступа к файловой системе, а потом создаем файл,

    'в который будут записываться сведения об установленных на компьютере

    'программах (например, файл Program_list.txt в каталоге e:\)

    set objFSO = CreateObject("Scripting.FIleSystemObject")

    set objTextFile = objFSO.CreateTextFile("e:\Program_list.txt", True)

    'Подключаемся к пространству имен root\cimv2

    set objWMIService = GetObject("winmgmts:" & "{impersonationLevel = impersonate}!\root\cimv2")

    'Выполняем SQL-запрос на получение всех записей из таблицы Win32_Product

    'Конечно, можно было бы использовать SQL-запрос для получения только

    'отдельных записей или колонок таблицы, но для примера нам такой сложный

    'запрос не нужен

    set colSoftware = objWMIService.ExecQuery("Select * from Win32_Product")

    'Записываем в созданный ранее файл информацию об установленных программах.

    'Здесь мы пользуемся циклом, выполняемым для каждого элемента массива

    'colSoftware. После окончания записи закрываем файл

    for each objSoftware in colSoftware

     objTextFile.WriteLine "Программа: " & objSoftware.Caption & " (описание программы:" & objSoftware.Description & ") была установлена: " & objSoftware.InstallDate2

    next

    objTextFile.Close

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

    ■ objSoftware.IdentifyiungNumber — серийный номер программы;

    ■ objSoftware.InstallLocation — каталог, в который установлена программа;

    ■ objSoftware.Name — название программы, как правило, не отличается от objSoftware.Caption;

    ■ objSoftware.Vendor — производитель программы;

    ■ objSoftware.Version — версия программы.

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

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

    Листинг 11.7. Получение сведений об операционной системе

    set objWMIService = GetObject("winmgmts:" & "{impersonationLevel = impersonate}!\ root\cimv2")

    set colOS = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

    for each objOperatingSystem in colOS

     objTextFile.WriteLine objOperatingSystem.Name

    next

    Именно так можно подключиться к базе данных сведений об операционной системе и записать их в файл. Но к каким столбцам таблицы можно получить доступ (кроме используемого в листинге столбца Name, который содержит имя операционной системы и путь к папке Windows)? Ниже перечислены некоторые из таких столбцов (в контексте инструментария управления WMI они называются свойствами).

    ■ BootDevice — указывает имя тома, из которого загружается операционная система.

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

    ■ DataExecutionPrevention_Available — если данное свойство возвращает значение true, то оборудование, установленное на компьютере, поддерживает технологию предотвращения выполнения данных Windows (DEP). Более подробные сведения об этой технологии можно найти в файле cimwin32.mfl.

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

    ПРИМЕЧАНИЕ

    Свойство использует для определения метода оптимизации уже рассмотренный ранее параметр реестра LargeSystemCache, расположенный в ветви HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management. Если его значение равно 1, то возвращается значение 1.

    ■ Version — содержит номер версии операционной системы Windows.

    ■ ServicePackMajorVersion — основная версия установленного пакета обновлений.

    ■ ServicePackMinorVersion — дополнительная версия установленного пакета обновлений.

    ■ Manufacturer — имя производителя операционной системы.

    ■ WindowsDirectory — каталог Windows.

    ■ Locale — код локализации (419 для русской версии, 409 для английской).

    ■ FreePhysicalMemory — свободный объем жесткого диска.

    ■ FreeVirtualMemory — свободный объем виртуальной памяти.

    ■ TotalVirtualMemorySize — общий объем виртуальной памяти.

    Здесь были рассмотрены лишь 13 свойств класса Win32_OperatingSystem, на самом же деле данный класс имеет 35 свойств. Не имеет смысла описывать остальные свойства, так как все они отлично описаны в стандартном файле cimwin32.mfl, расположенном в каталоге %systemroot%\SYSTEM32\wbem, а автор не брал на себя задачу создания книжного аналога данного файла. Поэтому за дополнительной информацией обращайтесь к файлу cimwin32.mfl (просто поищите в нем строку Win32_OperatingSystem).

    Кроме Win32_OperatingSystem, для описания компьютера можно использовать следующие классы.

    ■ Win32_ComputerSystem — содержит следующие свойства, описывающие работающий компьютер.

     • AutomaticResetBootOption — если данное свойство возвращает значение false, то при возникновении аварийной остановки отображается «синий экран смерти» (BSOD). Если же значение равно true, то компьютер автоматически перезагружается.

     • BootupState — определяет способ загрузки операционной системы. На пример, если данное свойство возвращает значение Normal Boot, то операционная система была загружена в обычном режиме. Возможны следующие значения: Normal boot, Fail-safe boot, Fail-safe with network boot.

     • Name — имя компьютера.

     • NumberOfProcessors — возвращает количество процессоров, установленных на данном компьютере.

     • Manufacturer — имя компании, собиравшей компьютер.

     • Model — модель BIOS компьютера (поддерживает ACPI или нет).

     • CurrentTimeZone — идентификатор текущей зоны часового пояса.

     • TotalPhysicalMemory — общий объем физической памяти.

    ПРИМЕЧАНИЕ

    Класс содержит 39 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM32\wbem. Просто поищите в нем строку Win32_ComputerSystem. 

    ■ Win32_Processor — определяет один экземпляр процессора (для многопроцессорных систем существует несколько экземпляров данного класса) и содержит следующие свойства:

     • Description — описание процессора, установленного на компьютере;

     • Architecture — тип процессора, установленного на компьютере;

     • CurrentVoltage — возвращает текущее напряжение, используемое процессором (определяется первыми 6 байтами, умноженными на 10);

     • L2CacheSize — возвращает размер кэша второго уровня для данного процессора;

     • LoadPercentage — возвращает среднюю величину загруженности процессора в течение одной секунды.

    ПРИМЕЧАНИЕ

    Класс содержит 16 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM32\wbem. Просто поищите в нем строку Win32_Processor.

    ■ Win32_BIOS — указывает атрибуты служб ввода/вывода, установленных на компьютере и содержит следующие свойства:

     • Version — описание версии BIOS материнской платы;

     • CurrentLanguage — возвращает имя текущего языка BIOS.

    ПРИМЕЧАНИЕ

    Класс содержит 11 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM3\wbem.

    ■ Win32_OSRecoveryConfiguration — определяет установленные настройки выполнения дампа памяти при аварийной остановке системы и содержит следующие свойства.

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

     • MiniDumpDirectory — возвращает каталог, который используется для хранения малых дампов памяти.

     • WriteToSystemLog — указывает, будет ли выполняться запись в системный журнал событий при возникновении аварийной остановки. Если возвращает значение false, то не будет.

    ПРИМЕЧАНИЕ

    Класс содержит 11 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM3\wbem.

    ■ Win32_Process — указывает запущенные в данный момент на удаленном или локальном компьютере процессы и содержит следующие свойства, возвращающие:

     • ExecutablePath — пути к исполняемым файлам процессов, запущенных в данный момент;

     • MaximumWorkingSetSize — максимальный набор страниц памяти, доступных процессам;

     • PageFaults — количество ошибок страниц, которые были допущены в течение всего времени работы процесса;

     • PageFileUsage — объем файла подкачки, который используется процессом в данный момент;

     • ProcessId — идентификатор процесса;

     • QuotaPagedPoolUsage — размер используемой процессом в данный момент части выгружаемого пула;

     • CommandLine — командную строку, которая использовалась для запуска данного процесса.

    ПРИМЕЧАНИЕ

    Класс содержит 30 свойств, поэтому за описанием других свойств обращайтесь к файлу cimwin32.mfl, расположенному в каталоге %systemroot%\SYSTEM3\wbem.

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

     • Command — возвращает командную строку, с помощью которой запускаются исполняемые файлы, или имя файла, который запускается исполняемым.

     • User — имя учетной записи пользователя, при входе которого запускается данный файл (так описание свойства определено в файле cimwin32.mfl, хотя возвращаемое значение больше похоже на имя учетной записи, с правами которой данный файл запускается).

     • Name — название запускаемого файла (без расширения).

     • Location — значение Startup, говорящее о том, что данный файл запускается с помощью папки Автозагрузка, или ветвь реестра, из которой выполняется запуск данного файла.

    ■ Win32_NTEventlogFile — определяет параметры настройки системных журналов (рассмотренная оснастка Просмотр событий) и содержит следующие свойства:

     • LogFileName — возвращает имя системного журнала;

     • MaxFileSize — определяет предельный размер файла системного журнала;

     • NumberOfRecords — возвращает количество записей, хранящихся в данный момент в системных журналах;

     • OverwriteOutDated — количество дней, в течение которого запись может храниться в системном журнале.

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

     • Element — перечисляет все доступные на компьютере группы и учетные записи. При этом разница между данными объектами отображается в виде класса, к которому они принадлежат (формат вывода в текстовый файл таков: пространство имен WMI и класс, к которому принадлежит данная учетная запись или группа, а также название данной учетной записи или группы,например, \\ME\root\cimv2 :Win32_Group.Domain="ME",Name="Администраторы").

     • Setting — перечисляет SID учетных записей и групп, созданных на данном компьютере.

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

    Другие классы и функции пространств имен WMI

    WMI является неисчерпаемой темой для обсуждения, так как содержит просто огромное количество классов, не говоря уже о количестве функций, реализованных в этих классах. Для рассмотрения всех функций WMI (не говоря уже об объектах сервера сценариев Windows для доступа к файловой системе и реестру и их методах) необходимо писать отдельную книгу страниц где-то на 1000. Поэтому в контексте данной книги мы закончим обсуждение базы данных CIMOM и пространств имен WMI. Если же приведенных выше сценариев для вас мало, то в Интернете можно найти множество уже готовых сценариев работы с WMI. Кроме того, список всех классов, их функций, а также краткое описание работы этих функций можно найти в самой Windows XP. Краткие сведения обо всех функциях пространств имен WMI содержатся в файлах с расширениями MOF и MFL (в файлах с расширением MOF хранится описание функций на английском языке, а в файлах с расширением MFL — на русском), расположенных в каталоге %systemroot%\system32\wbem. Например, среди данных файлов можно найти файл sr.mof. В нем содержится описание всех классов, которые предназначены для работы с SystemRestore. Например, вот небольшая вырезка из файла, описывающая рассмотренный выше класс SystemRestore.

    Листинг 11.8. Описание класса SystemRestore в файле sr.mof

    [Dynamic, Provider ("SystemRestoreProv")] class SystemRestore {

     [read, write]

     String Description;

     [read, write]

     uint32 RestorePointType;

     [read, write]

     uint32 EventType;

     [read, write, key]

     uint32 SequenceNumber;

     [read, write] String CreationTime;

     [Implemented, static, Description("The CreateRestorePoint method creates a restore point." "It returns a COM error code.")]

     uint32 CreateRestorePoint([In] String Description, [In] uint32 RestorePointType, [In] uint32 EventType);

     [Implemented, static, Description "The Enable method enables SR on a drive." "It returns a COM error code.")]

     uint32 Enable([In] String Drive, [In] Boolean WaitTillEnabled);

     [Implemented, static, Description("The Disable method disables SR on a drive." "It returns a COM error code.")]

     uint32 Disable([In] String Drive);

     [Implemented, static, Description("The Restore method restores the system to a specified restore point." "It returns a COM error code.")]

     uint32 Restore([In] uint32 SequenceNumber);

     [Implemented, static, Description("Returns the status (0=fail, 1=success, 2=interrupted) of the last restore.")]

     uint32 GetLastRestoreStatus();

    };

    Как заметно из данной вырезки, с помощью класса SystemRestore можно определить, была ли успешной предыдущая попытка восстановления системы из контрольной точки, а также можно автоматически восстановить систему на основе указанной контрольной точки. К сожалению, не существует файла sr.mfl, хранящего описание на русском языке. Зато в каталоге %systemroot%\system32\wbem есть файл cimwin32.mfl, содержащий описание всех функций и классов пространства имен Root\CIMV2 на русском языке. В каталоге %systemroot%\ system32\wbem также находятся следующие интересные файлы.

    ■ regevent.mfl — описывает работу с реестром Windows XP.

    ■ licwmi.mfl — хранит свойства и методы для работы с функцией активизации Windows XP. В частности, метод для автоматической активизации операционной системы через Интернет.

    ■ Msi.mfl — описывает свойства и методы для работы с пакетами установки Windows. Некоторые свойства из этого файла (класс Win32_Product) были рассмотрены ранее. Методы же, которые он поддерживает, позволяют удаленно установить пакет установщика Windows с правами системы.

    ■ ntevt.mfl — хранит свойства и методы для работы с системными файлами журналов. В частности, методы очистки системных журналов или их копирования.

    ■ rsop.mfl — описывает свойства и методы для работы с результирующей политикой (RSoP).

    ■ secrcw32.mfl — хранит свойства и методы для работы с учетными записями компьютера, а также списками ACL и другими объектами безопасности компьютера.

    ■ smtpcons.mfl — описывает свойства для работы с почтовыми сообщениями smtp-сервера.

    Стандартные сценарии сервера сценариев

    Напоследок хотелось бы описать стандартные сценарии сервера сценариев Windows XP (поставляются вместе с Windows XP Professional). Все они расположены в каталоге %systemroot%\system32.

    ■ Eventquery.vbs — предназначен для работы с системными журналами событий (оснастка Просмотр событий) и при запуске без параметров, например cscript.exe C:\WINDOWS\SYSTEM32\eventquery.vbs, перечисляет все события, записанные в локальном журнале Система. Чтобы просмотреть возможные параметры работы данного сценария, необходимо ввести команду cscript.exe C:\WINDOWS\SYSTEM32\eventquery.vbs /?. Честно сказать, количество параметров впечатляет. Можно подключаться к удаленному компьютеру, для этого указать учетную запись и пароль, настроить фильтр выводимых записей событий, способ вывода событий и т.д. Сценарий хорошо описан, да к тому же еще и на русском языке, а также содержит набор примеров, поэтому его использование сложности не представляет.

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

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

    Можно также выполнить команду cscript.exe C:\WINDOWS\SYSTEM32\ pagefileconfig.vbs /? для вывода описания возможных параметров данного сценария. Эти параметры объединены в группы, описание которых можно вызвать с помощью следующих команд.

     • cscript C:\WINDOWS\SYSTEM32\pagefileconfig.vbs /change /? — описывает функции для изменения размера файла подкачки на локальном или удаленном компьютере.

     • cscript C:\WINDOWS\SYSTEM32\pagefileconfig.vbs /create /? — создать или добавить новый файл подкачки на логическом диске локального или удаленного компьютера.

     • cscript C:\WINDOWS\SYSTEM32\pagefileconfig.vbs /delete /? — удалить файл подкачки на логическом диске локального или удаленного компьютера.

     • cscript C:\WINDOWS\SYSTEM32\pagefileconfig.vbs /query /? — отобразить текущие параметры файла подкачки на удаленном или локальном компьютере (если на локальном, то данная функция эквивалентна вызову сценария без параметров).

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

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

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

    ■ Prnjobs.vbs — предназначен для работы с заданиями принтера: просмотр всех заданий, приостановка и продолжение выполнения задания, а также отмена выполнения задания.

    ■ Prnmngr.vbs — используется для подключения и отключения принтеров (установленных на удаленном компьютере).

    ■ Prnport.vbs — предназначен для подключения и отключения ТСР-порта принтера.

    ■ Prnqctl.vbs — позволяет выполнить пробную печать на данном принтере, а также приостановить работу принтера. 

    Просмотр событий

    С помощью оснастки Просмотр событий реализуется возможность просмотра трех системных журналов Windows XP, каждый их которых содержит сведения о том или ином компоненте компьютера: о приложениях, установленных на нем, о работе системных компонентов и о работе компонентов безопасности компьютера. Оснастка Просмотр событий входит в стандартную консоль Windows XP eventvwr.msc и имеет GUID-номер {975797FC-4E2A-11D0-B702-00C04FD8DBF7}.

    Запуск консоли

    После ввода в командной строке команды eventvwr.msc консоль управления Microsoft просматривает две дополнительные ветви реестра (естественно, что также она просматривает ветви реестра, относящиеся к настройке самой оснастки Просмотр событий).

    Во-первых, просматривается содержимое ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog, хранящей настройки службы Журнал событий. Данная ветвь системного реестра включает в себя три раздела: Application, Security, System. Все три раздела просматриваются консолью управления Microsoft на существование параметра File расширенного строкового типа. Именно этот параметр и содержит путь к файлу журнала, хранящему все сведения, отображаемые в одном из журналов оснастки Просмотр событий. Соответственно параметр File раздела Application хранит путь к журналу приложения, параметр раздела Security — путь к журналу безопасности, а параметр раздела System — путь к журналу системы. Остальные параметры этой ветви реестра будут рассмотрены далее.

    Во-вторых, просматривается содержимое ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\EventViewer, параметры которой будут рассмотрены далее в этом разделе.

    Если запуск оснастки Просмотр событий не запрещен, то перед вами отобразится окно, подобное приведенному на рис. 11.6.

    Рис. 11.6. Окно консоли Просмотр событий

    ПРИМЕЧАНИЕ

    С помощью добавления данной оснастки в консоль управления Microsoft можно просмотреть журналы событий другого компьютера. Это можно также сделать с помощью команды Подключиться к другому компьютеру меню Действие консоли Просмотр событий. 

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

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

    Правая панель консоли состоит из нескольких столбцов. Наиболее интересны из них следующие.

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

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

    Дата и Время. Эти два столбца определяют дату и время, когда произошло соответствующее событие.

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

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

    В открывшемся диалоге отображается большая часть полей правой панели консоли, а также область описания записи и поле части содержимого памяти, ошибка или событие в которой породило данную запись (например, запись на рис. 11.7 вызвал ActiveX-объект с GUID-номером, отображенным в поле части содержимого памяти). Стоит также сказать о поле описания записи. Для записей из журнала Приложение данное поле иногда (если приложение, породившее данную запись журнала, написано корпорацией Microsoft) может хранить адрес, по которому можно найти дополнительную информацию о данной ошибке (например, запись на рис. 11.7). Адрес будет передаваться программе event.asp, которая и будет открывать адрес (или программу). По умолчанию используется адрес сайта Microsoft, хотя, как можно видеть на рис. 11.7, этот адрес можно переопределить. Для этого и применяется ветвь системного реестра HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\EventViewer, которая содержит следующие параметры.  

    Рис. 11.7. Диалог описания записи журнала


    ПРИМЕЧАНИЕ

    Данные параметры используются, начиная с Windows XP Service Pack 2.

    ■ MicrosoftRedirectionURL — этот параметр строкового типа определяет адрес сайта, который будет отображаться в поле описания. Адрес может не совпадать с реальным адресом (или командой), на который вы перейдете после щелчка на ссылке. По умолчанию используется адрес http://go.microsoft.com/fwlink/events.asp.

    ■ MicrosoftRedirectionProgram — параметр строкового типа, указывает реальный адрес сайта (или путь к программе), страница которого будет открываться при щелчке на данной ссылке. Значение данного параметра будет передаваться программе event.asp. По умолчанию в значении хранится путь к программе %SystemRoot%\PCHealth\HelpCtr\Binaries\HelpCtr.exe.

    ■ MicrosoftRedirectionProgramCommandLineParameters — этот параметр строкового типа определяет командную строку, которая будет передаваться программе event.asp. По умолчанию используется значение –url hcp://services/centers/support?topic=%s.

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

    Напоследок хотелось бы напомнить о возможности ведения аудита доступа к тем или иным объектам файловой системы или реестра Windows XP. Все события аудита доступа будут записываться в журнал безопасности системы.

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

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

    Ветви реестра, используемые оснасткой

    Теперь вкратце рассмотрим структуру ветви реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog, содержащей настройки службы Журнал событий, используемой в работе оснастки Просмотр событий. Как уже говорилось, данная ветвь реестра включает в себя три раздела (Application, Security и System). Эти разделы могут хранить следующие параметры.

    ■ File — путь к файлу журнала. Этот параметр уже описывался выше.

    ■ MaxSize — параметр DWORD-типа, определяет максимальный размер файла данного журнала.

    ■ RestrictGuestAccess — этот параметр DWORD-типа определяет, разрешено ли пользователю учетной записи Гость просматривать содержимое журналов.

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

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

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

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

    Редактор объекта групповой политики

    Оснастка поставляется только с операционной системой Windows XP, входит в стандартную консоль gpedit.msc и имеет GUID-номер {8FC0B734-A0E1-11D1-A7D3-0000F87571E3}. Доступ к ней имеют только администраторы. С помощью данной оснастки можно запретить те или иные компоненты операционной системы Windows XP. Принцип ее работы довольно интересен, так как все ограничения на компоненты Windows XP заносятся не только в реестр, но и в два специальных файла. Это файлы с именем Registry.pol, расположенные в каталогах %systemroot%\system32\GroupPolicy\Machine и %systemroot%\system32\GroupPolicy\User (запись в данные каталоги разрешена только администраторам). Через определенные промежутки времени настройки из этих файлов заносятся в реестр (можно также воспользоваться командой gpupdate.exe, после выполнения которой настройки из файлов будут вручную внесены в реестр). Другими словами, если вы настроите ограничения с помощью групповых политик, а потом удалите из реестра параметры ограничений, то через некоторое время они опять будут записаны в реестр. Поэтому для снятия ограничений нужно либо пользоваться оснасткой Редактор объекта групповой политики, либо удалять также и файлы Registry.pol.

    ПРИМЕЧАНИЕ

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

    В книге будет рассказано лишь о локальном применении групповых политик. 

    Запуск консоли gpedit.msc

    После запуска консоли gpedit.msc перед вами отобразится окно, изображенное на рис. 11.8. 

    Рис. 11.8. Окно консоли Групповая политика


    ПРИМЕЧАНИЕ

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

    Дерево консоли этого окна включает в себя два элемента — Конфигурация компьютера и Конфигурация пользователя. Как правило, эти элементы хранят одни и те же вложенные элементы: Конфигурация программ, Конфигурация Windows и Административные шаблоны. При этом если вы воспользуетесь содержимым элемента Конфигурация компьютера, то все изменения, вносимые вами, будут заноситься в корневой раздел реестра HKEY_LOCAL_MACHINE. Если же вы воспользуетесь содержимым элемента Конфигурация пользователя, то все изменения будут заноситься в корневой раздел HKEY_CURRENT_USER.

    Работа с консолью

    Вкратце рассмотрим содержимое элементов Конфигурация компьютера и Конфигурация пользователя.

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

    Элемент предназначен для хранения назначенных или опубликованных администратором программ (технология Software Installation). Если программа назначена, то всегда при запуске компьютера ее ярлык будет создаваться на Рабочем столе, и если она понадобится пользователю, то ему будет достаточно запустить этот ярлык или открыть файл с расширением, ассоциированным с программой, после чего начнется ее установка. Если же программа опубликована, то ссылка на нее будет помещена на вкладку Установка программ диалога Установка и удаление программ. Именно с помощью этой вкладки пользователь сможет установить необходимую программу.

    Технология Software Installation применяется только в том случае, если в сети развернута Active Directory и данный компьютер входит в домен. Иначе элемент Конфигурация программ всегда будет пуст. Тем не менее, ради интереса, существует возможность регистрации этой оснастки как изолированной. Для этого достаточно создать раздел StandAlone в ветвях реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{942A8E4F-A261-11D1-A760-00C04FB9603F} и HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\{BACF5C8A-A3C7-11D1-A760-00C04FB9603F}. После этого в консоль управления Microsoft (mmc.exe) можно будет добавить оснастки Установка программ (пользователи) и Установка программ (компьютеры). В контекстном меню добавленных оснасток присутствует команда Создать►Пакет, после ее выбора вам предложат указать файл с расширением MSI, который будет назначаться или опубликовываться. После указания данного файла консоль управления Microsoft попытается получить к нему доступ по сети, а затем выведет диалог для выбора способа развертывания программы. И в самом конце консоль управления Microsoft попытается обратиться к Active Directory для развертывания программы.

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

    Элемент содержит два вложенных раздела — Сценарии и Параметры безопасности.

    Раздел Сценарии применяется для назначения программ или сценариев, которые будут автоматически запускаться:

    ■ при загрузке (Автозагрузка) и выключении компьютера (Завершение работы), в этом случае сценарии описываются в элементе Конфигурация компьютера и запускаются с правами системы;

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

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

    ■ %systemroot%\System32\GroupPolicy\User\Scripts\Logon — при входе пользователя в систему;

    ■ %systemroot%\System32\GroupPolicy\User\Scripts\Logoff — при выходе пользователя из системы;

    ■ %systemroot%\System32\GroupPolicy\Machine\Scripts\Shutdown — при выключении компьютера;

    ■ %systemroot%\System32\GroupPolicy\Machine\Scripts\Startup — при включении компьютера.

    Но что же происходит при назначении автоматического запуска программ? Как и при назначении групповых политик, при назначении программы редактируется как содержимое реестра, так и содержимое специального файла. Изменяемое содержимое реестра довольно сложно как в понимании, так и при ручном создании назначения файла, поэтому рассмотрено оно не будет. А вот синтаксис специальных файлов довольно прост. Существует два файла для автозагрузки. Оба они называются scripts.ini (это скрытые файлы), но первый из них расположен в каталоге %systemroot%\System32\GroupPolicy\User\Scripts, а второй в каталоге %systemroot%\System32\GroupPolicy\Machine\Scripts. Как можно догадаться, первый файл предназначен для хранения программ, запускаемых при входе пользователя в систему и выходе из нее, а второй файл хранит программы, загружаемые при включении компьютера и завершении его работы. Для примера рассмотрим возможное содержимое файла scripts.ini из каталога %systemroot%\System32\GroupPolicy\User\Scripts.

    Листинг 11.9. Возможное содержимое файла scripts.ini

    [Startup]

    0CmdLine=c: \windows\regedit.exe

    0Parameters=

    1Cmdl_ine=c:\windows\system32\notepad.exe

    1Parameters=

    [Shutdown]

    0CmdLine=D:\recent\Documents and Settings\parad0x\Рабочий стол\1.vbs

    0Parameters=

    Содержимое файла очень просто в понимании и легко для редактирования. Файл может состоять из двух разделов — Startup и Shutdown (для файла из каталога %systemroot%\System32\GroupPolicy\User\Scripts это разделы Logon и Logoff). Эти разделы могут хранить записи в следующем формате:

    «номер программы, начиная с нуля»CmdLine=«путь к программе»

    «номер программы, начиная с нуля»Parameters=«параметры запуска данной программы»
     

    Например, в данном случае при включении компьютера будут запускаться программы regedit.exe и notepad.exe (поскольку программы запускаются до входа пользователя, вы не увидите их окон, их запуск в примере приведен для наглядности), а при завершении работы компьютера будет запускаться специальный сценарий. Вы и сами можете вручную отредактировать содержимое файлов scripts.ini, все внесенные вами изменения будут сразу же учтены.

    Раздел Параметры безопасности элемента Конфигурация компьютера включает в себя разделы Политики учетных записей, Локальные политики, Политики открытого ключа, Политики ограниченного использования программ и Политики безопасности IP на "Локальный компьютер". Для элемента Конфигурация пользователя раздел Параметры безопасности содержит только один вложенный раздел — Политики открытого ключа, с помощью которого можно импортировать в хранилище сертификатов находящиеся на данном компьютере сертификаты. Разделы Политики учетных записей и Локальные политики являются частью оснастки Шаблоны безопасности, поэтому будут рассмотрены в разделе, описывающем данную оснастку.

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

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

    ■ По сертификату, который выдан сценарию или пакету установщика Windows (MSI). Если сценарий имеет корректную подпись сертификата, то его запуск разрешен (или запрещен). При этом следует учитывать, что данный способ нельзя применять к файлам с расширениями EXE и DLL.

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

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

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

    ■ По зоне Интернета, из которой был взят пакет установщика Windows (данный способ ограничения может быть применен только к пакетам установщика Windows). По умолчанию операционная система Windows XP разделяет все пространство сети на четыре зоны: Интернет, Локальный компьютер, Местная интрасеть, Ограниченные узлы и Надежные узлы (вспомните раздел о параметрах реестра для настройки браузера Internet Explorer). На основе того, из какой зоны был взят данный пакет установщика Windows, можно определить, разрешено ли его запускать.

    Если пользователям в сети разрешено запускать не только пакеты установщика Windows, одобренные администратором (способ определения разрешения на запуск по сертификату пакета установщика Windows), то рекомендуется хотя бы настроить ограничения установки пакетов из различных зон Интернета.

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

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

    Итак, как же все теоретические основы, описанные выше, реализуются в консоли Групповая политика? Если сказать честно, то их реализация немного запутанна. Раздел Политика ограниченного использования программ содержит два вложенных раздела (Уровни безопасности и Дополнительные правила), а также три правила: Принудительный, Назначенные типы и Доверенные издатели.

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

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

    ■ Раздел Дополнительные правила. Именно этот элемент и определяет политики на запуск файлов. По умолчанию используются политики разрешения запуска файлов, расположенных в каталогах %systemroot%, %systemroot%\system32 и %programfiles% (способ разрешения запуска файлов по каталогу, в котором они находятся). Это необходимо для того, чтобы операционная система смогла корректно загрузиться, поэтому не рекомендуется запрещать доступ к содержимому этих каталогов.

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

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

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

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

    ПРИМЕЧАНИЕ

    Чтобы отредактировать правило, нужно в его контекстном меню выбрать команду Свойства.

    Теперь рассмотрим ветви реестра, на которые влияют политики ограничения запуска программ. Все настройки политик ограничения запуска программ находятся в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\Safer\CodeIdentifiers. Ветвь содержит следующие параметры. 

    ПРИМЕЧАНИЕ

    Для хранения параметров политик ограничения доступа также используются разделы из ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{GUID-номер объекта групповой политики}Machine\Software\Policies\Microsoft\Windows\Safer\Codeidentifiers. Разделы из этой ветви имеют больший приоритет, поэтому желательно редактировать именно их.

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

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

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

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

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

    Сами же настройки политик ограничения располагаются в одном из разделов ветви системного реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Group Policy Objects\{GUID-номер объекта групповой политики}Machine\Software\Policies\Microsoft\Windows\Safer\CodeIdentifiers (по умолчанию отсутствует). Данная ветвь реестра включает в себя два раздела: 0 и 262144. Раздел 0 хранит стандартные политики по ограничению доступа (точнее, по разрешению) к файлам в каталогах %systemroot%, %systemroot%\system32 и %programfiles%. Раздел 262144 содержит пользовательские политики ограничения запуска файлов. Оба этих раздела могут хранить следующие вложенные подразделы.

    ■ Hashes — содержит политики ограничения доступа к файлам по их хэшу. Для каждой политики по ограничению файла в этом подразделе находится еще два подраздела. Первый из подразделов определяет хэш файла MD 5, а второй — хэш файла по алгоритму SHA-1.

    ■ Paths — хранит политики ограничения доступа к файлам по каталогу, в котором они хранятся.

    ■ UrlZones — содержит политики ограничения доступа к пакетам установщика Windows взятым из определенной зоны Интернета.

    Политика безопасности IP позволяет настроить протокол IPSec для защиты пакетов, передаваемых между компьютерами, на тот или иной уровень безопасности. При этом стоит учитывать, что для работы протокола IPSec необходима служба Службы IPSEC и если эта служба остановлена, то вы не сможете воспользоваться возможностью защиты передаваемых данных с помощью протокола IPSec. По умолчанию доступны только три политики безопасности IP — Клиент (Ответ только), Сервер (Запрос безопасности) и Сервер безопасности (Требуется безопасность). Все эти политики для обеспечения подлинности используют протокол Kerberos, то есть их нельзя применять для компьютеров, не входящих в домен Active Directory (хотя с помощью диалога Свойства метод проверки подлинности можно изменить). Вместо изменения стандартных политик рекомендуется создать свои собственные. Для этого достаточно в контекстном меню раздела Политика безопасности IP на "Локальный компьютер" выбрать команду Создать политику безопасности IP. После этого отобразится окно Мастера политики IP-безопасности, который предложит вам задать имя политики, ее описание, а также указать, будет ли данная политика использоваться по умолчанию для установки соединений с другими компьютерами. Если данная политика не будет использоваться по умолчанию, то мастер закончит свою работу и выведет диалог Свойства созданной вами политики, чтобы вы могли ее настроить. Если же политика будет использоваться по умолчанию, то мастер попросит вас также указать метод проверки подлинности, используемый по умолчанию для установки соединения. Возможны три метода: метод c использованием протокола Kerberos, метод с использованием сертификатов и метод с использованием пароля (общий секрет). После того как вы укажете метод проверки подлинности при установке соединения, мастер закончит свою работу и выведет диалог Свойства созданной вами политики.

    В контексте данной книги диалог Свойства политик безопасности IP рассмотрен не будет, так как для полного и понятного описания настроек этих политик может понадобиться отдельная книга.

    С помощью раздела Настройка Internet Explorer можно настроить интерфейс браузера Internet Explorer, а также параметров его подключения к Интернету. Этот раздел консоли Групповая политика содержит следующие вложенные разделы: Пользовательский интерфейс обозревателя, Подключение, URL-адреса, Безопасность и Программы. Вкратце рассмотрим возможности, которые предоставляют эти разделы.

    Раздел Пользовательский интерфейс обозревателя позволяет настроить такие элементы окна браузера Internet Explorer, как заголовок окна (Заголовок обозревателя), изображения для фона панели инструментов (Настройка панели инструментов), а также логотипы браузера (можно настраивать как статический логотип, так и GIF-файл для отображения динамического логотипа при подключении к сайту) (Эмблемы). 

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

    Раздел Подключение позволяет настроить такие параметры браузера, как строка, добавляемая к строке обозревателя (Строка обозревателя), используемые для подключения к прокси-серверу адреса и порты (для каждого протокола) (Параметры прокси-сервера), а также адрес компьютера, содержащего сценарий для автоматической настройки обозревателя (Автоматическая настройка обозревателя). С помощью данного раздела можно также импортировать настройки, расположенные на вкладке Подключения диалога Свойства обозревателя, в файлы, расположенные в каталоге %systemroot%\system32\GroupPolicy\User\MICROSOFT\IEAK\ BRANDING\cs.

    Раздел URL-адреса позволяет настроить содержимое папок Избранное и Ссылки (Избранное и ссылки), а также задать стандартные адреса Интернета (Важные URL-адреса). Под стандартными адресами понимаются следующие: адрес домашней страницы, адрес панели поиска и адрес страницы поддержки.

    Раздел Безопасность позволяет импортировать настройки зон Интернета и настройки ограничений браузера в INF-файлы (Зоны безопасности и оценка содержимого). Зоны безопасности импортируются в файлы seczones.inf и seczrsop.inf каталога %systemroot%\system32\GroupPolicy\User\MICROSOFT\IEAK\BRANDING\ZONES, а параметры оценки содержимого (Rating) импортируются в INF-файлы ratings.inf и ratrsop.inf, которые расположены в каталоге %systemroot%\system32\GroupPolicy\User\MICROSOFT\IEAK\BRANDING\RATINGS. С помощью этого раздела можно импортировать параметры настройки Authenticode (сертификаты доверенных издателей, а также сертификаты доверенных агентств выдачи сертификатов). Для этого предназначен элемент Параметры Authenticode.

    Раздел Программы позволяет импортировать настройки вкладки Программы, расположенной в диалоговом окне Свойства обозревателя, в файл programs.inf. Этот файл находится в каталоге %systemroot%\system32\GroupPolicy\User\MICROSOFT\IEAK\BRANDING\PROGRAMS.

    Теперь поговорим о том, как выполняется запись в реестр всех настроек, расположенных в разделе Настройка Internet Explorer. По умолчанию все настройки из этого раздела заносятся в файл install.ins, расположенный в каталоге %systemroot%\system32\GroupPolicy\User\MICROSOFT\IEAK. По умолчанию только администраторы могут выполнять запись данных в этот каталог, хотя модифицировать файл install.ins можно от имени любого пользователя. Это обычный текстовый файл с расширением INS, хранящий настройки, которые можно изменить с помощью раздела Настройка Internet Explorer. Данный файл довольно прост в понимании, поэтому не будем останавливаться на описании каждого его раздела, а просто приведем листинг содержимого этого файла (где это было возможно, адреса и названия создаваемых элементов описывают сами создаваемые элементы).

    Листинг 11.10. Содержимое файла install.ins

    [Branding]

    GPVersion=6.00.2900.2180

    NoFavorites=1

    NoLinks=1

    Window_Title_CN=Это заголовок

    Window_Title=Microsoft Internet Explorer предоставлен: Это заголовок

    ToolbarBitmap=E:\images\fotoo\Art_galery\рисунок_для_фона_панели_инструментов.bmp

    UserAgent=строка, добавляемая к строке обозревателя

    [Small_Logo]

    Name=логотип_22х22.BMP

    Path=D:\my_books\логотип_22х22.BMP

    [Big_Logo]

    Name=логотип_38х38.BMP

    Path=D:\my_books\логотип_38х38.BMP

    [Animation]

    Small_Name=анимированный_логотип_22х22.BMP

    Small_Path=D:\my_books\анимированный_логотип_22х22.BMP

    Big_Name=анимированный_логотип_38х38.BMP

    Big_Path=D:\my_books\анимированный_логотип_38х38.BMP

    DoAnimation=1

    [URL]

    Search_Page=http://www.адрес_панели_поиска.com

    AutoConfigTime=5

    AutoDetect=1

    AutoConfig=1

    AutoConfigURL=http://www.адрес_автонастройки_для_INS_файла.ru

    AutoConfigJSURL=http://www.адрес_автонастройки_для_JS_файла_и_других.ru

    Home_Page=http://www.адрес_домашней_страницы.com

    Help_Page=http://www.адрес_страницы_поддержки.com

    [ExtRegInf]

    SecZones=*,seczones.inf,DefaultInstall

    Ratings=*,ratings.inf,DefaultInstall

    Programs=*,programs.inf,DefaultInstall

    connset=connect.inf,DefaultInstall

    [ExtRegInf.Hkcu]

    connset=connect.inf,IeakInstall.Hkcu

    SecZones=seczones.inf,IeakInstall.Hkcu

    Programs=*,programs.inf,IEAKInstall.HKCU

    [Proxy]

    HTTP_Proxy_Server=666.66.66.66:80

    FTP_Proxy_Server=666.66.66.66:80

    Gopher_Proxy_Server=666.66.66.66:80

    Secure_Proxy_Server=666.66.66.66:80

    Socks_Proxy_Server=666.66.66.66:80

    Proxy_Override=<local>

    Use_Same_Proxy=0

    Proxy_Enable=1

    [Security Imports]

    TrustedPublisherLock=0

    ImportSecZones=1

    ImportRatings=1

    [ExtRegInf.Hklm]

    SecZones=seczones.inf,IeakInstall.Hklm

    Ratings=ratings.inf,IEAKInstall.HKLM

    Programs=*,programs.inf,IEAKInstall.HKLM

    [BrowserToolbars]

    Caption0=это создаваемая кнопка на панели инструментов

    Action0=D:\Program files\Filemon.exe

    Icon0=E:\images\samplies.ico

    HotIcon0=E:\images\samplies.ico

    Show0=1

    [ConnectionSettings]

    ConnectName0=Nokia 7270 USB (OTA)

    ConnectSize0=2884

    ConnectName1=Nokia 7270 USB (OTA)

    ConnectSize1=2884

    Option=1

    EnableAutodial=1

    NoNetAutodial=1

    Файл хранит большое количество настроек, а также ссылок на другие INF-файлы, импортированные с помощью раздела Настройка Internet Explorer. Все импортируемые файлы, на которые содержатся ссылки в описываемом файле, экспортируются в реестр при открытии любого элемента раздела Настройка Internet Explorer. При этом же в реестр заносятся все настройки из файла install.ins. Причем самое главное состоит в том, что эти настройки заносятся не консолью управления Microsoft, как можно было бы подумать, а процессом WINLOGON.EXE, запущенным от имени системы. Другими словами, даже если пользователь не обладает правами на изменение указанных в файле install.ins ветвей реестра, они все равно будут изменены.

    ПРИМЕЧАНИЕ

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

    Административные шаблоны

    С помощью административных шаблонов можно более тонко настроить как ограничения на работу отдельных компонентов компьютера, так и сами эти компоненты. Многие считают, что административные шаблоны и являются групповой политикой, хотя это не совсем так. Если учесть, что элементы групповой политики используют для своей реализации ветви системного реестра Windows HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies и HKEY_LOCAL_MACHINE\SOFTWARE\Policies (а также эти ветви из корневого раздела HKEY_CURRENT_USER), то к групповым политикам можно отнести большинство элементов одноименной консоли. Особенностью административных шаблонов является то, что все их настройки берутся из специальных текстовых файлов с расширением ADM. Эти файлы написаны на специальном языке сценариев и расположены в каталоге %systemroot%\system32\GroupPolicy\Adm. Копии этих файлов могут находиться в каталоге %systemroot%\inf (причем, как правило, в этом каталоге находятся дополнительные ADM-файлы, не принимающие участия в построении списка Административные шаблоны). Вкратце рассмотрим назначение всех этих ADM-файлов.

    ■ system.adm — имеет размер около 1824 Кбайт и хранит большую часть настроек конфигурации различных компонентов компьютера. По умолчанию он используется для построения элемента Административные шаблоны.

    ■ wuau.adm — размером около 44 Кбайт и содержит настройки ограничений на работу автоматического обновления Windows. По умолчанию используется для построения элемента Административные шаблоны.

    ■ wuau.adm — имеет размер около 44 Кбайт и хранит настройки ограничений на работу автоматического обновления Windows. По умолчанию он используется для построения элемента Административные шаблоны.

    ■ wmplayer.adm — размером около 69 Кбайт и содержит настройки ограничений на работу Проигрывателя Windows Media. По умолчанию используется для построения элемента Административные шаблоны.

    ■ conf.adm — имеет размер около 42 Кбайт и хранит настройки ограничений на работу программы NetMeeting. По умолчанию он используется для построения элемента Административные шаблоны.

    ■ inetres.adm — размером около 1470 Кбайт и содержит настройки ограничений на работу браузера Internet Explorer. По умолчанию используется для построения элемента Административные шаблоны.

    ■ inetset.adm — имеет размер около 17 Кбайт и хранит дополнительные настройки ограничений на работу браузера Internet Explorer. Он не используется для построения элемента Административные шаблоны. Кроме того, следует учитывать, что использование возможностей данного файла оставляет «татуировки на реестре». Об этом термине будет рассказано чуть позже.

    ■ inetcorp.adm — размером около 7 Кбайт и содержит дополнительные настройки ограничений на работу браузера Internet Explorer. Он не используется для построения элемента Административные шаблоны. Кроме того, следует учитывать, что использование возможностей данного файла оставляет «татуировки на реестре». А главное, надо учесть, что данный файл был написан для более ранних версий операционной системы Windows, чем Windows 2000.

    Обычно, каждое правило административных шаблонов может иметь три состояния.

    ■ Не задан — если правило имеет данное значение, то параметр реестра, используемый этим правилом, удален из реестра. Иными словами, если присвоить правилу данное состояние, то параметр, используемый правилом, будет удален из реестра. Данное состояние корректно обрабатывается стандартными ADM-файлами Windows XP. Если же оно не будет поддерживаться правилами ADM-файла (как это было в Windows NT), то данные правила будут оставлять «татуировки на реестре». Другими словами, установка состояния Не задан не будет приводить к удалению параметра, и этот параметр и дальше будет ограничивать правило.

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

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

    Здесь не будут рассмотрены все существующие правила элемента Административные шаблоны, так как они и так содержат подробное объяснение того, что они делают. Чтобы просмотреть это объяснение, достаточно выбрать правило и перейти на расширенный вид (рис. 11.9) либо в диалоге Свойства конкретного правила (открывается выбором команды Свойства из контекстного меню правила) выбрать вкладку Объяснение. На вкладке Параметры можно узнать версии Windows, для которых применяется данное правило.

    Тем не менее, чтобы иметь общее представление о том, что позволяют сделать административные шаблоны, рассмотрим некоторые из их правил. 

    Рис. 11.9. Описание правила


    Компоненты Windows►Windows Update. Раздел находится в элементе Конфигурация компьютера и строится на основе ADM-файла wuau.adm. Раздел хранит настройки автоматического обновления и использует для своей работы ветвь реестра HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU. Эта ветвь может содержать следующие параметры DWORD-типа.

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

    ■ AUOptions — определяет режим работы автоматического обновления (если значение параметра NoAutoUpdate равно 0). Он может принимать следующие значения:

     • 2 — перед загрузкой обновлений и перед установкой уведомлений система будет выдавать сообщение об этом;

     • 3 — система будет автоматически загружать обновления, но перед их установкой будет уведомлять пользователя (данный режим используется по умолчанию);

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

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

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

    Скачанные обновления будут устанавливаться:

     • 0 — ежедневно (данное значение используется по умолчанию);

     • 1 — каждое воскресенье;

     • 2 — каждый понедельник;

     • 3 — каждый вторник;

     • 4 — каждую среду;

     • 5 — каждый четверг;

     • 6 — каждую пятницу;

     • 7 — каждую субботу.

    ■ ScheduledInstallTime — определяет время, в которое будут устанавливаться все скачанные обновления, если значение параметра AUOptions равно 4.

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

    Компоненты Windows►Проигрыватель Windows Media. Раздел находится в элементе Конфигурация компьютера и строится на основе ADM-файла wmplayer.adm. Раздел содержит настройки конфигурации Проигрывателя Windows Media и использует для работы ветвь реестра HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\WindowsMediaPlayer, которая может хранить следующие параметры.

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

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

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

    Компоненты Windows►Internet Explorer►Панель управления обозревателем. Раздел находится как в элементе Конфигурация компьютера, так и в элементе Конфигурация пользователя, и строится на основе ADM-файла inetres.adm. Раздел содержит настройки конфигурации диалога Свойства обозревателя и использует для работы ветвь реестра HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel (или ветвь из корневого раздела HKEY_LOCAL_MACHINE), которая может хранить следующие параметры DWORD-типа.

    ■ Privacy Settings — если значение равно 1, то будет запрещено изменять настройки параметров на вкладке Конфиденциальность.

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

    ВНИМАНИЕ

    Несмотря на все приведенные выше запреты, диалоговое окно Параметры блокирования всплывающих окон можно будет запустить с помощью команды rundll32.exe inetcpl.cpl, DisplayPopupWindowManagementDialog.

    ■ ConnectionsTab — если значение равно 1, то в диалоге Свойства обозревателя будет скрыта вкладка Подключение.

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

    ■ Autoconfig — если значение равно 1, то флажок Использовать сценарий автоматической настройки в диалоговом окне Настройка локальной сети будет снят, а поле Адрес данного диалогового окна будет неактивно (окно отображается после нажатия кнопки Настройка LAN, расположенной на вкладке Подключения диалога Свойства обозревателя).

    ВНИМАНИЕ

    Несмотря на все приведенные выше запреты, флажок Использовать сценарий автоматической настройки (как и поле Адрес) можно будет установить с помощью команды rundll32.exe INETCFG.dll, InetSetAutoProxyA «URL или IP-адрес компьютера, содержащего сценарий настройки».

    ■ ProgramsTab — при установке значения равным 1 в диалоге Свойства обозревателя будет скрыта вкладка Программы.

    ■ AdvancedTab — если значение равно 1, то в диалоге Свойства обозревателя будет скрыта вкладка Дополнительно.

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

    ■ GeneralTab — если значение равно 1, то в диалоге Свойства обозревателя будет скрыта вкладка Общие.

    ВНИМАНИЕ

    Несмотря на приведенный выше запрет, диалог Языки, который можно было открыть с помощью вкладки Общие, можно будет запустить с помощью команды rundll32.exe inetcpl.cpl, OpenLanguageDialog.

    ■ SecurityTab — при установке значения равным 1 в диалоге Свойства обозревателя будет скрыта вкладка Безопасность.

    ■ SecAddSites — если значение равно 1, то будет запрещено изменение узлов в зонах, отображаемых при нажатии кнопки Узлы на вкладке Безопасность.

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

    ВНИМАНИЕ

    Несмотря на все приведенные выше запреты, диалог Безопасность можно будет запустить с помощью команды rundll32.exe inetcpl.cpl, LaunchSecurityDialogEx.

    ■ ContentTab — если значение равно 1, то в диалоге Свойства обозревателя будет скрыта вкладка Содержание.

    ■ Ratings — при установке значения равным 1 будет запрещено изменять ограничение доступа к страницам Интернета с помощью вкладки Содержание.

    ■ Certificates — если значение равно 1, то кнопки Сертификаты и Издатели на вкладке Содержание будут неактивны.

    ■ CertifPers — при установке значения равным 1 кнопка Сертификаты на вкладке Содержание будет неактивна.

    ■ CertifPub — если значение равно 1, то кнопка Издатели на вкладке Содержание будет неактивна.

    ■ CertifSite — при установке значения равным 1 кнопка Сертификаты на вкладке Содержание будет неактивна.

    ВНИМАНИЕ

    Несмотря на все приведенные выше запреты, диалог Сертификаты (как и диалог Издатели) можно будет запустить с помощью команды rundll32.exe CRYPTUI.dll, CryptUIStartCertMgr или других подобных ей команд, которые были рассмотрены в части 1.

    Несмотря на все приведенные выше запреты, диалог Ограничение доступа можно будет запустить с помощью команды rundll32.exe IEAKENG.dll, ModifyRatings или других подобных ей команд, которые были рассмотрены в части 1. Можно также включить ограничение доступа. Для этого необходимо воспользоваться командой rundll32.exe MSRATING.dll, RatingEnable. 

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

    ПРИМЕЧАНИЕ

    Если же вы все-таки решили использовать возможности скрытия вкладок диалога Свойства обозревателя, то могу предложить интересный способ их быстрой установки. Для этого нужно вызвать команду rundll32.exe IEAKENG.dll, ShowInetcpl. После выполнения этой команды rundll32 сам создаст все приведенные выше параметры и присвоит им значение 1. Затем он попытается открыть диалог Свойства обозревателя, после чего напишет, что открытие данного диалога запрещено администратором. Если нажать одну из кнопок данного диалога, то все созданные параметры ограничений будут удалены, но если просто завершить процесс rundll32 (с помощью Диспетчера задач), то параметры так и останутся установленными в реестре.

    Можно также воспользоваться командой rundll32.exe IEAKENG.dll, ModifyZones для удаления параметров скрытия вкладок Безопасность и Конфиденциальность из корневого раздела HKEY_CLASSES_ROOT. После выполнения данной команды параметры PrivacyTab и SecurityTab будут удалены из реестра, а при закрытии диалога Свойства обозревателя снова созданы. 

    Панель управления. Раздел находится в элементе Конфигурация пользователя и строится на основе ADM-файла system.adm. С его помощью можно запретить запуск Панели управления, а также всех CPL-файлов, установленных на компьютере. При попытке открытия этих файлов система будет писать о том, что это запрещено администратором. Тем не менее в диалоге с помощью команд rundll32 можно обойти данное ограничение на некоторые CPL-файлы. Например, следующие команды открывают апплеты:

    ■ rundll32.exe Access.cpl, DebugMain — апплет Специальные возможности (Access.cpl);

    ■ rundll32.exe firewall.cpl, ShowControlPanel — Брандмауэр Windows (firewall.cpl);

    ■ rundll32.exe joy.cpl, ShowJoyCPL — Игровые устройства (joy.cpl);

    ■ rundll32.exe mmsys.cpl, ShowFullControlPanel — апплет Свойства: Звук и аудиоустройства (mmsys.cpl), который также можно вызвать с помощью команд rundll32.exe mmsys.cpl, ShowDriverSettingsAfterFork и rundll32.exe mmsys.cpl, ShowAudioPropertySheet;

    ■ rundll32.exe netplwiz.dll, UsersRunDll — Учетные записи пользователей;

    ■ rundll32.exe newdev.dll, WindowsUpdateDriverSearchingPolicyUi — несмотря на запрет на доступ к апплету Свойства системы, открывает диалог Подключение к Windows Update;

    ■ rundll32.exe TAPI32.dll, internalConfig — апплет Телефон и модем (telephon.cpl), который можно также вызвать с помощью следующей команды: rundll32.exe TAPI32.dll, LOpenDialAsst;

    ■ rundll32.exe wuaucpl.cpl, ShowAUControlPanel — апплет Автоматическое обновление (wuaucpl.cpl).

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

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

    ■ Панель управления►Установка и удаление программ — здесь содержатся правила, с помощью которых можно скрыть вкладку Замена или удаление программы илисам апплет Установка и удаление программ. Тем не менее удалить программу все еще можно будет с помощью рассмотренной команды rundll32.exe appwiz.cpl, WOW64Uninstall_RunDLL ,,,«подкаталог программы».

    Несмотря на то, что есть запрет скрытия вкладки Добавление и удаление компонентов Windows, с помощью следующей команды: rundll32.exe netshell.dll, HrLaunchNetworkOptionalComponents — можно будет отобразить диалоговое окно Мастер дополнительных сетевых компонентов Windows.

    ■ Система►Управление связью через Интернет►Параметры связи через Интернет — здесь находятся правила, с помощью которых можно запретить отображение Мастера веб-публикаций. Тем не менее данный мастер все равно можно будет вызвать с помощью команды rundll32.exe NETPLWIZ.dll, PublishRunDll (но только для публикации содержимого папки Мои документы).

    ■ Сеть►Сетевые подключения — здесь можно запретить доступ к Мастеру новых подключений. Тем не менее данный мастер все равно можно будет вызвать с помощью команды rundll32.exe netshell.dll, StartNCW.

    ■ Компоненты Windows►Проводник — здесь можно скрыть диалоги подключения и отключения сетевых дисков. Тем не менее вызвать данные диалоги все-таки будет можно. Для этого соответственно применяются команды rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL Connect и rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL Disconnect.

    Рассмотрим два ADM-файла.

    ■ Inetcorp.adm — раньше было сказано, что настройки из данного файла использовались лишь в операционных системах более ранних версий, чем операционная система Windows 2000. Возможно, это не совсем так, поэтому рассмотрим некоторые из параметров реестра, которые изменяются с помощью данного файла. Например, в реестре до сих пор присутствует DWORD-параметр CacheLimit, расположенный в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Cache\Content. Как говорится в оснастке, данный параметр определяет максимальный размер (в килобайтах), резервируемый для временных файлов Интернета (пользовательского кэша). А в ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings содержится параметр строкового типа CodeBaseSearchPath, который, как говорится в файле, хранит путь для поиска документов.

    ■ Inetset.adm — несмотря на то, что данный ADM-файл по умолчанию не загружается в административные шаблоны, параметры ограничений, записанные в нем, поддерживаются операционной системой Windows XP. Единственным минусом файла является то, что он оставляет «татуировки на реестре». Тем не менее в образовательных целях рассмотрим структуру этого ADM-файла. Как правило, по умолчанию данный ADM-файл находится в каталоге %systemroot%\inf, но если там этого файла нет, то его можно взять из установочного диска Windows XP. Он расположен в каталоге I386 диска и называется INETSET.AD_. По умолчанию все файлы операционной системы на установочном диске для экономии места хранятся в сжатом виде, поэтому для распаковки данного файла необходимо воспользоваться командой expand «путь к файлу и его имя» «путь к каталогу, в который файл будет распакован». При этом перед распаковкой рекомендуется скопировать распаковываемый файл в другой каталог. Можно также распаковать несколько файлов, например команда expand i:\i386\*.ad_ d:\ распакует на диск D: все файлы с расширением AD_, расположенные в каталоге i:\i386. После распаковки файла его расширение AD_ нужно заменить расширением ADM.

    Чтобы подключить любой сторонний административный шаблон, необходимо в контекстном меню элемента Административные шаблоны выбрать команду Добавление и удаление шаблонов. После ее вызова перед вами отобразится список уже загруженных ADM-файлов, из которого можно удалить одни файлы (кнопка Удалить) или добавить другие (кнопка Добавить). Для добавления ADM-файла перед запуском консоли Групповая политика также достаточно скопировать ADM-файл в каталог %systemroot%\system32\grouppolicy\Adm — все ADM-файлы из этого каталога загружаются в элемент Административные шаблоны по умолчанию.

    После загрузки файла inetset.adm в элемент Административные шаблоны в нем появятся следующие разделы: Автозаполнение, Отображать параметры, Дополнительные параметры, Кодирование URL. Они расположены в элементе Конфигурация пользователя, а в элементе Конфигурация компьютера расположен только один новый раздел — Обновления компонентов. По умолчанию все они пусты. Это и неудивительно, ведь данные административные шаблоны создавались не для Windows XP и делают «татуировки на реестре», поэтому по умолчанию содержимое данных разделов отфильтровывается. Чтобы отобразить диалоговое окно настройки фильтрации, нужно в контекстном меню элемента Административные шаблоны выбрать команду Вид►Фильтрация. После этого перед вами отобразится диалог, с помощью которого можно запретить отображение правил, не удовлетворяющих какой-либо версии Windows. В данном случае в диалоге нужно снять флажок Показывать только управляемые параметры политики (это нужно делать отдельно для элемента Конфигурация компьютера и отдельно для элемента Конфигурация пользователя). После этого все правила, доступные с помощью файла inetres.adm, отобразятся в описанных выше разделах. Здесь не будут рассмотрены названия этих правил — рассмотрим только параметры реестра, которые изменяются этими правилами.

    ■ HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AutoComplete — хранит настройки автозаполнения и может содержать следующие параметры строкового типа.

     • Append Completion — если значение равно по, то возможность автозаполнения для веб-адресов будет отключена. Если же значение равно yes, то включена.

     • Use AutoComplete — при установке значения равным по возможность автозаполнения в Проводнике Windows будет запрещена. Если же значение равно yes, то разрешена.

     • AutoSuggest — если значение равно по, то возможность автозаполнения для адресов Сети будет запрещена. Если же значение равно yes, то разрешена.

    ■ HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main — содержит основные настройки браузера Internet Explorer. Файл inetset.adm позволяет редактировать значения следующих параметров: Use FormSuggest, FormSuggest Passwords, FormSuggest PW Ask, отвечающих за возможности использования автозаполнения форм. За более детальной информацией обращайтесь к базе данных по реестру, поставляемой вместе с книгой.

    Но, кроме этих параметров, данный файл определяет и другие.

     • Use_DlgBox_Colors — если значение равно yes, то при отображении сайтов будут использоваться цвета Windows.

     • Disable Script Debugger — при установке значения равным yes браузер не будет разрешать отладку сценария при ошибке в нем.

     • Error Dlg Displayed On Every Error — если значение равно yes, то браузер будет отображать сообщение об ошибке при каждой ошибке сценария.

    ■ HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Security\P3Global — если данная ветвь реестра будет содержать DWORD-параметр Enabled, равный 1, то редактор профиля будет задействован.

    ■ HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings — хранит следующие рассматриваемые в файле параметры DWORD-типа.

     • WarnOnPostRedirect — если значение равно 1, то при перенаправлении передаваемой пользователем формы браузер будет предупреждать пользователя.

     • WarnOnZoneCrossing — при установке значения равным 1 браузер будет предупреждать пользователя о переключении зоны безопасности.

     • UrlEncoding — если значение равно 1, то будет задействована возможность посылки адресов в формате UTF8.

    ■ HKEY_CURRENT_USER\Software\Microsoft\Java VM — хранит настройки консоли Java (помните рассмотренный ранее параметр EnableJavaConsole?). С помощью данного файла можно отредактировать следующие параметры BINARY-типа.

     • EnableLogging — если значение равно 1, то возможность протоколирования виртуальной машины Java от Microsoft будет включена.

     • EnableJIT — при установке значения равным 1 будет включен компилятор Microsoft Virtual Machine JIT.

    ■ HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\SearchUrl — если значение параметра строкового типа provider из данной ветви реестра равно INTRANET, то будет использоваться внутренний сервер автопоиска (о настройке возможности автопоиска уже было сказано в разде ле о параметрах реестра, предназначенных для настройки браузера Internet Explorer).

    ПРИМЕЧАНИЕ

    Описываемый ADM-файл содержит и другие настройки. Эти настройки не были рассмотрены по той причине, что их можно установить и с помощью стандартных диалогов браузера.

    На этом будет закончено рассмотрение групповых политик в целом и административных шаблонов в частности. Тем не менее хотелось бы напомнить, что те параметры административных шаблонов, которые были рассмотрены, являются лишь каплей в море возможностей настройки компонентов Windows XP, предоставляемых административными шаблонами. Просто представьте, сколько сотен параметров описано только в двух единственных ADM-файлах system.adm и inetres.adm, если учесть, что они имеют размеры по 1500 Кбайт каждый. 

    Результирующая политика

    Результирующая политика — это новый механизм Windows XP, позволяющий просмотреть общие настройки групповой политики для конкретного пользователя или конкретного компьютера. На данный момент групповые политики содержат около 1000 различных параметров реестра, которые могут перекрывать действия друг друга. Но это не главное. Наиболее сильно проблема усугубляется в домене Active Directory. Стоит лишь вспомнить, что групповые политики для компьютеров, входящих в домен Active Directory, могут определяться сразу на трех уровнях (на уровне локального компьютера, на уровне домена и на уровне организационной единицы), как сразу становится понятно, что порой разобраться в действительных настройках групповой политики для отдельного пользователя бывает довольно сложно. Именно для облегчения работы с подобными групповыми политиками и была разработана оснастка Результирующая политика. Она собирает настройки групповых политик конкретного пользователя сразу на всех трех уровнях Active Directory и выводит общую групповую политику, отображая при этом проблемные правила политики (которые конфликтуют на уровне реестра с другими правилами политики).

    При этом в процессе поиска активных групповых политик оснастка использует базу данных WMI. Для получения сведений об ADM-файлах оснастка подключается даже к локальному компьютеру с использованием его сетевого имени (через стандартную скрытую общедоступную папку admin$). Оснастка Результирующая политика имеет GUID-номер {6DC3804B-7212-458D-ADB0-9A07E2AE1FA2}.

    Оснастка Результирующая политика входит в стандартную консоль Windows XP gpedit.msc. В процессе запуска этой консоли (а также в процессе ее работы) для протоколирования ошибок используются файлы из каталога %systemroot%\Debug\UserMode, а также идет просмотр ветви реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon. Для работы оснастки Результирующая политика используются следующие параметры DWORD-типа.

    ■ RSoPLogging — определяет, будет ли выполняться протоколирование результирующих политик на данном компьютере. Если значение данного параметра равно 0, то протоколирование результирующей политики будет отключено. По умолчанию значение равно 1. Параметр может также находиться в ветви HKEY_LOCAL_NACHINE\Software\Policies\Microsoft\Windows\System.

    ■ GroupPolicyMinTransferRate — определяет порог скорости подключения к компьютеру при использовании результирующих политик или обновлении групповых политик, преодоление которого будет говорить консоли управления Microsoft, что используется медленное подключение. По умолчанию значение данного параметра равно 500. Другими словами, если реальная скорость подключения к компьютеру будет меньше 500 Кбайт/с, то оно будет считаться медленным. Если значение данного параметра равно 0, то все подключения будут считаться быстрыми. Параметр может принимать значения от 0 до 0xFFFFFFA0. Параметр может также находиться в ветви реестра HKEY_LOCAL_NACHINE\SOFTWARE\Policies\Microsoft\Windows\System (а также в ветви корневого раздела HKEY_CURRENT_USER). По умолчанию параметры не существуют.

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

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

    ПРИМЕЧАНИЕ

    В диалоге Свойства можно также определить уровень, к которому принадлежит данное правило. Для этого предназначена вкладка Приоритет. 

    Шаблоны безопасности

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

    ПРИМЕЧАНИЕ

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

    Оснастка Шаблоны безопасности не входит ни в одну стандартную консоль, поэтому для получения доступа к ней необходимо воспользоваться консолью управления Microsoft mmc.exe. Оснастка Шаблоны безопасности имеет GUID-номер {5ADF5BF6-E452-11D1-945A-00C04FB984F9}, поэтому если оснастка с таким номером будет запрещена с помощью групповых политик, то вы не сможете запустить Шаблоны безопасности (она просто исчезнет из списка доступных для открытия оснасток).

    После открытия оснастки перед вами отобразится окно, подобное приведенному на рис. 11.10. 

    Рис. 11.10. Окно оснастки Шаблоны безопасности


    Оснастка Шаблоны безопасности по умолчанию содержит раздел C: \WINDOWS\security\templates. Этот раздел, в свою очередь, включает в себя набор стандартных шаблонов безопасности. Все отображаемые в оснастке шаблоны безопасности находятся в каталоге файловой системы C:\WINDOWS\security\templates. При этом стоит сказать, что каталог, из которого берутся шаблоны безопасности, не статичен. Другими словами, путь к каталогу можно изменить с помощью реестра (соответственно изменится и название раздела элемента Шаблоны безопасности). Для изменения пути к каталогу шаблонов безопасности необходимо изменить название раздела C:/WINDOWS/security/templates из ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\ SecEdit\Template Locations.

    ПРИМЕЧАНИЕ

    Вы можете создать и свой собственный раздел в ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\SecEdit\Template Locations. Созданный вами раздел будет отображаться в оснастке наряду со стандартным разделом. Чтобы создать новый раздел с помощью механизмов оснастки, нужно выбрать в меню Действие команду Новый путь для поиска шаблонов.

    Раздел C:/WINDOWS/security/templates ветви реестра HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\SecEdit\Template Locations может хранить параметр строкового типа Description, определяющий описание содержимого каталога. Это описание отображается в столбце Описание правой панели оснастки. 

    Все шаблоны безопасности, отображенные в оснастке, изменяют одни и те же параметры файловой системы и реестра (просто каждый шаблон устанавливает свои собственные значения этих параметров), поэтому сначала будут подробно рассмотрены изменяемые шаблонами параметры, а потом отличия в значениях этих параметров для разных шаблонов безопасности. Для рассмотрения параметров воспользуемся шаблоном безопасности Setup security. Он используется сразу после установки операционной системы Windows XP для настройки доступа к файловой системе компьютера и ветвям реестра по умолчанию.

    ПРИМЕЧАНИЕ

    Шаблоны безопасности являются обычными файлами с расширением INF, расположенными в каталоге C:/WINDOWS/security/templates (по умолчанию). При этом название INF-файла используется в оснастке Шаблоны безопасности как название шаблона. Другими словами, шаблон Setup security является INF-файлом с именем Setup security.inf.

    Содержимое шаблонов безопасности

    Все шаблоны безопасности содержат следующие разделы: Политики учетных записей, Локальные политики, Журнал событий, Группы с ограниченным доступом, Системные службы, Реестр и Файловая система. Вкратце рассмотрим каждый из этих разделов.

    Политики учетных записей

    Раздел Политики учетных записей по умолчанию содержит три политики. Это Политика блокировки учетной записи, Политика паролей и Политика Kerberos.

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

    ПРИМЕЧАНИЕ

    Скорее всего, все приведенные ниже правила хранятся в ветви системного реестра HKEY_LOCAL_MACHINE\SECURITY.

     • Максимальный срок действия пароля — указывает количество дней, в течение которого будут действовать пароли пользователей. По истечении указанного срока пользователи должны сменить пароль. Для шаблона безопасности Setup security это правило равно 42 дням.

     • Минимальная длина пароля — определяет, из какого количества символов должен состоять (как минимум) создаваемый пароль, чтобы система раз

    решила его использование. Для шаблона безопасности Setup security это правило равно 0.

     • Минимальный срок действия пароля — указывает количество дней, которое должно истечь, чтобы пользователь смог сменить пароль. Если указанное количество дней не истекло, то пользователю будет запрещено изменять пароль. Значение данной политики должно быть меньше значения политики Максимальный срок действия пароля. Для шаблона безопасности Setup security это правило равно 0.

     • Пароль должен отвечать требованиям сложности — если данное правило установлено, то система не разрешит создание паролей, состоящих только из цифр или только из букв. При использовании данного правила все пароли должны содержать не меньше шести символов, находящихся в разных регистрах, а также не принадлежащих к алфавитно-цифровой клавиатуре (например, символы «&», «$», «!»). Для шаблона безопасности Setup security это правило отключено.

     • Требовать неповторяемости паролей — значение данного правила определяет количество паролей, которые должны быть добавлены в базу данных SAM (содержит хэши паролей всех учетных записей пользователей), после чего система разрешит в качестве пароля задать уже использовавшийся ранее пароль. Для шаблона безопасности Setup security это правило равно 0 паролей.

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

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

     • Блокировка учетной записи на — определяет количество минут, на которое будет выполняться блокировка учетной записи после нескольких попыток неудачного ввода пароля. Значение может находиться в диапазоне от 1 до 99999 (если значение равно 0, то учетная запись будет заблокирована до тех пор, пока администратор компьютера ее не разблокирует самостоятельно). Для шаблона безопасности Setup security это правило не определено.

     • Пороговое значение блокировки — указывает количество попыток неверного ввода пароля, после которых учетная запись будет заблокирована. Возможные значения лежат в пределах от 0 до 999. Для шаблона безопасности Setup security это 0 ошибок.

     • Сброс счетчика блокировки через — определяет количество минут, по истечении которых счетчик неверных попыток ввода пароля будет обнулен. Значение может находиться в пределах от 1 до 99999. Для шаблона безопасности Setup security это правило не определено.

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

    Локальные политики

    Раздел Локальные политики содержит три политики: Политика аудита, Назначение прав пользователя и Параметры безопасности.

    ■ Политика аудита — позволяет определить события, факты происхождения которых будут записываться в журнал Безопасность оснастки Просмотр событий. Можно указать запись в журнал Безопасность сведений об успешных или неудачных попытках выполнения следующих операций: вход в систему, доступ к объектам, имеющим собственный SACL (например, к принтерам, файлам, папкам), доступ к каталогам Active Directory и других. Для шаблона безопасности Setup security все события аудита, кроме аудита доступа к службе каталога (этот аудит не определен), отключены.

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

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

     • Очистка файла подкачки pagefile.sys при завершении работы компьютера. Для шаблона Setup security данное правило отключено.

     • Сообщение, отображаемое перед входом пользователя в систему. Для шаблона Setup security данное правило не определено.

     • Посылать незашифрованный пароль сторонним SMB-серверам. Для шаблона Setup security данное правило отключено.

     • Запретить изменение паролей учетных записей пользователей. Для шаблона Setup security данное правило не определено.

     • Пути в реестре, доступные через удаленное подключение. Для шаблона Setup security данное правило не определено.

     • Разрешить анонимный доступ к общим ресурсам. Для шаблона Setup security данное правило не определено.

     • Отключение или переименование учетных записей администратора и гостя. Для шаблона Setup security эти правила не определены (кроме отключения учетной записи гостя, по умолчанию эта запись отключена).

    При этом большинство правил списка Параметры безопасности хранятся в реестре (то есть вы и сами можете добавить к данному списку свои правила изменения параметров реестра, чтобы изменять их с помощью шаблона безопасности). Для этого предназначена ветвь реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SeCEdit\Reg Values. Она содержит разделы, названия которых соответствуют пути к изменяемому правилом параметру реестра (данный путь должен начинаться не с корневого раздела ветви, а с класса, в котором хранится объект операционной системы (операционная система Windows XP является объектно-ориентированной), например класс Machine определяет корневой раздел HKEY_LOCAL_MACHINE). Эти разделы хранят следующие параметры.

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

    ■ DisplayName — параметр строкового типа, определяет название правила, отображаемое в списке политики Параметры безопасности.

    ■ DisplayType — этот параметр DWORD-типа определяет способ указания состояния правила. Параметр может принимать следующие значения:

     • 1 — отобразить счетчик для указания состояния правила;

     • 2 — поле для ввода значения;

     • 3 — раскрывающийся список (для выбора возможного состояния из списка);

     • 4 — список для выбора состояния;

     • 6 — два флажка, с помощью которых можно включить или отключить правило.

    ■ ValueType — этот параметр DWORD-типа определяет тип изменяемого данным правилом параметра реестра. Возможные значения:

     • 1 — строковый тип параметра;

     • 3 — тип параметра REG_BINARY;

     • 4 — тип параметра REG_DWORD;

     • 7 — тип параметра REG_MULTI_SZ.

    На рис. 11.11 можно видеть пример описания правила в реестре. 

    Рис. 11.11. Хранение правил политики Параметры безопасности

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

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

    Группы с ограниченным доступом

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

    Системные службы

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

    Реестр

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

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

    С помощью этого раздела можно указать права доступа к различным каталогам файловой системы Windows XP. Чтобы указать права доступа к каталогу, необходимо сначала добавить в раздел Файловая система путь к каталогу. Для этого необходимо в контекстном меню раздела выбрать команду Добавить файл. После этого консоль управления Microsoft предложит вам указать права для доступа к данному каталогу или файлу, а затем определить, будут ли указанные вами права распространяться на все вложенные в каталог папки.

    Стандартные шаблоны безопасности

    Теперь рассмотрим другие стандартные шаблоны безопасности и их отличие от шаблона по умолчанию.

    Compatws.inf

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

    Хотя в некоторых случаях без применения группы Опытные пользователи обойтись нельзя. В частности, когда пользователи компьютера должны иметь права на установку программ, не сертифицированных для Microsoft. Такие программы используют для своей установки ветви реестра и каталоги файловой системы, доступ к которым закрыт для обычных пользователей. Если необходимо, чтобы пользователи могли устанавливать такие программы, то желательно применять шаблон безопасности Compatws, а не группу Опытные пользователи. Данный шаблон разрабатывался для предоставления группе Пользователи специальных прав, которых достаточно для установки большинства программ. При этом другие права, доступные группе Опытные пользователи, группе Пользователи не передаются, то есть в остальном группа Пользователи остается ограниченной. При установке шаблона Compatws все члены группы Опытные пользователи удаляются из нее, и ей предоставляются следующие права на каталоги файловой системы.

    ■ %programfiles% — чтение/запись/чтение и выполнение/список содержимого файлов/изменение.

    ■ %systemroot%\downloaded program files — чтение/запись/чтение и выполнение/список содержимого файлов/изменение.

    ■ %systemroot%\temp — чтение/запись/чтение и выполнение/список содержимого файлов/изменение.

    ■ %systemroot%\sysvol — права не определены ни для одной из групп.

    Шаблон безопасности Compatws также изменяет права на ветви реестра из корневого раздела HKEY_CLASSES_ROOT. Но в данном случае скорее происходит не повышение прав группы Пользователи на содержимое данной ветви, а понижение прав группы Опытные пользователи, чтобы они не могли выполнять запись в данный корневой раздел реестра.

    Securews.inf

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

    ■ Минимальная длина пароля 8 символов.

    ■ Минимальный срок действия пароля 2 дня.

    ■ Пароль должен отвечать требованиям безопасности.

    ■ Требование неповторяемости 24 последних паролей.

    ■ Блокировка учетной записи на 30 минут.

    ■ Пороговое значение ошибок ввода пароля равно 5.

    ■ Сброс счетчика блокировки через 30 минут.

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

    ■ Изменений в доступе к реестру и файловой системе нет. Изменения в параметрах безопасности не рассматриваются, хотя если кратко, то они в основном заключаются в отказе от протоколов аутентификации LM и NTLM.

    Hisecws.inf

    Данный шаблон определяет повышенный уровень безопасности рабочей станции. Как и предыдущие два шаблона, он имеет своего двойника, предназначенного для настройки повышенного уровня безопасности контроллера домена (Hisecdc). Основные отличия шаблона Hisecws от шаблона securewc заключаются в следующем.

    ■ Блокировка учетной записи на 0 минут (то есть до ее явной разблокировки администратором).

    ■ Аудит всех событий безопасности, кроме событий отслеживания процессов (отключен) и событий доступа к службе каталогов Active Directory (не определен).

    ■ Изменений в доступе к реестру и файловой системе нет. Изменения параметров безопасности в основном заключаются в требовании подписывания передаваемых по сети данных.

    Rootsec.inf

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

    Notssid.inf

    Данный шаблон безопасности предназначен лишь для исключения доступа учетной записи Terminal Server к файловой системе и реестру Windows XP. Если сервер терминалов не используется, то можно применить данный шаблон безопасности для исключения SID сервера терминалов из прав доступа к объектам системы, хотя, как подчеркивает Microsoft, присутствие SID сервера терминалов никоим образом не влияет на безопасность компьютеров.

    Создание и импортирование шаблона безопасности

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

    Создание шаблона безопасности

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

    Например, чтобы быстро создать шаблон на основе шаблона Securews, но с настройками файловой системы из шаблона Rootsec, необходимо сначала создать шаблон на основе шаблона Securews (команда Сохранить как), а после этого скопировать раздел Rootsec►Файловая система в раздел Файловая система созданного вами шаблона. После этого можно самостоятельно отредактировать состояние отдельных правил политик созданного вами шаблона.

    ПРИМЕЧАНИЕ

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

    Импортирование шаблона безопасности

    Шаблон безопасности создан. Но что теперь с ним делать? Для ответа на данный вопрос можно воспользоваться либо оснасткой Групповая политика, либо оснасткой Анализ и настройка безопасности. Можно также воспользоваться командой командной строки secedit.exe.

    ■ Групповая политика — когда рассматривалась оснастка Групповая политика, были пропущены такие ее разделы, как Политики учетных записей и Локальные политики. Теперь вы знаете, что хранится в этих разделах, а также умеете создавать свои собственные шаблоны. Если вы уже создали свой шаблон с изменениями состояния правил данных разделов, то существует возможность его импортирования в групповую политику, чтобы настройки из шаблона применялись вместе с настройками групповой политики. Для этого необходимо в контекстном меню элемента Параметры безопасности консоли Групповая политика выбрать команду Импорт политики. После этого консоль управления Microsoft попросит указать путь к шаблону безопасности и использует его содержимое для настройки разделов Политики учетных записей и Локальные политики. При этом остальные настройки шаблона безопасности применяться не будут.

    ■ Анализ и настройка безопасности — с помощью данной оснастки можно не только применить к компьютеру любой созданный шаблон (в отличие от Групповой политики оснастка использует все содержимое шаблона, а не только настройки разделов Политики учетных записей и Локальные политики), но и проанализировать текущие настройки компьютера с настройками из шаблона безопасности. Оснастка Анализ и настройка безопасности имеет GUID-номер {011BE22D-E453-11D1-945A-00C04FB984F9}. После ее добавления к консоли управления Microsoft в дереве консоли отобразится единственный элемент — Анализ и настройка безопасности. Если вы раньше никогда не использовали данную оснастку, то перед началом работы с ней необходимо создать базу данных текущих настроек безопасности компьютера. Для этого в контекстном меню оснастки необходимо выбрать команду Открыть базы данных и в отобразившемся диалоге ввести имя новой базы данных. После этого консоль управления Microsoft предложит указать имя шаблона безопасности, настройки которого будут импортированы в созданную базу данных (если вы используете уже существующую базу, то можно очистить ее содержимое перед импортом настроек шаблона безопасности).

    ПРИМЕЧАНИЕ

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

     После создания или открытия базы данных настроек шаблона в контекстном меню оснастки станут доступными команды Анализ компьютера и Настроить компьютер. 

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

    Рис. 11.12. Анализ текущей настройки безопасности компьютера


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

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








    Главная | В избранное | Наш E-MAIL | Прислать материал | Нашёл ошибку | Наверх