Читаем без скачивания Недокументированные и малоизвестные возможности Windows XP - Роман Клименко
Шрифт:
Интервал:
Закладка:
Хранение параметров настройки консоли
Стоит еще сказать о хранении настроек консоли. Если вы думаете, что настройки консоли хранятся в реестре, то это не так. На самом деле все настройки консолей содержатся в самих файлах консолей. Это легко понять на примере консоли, открытой в редакторе, подобном Блокноту. Это довольно важная особенность работы консоли, понимание которой очень важно для правильного ее использования.
Рассмотрим простой пример. Допустим, есть консоль, содержимое которой было скрыто с помощью диалога Параметры (рис. 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_MACHINESOFTWAREMicrosoftMMCSnapIns. Она хранит ссылки на все GUID-номера оснасток, доступных на компьютере. Именно список оснасток из этой ветви и будет отображаться в появившемся после нажатия кнопки Добавить диалоговом окне. Иными словами, если удалить из данной ветви GUID-номер оснастки, то ее нельзя будет открыть с помощью данного списка, хотя оснастка по-прежнему будет работать в уже готовых консолях. Но для удаления оснастки из списка можно поступить проще — дело в том, что все оснастки, которые будут отображаться в списке Добавить изолированную оснастку, должны содержать в своей ветви вложенный раздел StandAlone. Если его удалить, то оснастка не будет отображаться в списке Добавить изолированную оснастку. Можно же, наоборот, добавить этот раздел к одной из ветвей, в которой его не существует. Например, если добавить его к разделу {243E20B0-48ED-11D2-97DA-00A024D77700}, то появится возможность включать в консоль оснастку Модуль расширения съемных носителей. А если добавить его к разделу {BACF5C8A-A3C7-11D1-A760-00C04FB9603F}, то появится возможность добавления к консоли оснастки Установка программ (пользователи). Можно также добавить оснастку Установка программ (Компьютеры). Для этого необходимо воспользоваться разделом {942A8E4F-A261-11D1-A760-00C04FB9603F}. Две предыдущие возможности понадобятся в следующих главах книги, ведь по умолчанию никаким другим способом нельзя получить доступ к оснасткам Установка программ (пользователи) и Установка программ (Компьютеры), если компьютер не находится в домене.
С помощью данной ветви можно также изменить название оснастки, отображаемое в списке оснасток, — оно хранится в параметре, имеющем строковый тип NameStringIndirect ветви HKEY_LOCAL_MACHINESOFTWAREMicrosoft MMCSnapIns{GUID-номер оснастки}. Например, чтобы изменить название оснастки Диспетчер устройств на Описание установленного на компьютере оборудования, необходимо присвоить новое название оснастки параметру NameStringIndirect ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftMMCSnapIns{74246bfc-4c96-11d0-abef-0020af6b0b7a} (рис. 9.10).
Рис. 9.10. Изменение названия оснастки Диспетчер задач
ПРИМЕЧАНИЕ
Существует еще один трюк, который можно выполнить с помощью ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftMMCSnaplns{GUID-номер оснастки}. Это запрет отображения диалога Добавить/удалить оснастку. Для этого достаточно изменить название одной из ветвей реестра {GUID-номер оснастки} на название {{GUID-номер оснастки}. Например, если изменить название уже рассмотренного раздела {74246bfc4c96-11d0-abef-0020af6b0b7a} на {{74246bfc4c96-11d0-abef-0020af6b0b7a}, то при выборе команды Добавить или удалить оснастку из меню Консоль ничего происходить не будет.
Для примера попробуем добавить в консоль оснастку Редактор объекта групповой политики. Для этого необходимо выделить в списке эту оснастку, нажать кнопку Добавить, после чего появится окно Выбор объекта групповой политики, в котором нужно нажать кнопку Готово. Далее нужно нажать кнопку Закрыть в окне Добавить изолированную оснастку, чтобы закрыть список оснасток. В диалоге Добавить/удалить оснастку появилась добавленная оснастка. В этом окне нужно нажать кнопку OK. Теперь предлагаю посмотреть на рис. 9.11. Слева на этом рисунке отображена консоль в расширенном виде. Этот вид стал доступен в Windows XP и отличается от обычного тем, что слева появилась панель описания элемента оснастки. Очень часто эта панель мешает просмотру оснастки, поэтому приходится переходить к обычному виду (по умолчанию оснастка загружается в расширенном виде). Справа же на рисунке отображена та же оснастка, но в обычном виде — при этом возможность расширенного вида была удалена. Чтобы удалить возможность расширенного вида, необходимо удалить из ветви реестра HKEY_LOCAL_MACHINESOFTWAREMicrosoftMMCSnapIns раздел {B708457E-DB61-4C55-A92F-0D4B5E9B1224}.