Компьютерщик на все руки: Любопытство, нарушающее работу приложений

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

Грэг Шилдс

«Бесплатные инструменты». Эта фраза привлекает внимание. Скорее всего, как и большинство ИТ-специалистов, вы постоянно находитесь в поиске бесплатных решений для облегчения работы, что дает возможность сохранить с трудом добытые бюджетные средства для других проектов.

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

Возьмем к примеру групповые политики (Group Policy) и, их последнюю разновидность, предпочтения групповых политик (Group Policy Preferences). Вполне возможно, что самые мощные инструменты уже в вашем распоряжении. Появившись вместе с Active Directorfy почти 12 лет назад, за прошедшее время групповые политики на удивление мало изменились. Затем вместе с Windows Server 2008 появились предпочтения групповых политик, с помощью которых возможности пользователей могут меняться в более широких пределах.

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

Шаблоны групповых политик

Управление конфигурациями приложений является практически универсальным требованием. Приложения, подобные Microsoft Office и WinZip, нередко являются частью стандартной сборки новых компьютеров. Обычно в начале работы их производительность высока, но со временем падает. Параметры меняются и работа этих приложений ухудшается, что однозначно требует уделить им внимание. Зачастую именно любопытные пользователи являются источником проблем. Они меняют параметры, которые им никогда не следовало бы трогать, и выбирают совершенно неправильные значения важных параметров. Именно такая любознательность «убивает» приложения.

Так если с помощью групповых политик и предпочтений групповых политик можно взять под контроль «практически всю» инфраструктуру приложений, то почему бы не пользоваться ими? Кое-кто считает, что усилия обойдутся дороже, чем полученный результат. Если и вы так считаете, посетите Microsoft Download Center, и вы удивитесь, сколько рычагов управления у такого популярного приложения, как Office 2010.

Приложив совсем немного усилий, с помощью административных шаблонов можно добавить новые параметры конфигурации групповых политик практически всех параметров Office 2010. А их около 4000.

Итак, начнем. Создадим центральное хранилище групповых политик (Group Policy Central Store), целиком скопировав папку C:\Windows\PolicyDefinitions с сервера под управлением Windows Server 2008 R2 SP1 (так мы получим самые свежие политики) в папку \\<имя_домена>\SYSVOL\<имя_домена>\Policies. На рис. 1 показан путь моего тестового домена.

Создание центрального хранилища групповых политик

Рис. 1. Создание центрального хранилища групповых политик

Далее распакуйте загруженные шаблоны Office 2010 и скопируйте ADMX-файлы из подпапки ADMX в новую папку определений политики. Теперь скопируем файлы соответствующего языка в аналогичную папку в домене.

Скопировав файлы, откройте консоль управления групповыми политиками (Group Policy Management Console ), создайте и отредактируйте новый объект групповых политик (GPO). Вы должны увидеть длинный список конфигураций Office 2010, которыми теперь можно управлять (рис. 2). Хороший способ застраховаться от излишне любознательных пользователей.

Параметры групповых политик в Office 2010

Рис. 2. Параметры групповых политик в Office 2010

Вы можете заметить некоторые параметры в разделе «Конфигурация компьютера» (Computer Configuration), которые применяются ко всем пользователям компьютера. Это параметры раздела HKEY_LOCAL_COMPUTER реестра. Другие параметры применяются к отдельным пользователям. Они находятся в ветке «Конфигурация пользователя» (User Configuration), что подразумевает изменение параметров раздела HKEY_CURRENT_USER в реестре.

Важно понимать различие между ними, поскольку от этого зависит, как Windows применяет групповые политики. Помните, что часть GPO, которая относится к разделу Computer Configuration, применяется только к компьютеру, когда GPO привязан к подразделению (OU), в котором находится компьютер. То же самое относится и к пользователям. Раздел User Configurаtion объекта GPO применяется, только когда GPO привязан к подразделению, в котором находится пользователь.

Этот момент вызывает затруднение у ИТ-специалистов, не очень хорошо знакомых с групповыми политиками. Нередко подразделения создаются для неверных целей. В них пользователи или компьютеры могут объединяться по отделам или функциональному назначению. В Active Directory подразделение служит для двух целей — для делегирования администрирования и применения групповых политик. Во многих компаниях не пользуются делегированием, поэтому подразделение пользователей и компьютеров по иным признакам, нежели правила групповых политик, обычно создает больше проблем, чем приносит пользы.

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

Некоторые приложения имеют собственные шаблоны администрирования. Загрузив приложение вместе с шаблонами, можно сразу же пользоваться огромным набором доступных для управления конфигураций. Так обычно и делают в Microsoft. Однако суровая реальность в том, что прочие разработчики не всегда так предусмотрительны. Они нечасто предоставляют ADM- или ADMX-файл для управления своими приложениями. Управление приложениями без таких файлов создает больше сложностей.

Это делается в два этапа. Сначала надо выяснить, что на самом деле происходит на компьютере при настройке приложения. Часто выполняется изменение реестра. Как говорилось ранее, пользовательские параметры, обычно хранимые в HKEY_CURRENT_USER, чаще всего располагаются в подразделе Software. Машинные параметры хранятся в ветке HKEY_LOCAL_MACHINE, обычно также в подразделе Software.

Чтобы разобраться в происходящем, далее нужна определенная детективная работа. Для примера возьмем WinZip — приложение, имеющееся на многих компьютерах под управлением Windows. Текущая версия WinZip — 15.5. Она поддерживает два вида пользовательского интерфейса: «традиционный» интерфейс, не меняющийся много версий, и второй, более новый интерфейс с лентой в стиле Office 2010.

Тот, кто уже пользуется Office 2010, знаком с его «ленточным» интерфейсом и ожидает аналогичный интерфейс в WinZip. Если вы еще не перешли на новую версию Office 2010, то лента в WinZip может несколько обескуражить и вы выберете прежний интерфейс.

В нижней части окна WinZip выбрав в меню Option/Configuration (рис. 3), можно увидеть выбранный интерфейс — Legacy menus/toolbar или WinZip Ribbon interface

Панель управления WinZip

Рис. 3. Панель управления WinZip

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

Немного покопавшись, увидим, что эти параметры у разных пользователей на данном компьютере могут отличаться. Поэтому они хранятся в ветке HKEY_CURRENT_USER. Исследовав ее, мы найдем узел \Software\NicoMak Computing\WinZip\WinZip. Здесь мы видим группу значений, определяющих поведение WinZip, в том числе значение REG_SZ (или строковое значение) с именем OfficeRibbon (рис. 4).

Параметра OfficeRibbon в WinZip

Рис. 4. Параметра OfficeRibbon в WinZip

Разные программы по-разному хранят и используют параметры в реестре. Обычно «1» означает «да», а «0» - «нет». Изменим значение показанного на рис. 4 параметра OfficeRibbon с 1 на 0 и перезапустим WinZip. Интерфейс программы вернется к классическому виду.

Пойдем дальше и вернемся в окно настройки, показанное на рис. 3. Изменим положение переключателя и щелкнем кнопку ОК, после чего обновим редактор реестра, нажав клавишу F5. Мы увидим, что значение параметра OfficeRibbon изменится в соответствии с новым значением переключателя в окне настройки WinZip.

Контроль изменений

Теперь нам понятно, что надо сделать далее: реализовать произошедшее в объекте GPO. Мощь предпочтений групповых политик становится очевидной. В отличие от традиционных групповых политик, требующих выгрузки настроенного ADM- или ADMX-файла, предпочтения групповых политик позволяют задать специфические параметры без ручного кодирования.

Создадим и отредактируем новый объект GPO. Далее в редакторе групповых политик (Group Policy Management) перейдем в раздел Конфигурация пользователя/Настройка/Конфигурация Windows/Реестр (User Configuration/Preferences/Windows Settings/Registry). Щелчком правой кнопкой создаем новый Registry Item (Элемент реестра). Мы готовы создать свой первый параметр управления приложением (рис. 5).

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

Рис. 5. Управление WinZip с помощью предпочтений групповых политик

В этом окне вместе с указанием HKEY_CURRENT_USER задается путь к параметру реестра, имя параметра, тип его значения и само значение. Все это мы выяснили ранее. Можно выполнить одну из четырех операций: Create (создать), Replace (заменить), Update (обновить) и Delete (удалить) (подробнее см. страницу). Для управления параметром OfficeRibbon выберем команду Update. Завершим создание параметра щелчком кнопки ОК. Привязав его к подразделению, в котором находятся наши пользователи, мы получим контроль над конфигурацией приложения.

Если WinZip не установлен на всех компьютерах в домене, то придется выполнить еще один шаг. Этот объект GPO будет связан с подразделением с пользователями. Это означает, что он будет применяться к ним при перемещении пользователей между компьютерами в домене. Если нужно, чтобы он применялся только там, где установлен WinZip, перейдите на вкладку Common (Общие), установите флажок Item-level targeting и щелкните Targeting. Откроется окно редактора Group Policy Preferences Targeting Editor (рис. 6).

Окно Targeting Editor

Рис. 6. Окно Targeting Editor

Редактор позволяет задать условия применения параметра групповых политик. На рис. 6 видно, что на текущем компьютере в элементе File Match задано соответствие файлу WINZIP32.EXE. Если файла WINZIP32.EXE на компьютере нет, параметр групповой политики применяться не будет.

Анализ изменений

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

Неудачные приложения сводят преимущество возможностей управления к минимуму по многим причинам. Некоторые хранят пользовательские параметры в HKEY_LOCAL_MACHINE. Другие хранят в реестре не все параметры. Часть может храниться в файлах INI, переменных окружения, файлах ODBC или других экзотических местах.

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

Несмотря на наличие в Windows PowerShell нескольких командлетов для сравнения состояния, может потребоваться обратиться к помощи сторонних приложений. Есть как бесплатные, так и платные решения, способные выявить неправильное поведение приложений. Одним из вариантов, с поистине удивительно обширными функциональными возможностями, является WinInstall LE от компании Scalable Software.

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

Пользуйтесь тем, что имеете

Вмешательство пользователей в работу приложений создает проблемы, на решение которых затрачивается масса времени. С этим можно бороться с помощью управления приложениями. Несмотря на сложность этой задачи, можно воспользоваться имеющимися инструментами — групповыми политиками и предпочтениями групповых политик, которые отлично оснащены для борьбы с излишней «любознательностью» пользователей. Кроме того, они бесплатны и уже имеются в вашем домене Active Directory.

Грег Шилдс

Грег Шилдс*  носит звание MVP и является партнером в компании Concentrated Technology. Другие советы и подсказки Грега из рубрики «Компьютерщик на все руки» вы найдете на сайте ConcentratedTech.com.*