Работа с предпочтениями групповой политики: управление INI-файлами

от автора

Настройка установленных программных продуктов – довольно утомительная процедура. А если учесть то, что в большинстве организаций идентичные настройки должны быть установлены не на одной машине, а по меньшей мере у нескольких сотрудников одного отдела, то если вы настраиваете приложения средствами графического интерфейса, весь этот процесс может затянуться надолго. Учитывая этот момент, можно сразу прийти к такому выводу, что желательно было бы попробовать автоматизировать процесс настройки программ, чтобы можно было централизованно управлять конфигурациями приложений ваших пользователей.
По большому счету, можно выделить несколько методов, позволяющих настраивать программные продукты, не прибегая к использованию пользовательского интерфейса. К таким методам можно отнести формирование сценариев для автоматизации определенных задач средствами какого-то скриптового языка, например Windows PowerShell или AutoIT, и последующее распространение таких сценариев средствами групповой политики. Помимо этого, если программные продукты генерируют определенные параметры в системном реестре операционных систем, вы можете централизованно предопределять такие настройки при помощи соответствующего элемента предпочтения групповой политики. В конце концов, некоторые программы могут для хранения своих настроек использовать конфигурационные файлы, изменяя которые вы можете вносить некоторые изменения в настройке таких продуктов.
Сегодня мы с вами остановимся именно на последнем описанном выше методе. Другими словами, из материала данной статьи вы узнаете о том, что собой представляют INI-файлы, каким образом они могут повлиять на настройку программ, а также, естественно, я расскажу о централизованной настройке INI-файлов. Но обо всем по порядку.

Что такое INI-файлы?

INI, они же Initialization-файлы, предназначены для хранения конфигурационных данных некоторых компонентов операционных систем Windows, а также приложений сторонних разработчиков. Были созданы такие файлы еще в первых версиях операционных систем Windows, но через какое-то время, а если говорить точнее, то в 1995 году, с появлением Windows 95 их потихоньку начал вытеснять системный реестр, и сейчас они используются практически только в приложениях сторонних разработчиков, которые не спешат менять способы хранения конфигурационных данных.
По сути, официальной спецификации формата этого файла в интернете нет или же его попросту очень сложно найти. Но тут можно не сильно волноваться, так как структура INI-файлов настолько проста и интуитивно понятна, что вручную создавать и конфигурировать такие файлы могут даже штатные пользователи, которые не то чтобы не разбирались в языках программирования, но которые даже ни разу не разбирались с HTML.
Данные конфигурационные файлы состоят из так называемых разделов, внутри которых располагаются сами параметры, именуемые свойствами. Такие файлы могут содержать как пустые строки, которые удобно использовать для того, чтобы INI-файлы были удобочитаемыми, так и комментарии в виде точки с запятой и даже заголовки разделов, заключаемые в квадратные скобки. Более чем очевидно, что в таких конфигурационных файлах нельзя использовать несколько различных свойств с одинаковыми именами, но я полагаю, что уже давно никто не совершает таких банальных ошибок. Также следует отметить, что при помощи обратного слэша вы можете объединять несколько строк, и они будут обрабатываться как одна целая строка.
Вот, в принципе, больше рассказывать о конфигурационных INI-файлах особо-то и нечего, поэтому потихоньку перейдем к практической части данной статьи. Перед тем как мы с вами начнем настраивать такие файлы, будет правильно, если будут рассмотрены сами файлы. Также будет рассказано о том, как они изменяются после внесения изменений при помощи диалоговых окон настроек самого программного обеспечения. В качестве примера возьмем немалоизвестный браузер Opera.

Локализация изменений настроек программ средствами INI-файлов

Прежде всего, следует загрузить этот программный продукт и проинсталлировать его. Это я описывать не буду, так как процедура более чем очевидная. Теперь, перед тем как начнем что-то изменять, откроем папку, в которой находятся конфигурационные файлы данной программы. Думаю, те, кто используют этот браузер по умолчанию, знают, что файл operaprefs.ini находится в папке %Userprofile%\AppData\Roaming\Opera\Opera. И кстати, этот файл можно конфигурировать еще и при помощи специальной конфигурационной страницы, которую можно вызвать непосредственно из браузера – это страница opera:config. Как видно на следующей иллюстрации, здесь есть множество параметров, доступных для настройки. Перед внесением каких-либо изменений, предлагаю забэкапить этот файл в какую-то отдельную папку с резервными копиями.


Рис. 1. Страница с конфигурационными параметрами браузера
Сейчас посмотрим, как можно конфигурировать этот браузер в организациях. Конечно, я надеюсь, что у вас Opera не является браузером по умолчанию, но, если вам так не повезло, сейчас вы узнаете о том, как же можно эффективно настроить этот браузер.
Исключительно в качестве теста изменим несколько свойств из секции User Prefs. Пусть, например, это будет свойство «Chat Room Splitter» со значением 80, а не 100, будет установлен флажок на опции «Click to Minimize», а папка с куками, то есть свойство «Cookies Directory», будет изменена на «%Userprofile%\AppData\Roaming\Opera\Opera\Cookies». Трех параметров с разными значениями, полагаю, будет более чем достаточно.
Откроем измененный конфигурационный INI-файл, переместимся к разделу [User Prefs] и найдем измененные свойства. Как видно на следующей иллюстрации, в свойстве Chat Room Splitter теперь значение равно 80-ти, у свойства Click to Minimize значение 1, а у свойства Cookies Directory теперь в качестве папки прописано {SmallPreferences}Cookies.


Рис. 2. Измененный ini-файл
Заменим измененный файл тем файлом, резервная копия которого была создана, и перейдем к конфигурированию INI-файлов средствами функциональных возможностей предпочтений групповой политики.

Узел предпочтений групповой политики «INI-файлы»

Расширение клиентской стороны «INI-файлы» позволяет вам добавлять новые свойства в разделы INI- или же INF-файлов. Помимо этого, вы также можете и заменять существующие свойства, удалять сами свойства, разделы или же вообще сами INI-файлы. Мы же сейчас будем просто заменять значения некоторых свойств.
Элемент предпочтений INI-файлов подвластен изменению как в конфигурации пользователя, так и в конфигурации компьютера, так что здесь, во время проектирования своих объектов групповой политики, еще перед созданием элементов предпочтений обязательно продумайте, должен ли INI-файл изменяться лишь у выполнившего вход пользователя или же INI-файлы должны быть отконфигурированы еще до выполнения входа в систему. Помимо этого, следует отметить то, что за данное расширение клиентской стороны отвечает библиотека gpprefcl.dll, а также с этим CSE связан идентификатор GUID {74EE6C03-5363-4554-B161-627540339CAB}.
Из следующей процедуры вы узнаете о том, каким образом можно изменить те же три параметра конфигурационного файла operaprefs.ini средствами функциональных возможностей групповой политики, а если говорить точнее, то при помощи соответствующего элемента предпочтений. Итак, чтобы централизованно изменить значения свойств текущего конфигурационного файла, нужно выполнить следующие действия:

  1. Первым делом, в оснастке «Управление групповой политикой» создаем объект групповой политики, который будет называться «Opera INI-files Preferences» и будет отвечать исключительно за настройки INI-файла этого браузера, сразу связываем сам объект со всем доменом (изменения, правда, будут вноситься только лишь в конфигурацию компьютера, но для простоты сейчас будет выполнено именно так), ну а после этого уже откроем редактор управления групповыми политиками.
  2. Следовательно, находясь в узле «Конфигурация Windows» (Windows Settings) конфигурации пользователя, выберем узел «INI-файлы» (INI files), а затем, как видно из следующей иллюстрации, из контекстного меню, как обычно, выберем команду «Создать», а затем «Файл .ini» («Ini file»):


    Рис. 3. Создание элемента предпочтений групповой политики «INI-файл»

  3. Так как будут всего лишь видоизменяться некоторые значения уже существующих свойств, достаточно остановиться на действии «Обновить» (Update). В текстовом поле «File Path» следует указать точный путь и имя самого файла. В нашем случае, как уже известно, это C:\Users\Администратор\AppData\Roaming\Opera\Opera\operaprefs.ini. Но ведь если подумать, далеко не каждый юзер обладает профилем с именем «Администратор», поэтому, чтобы у вас при использовании этого элемента предпочтения не было никаких проблем, я рекомендую вам использовать переменные. Обязательно обратите внимание на то, что при использовании предпочтений групповой политики нельзя использовать общепринятые переменные. Следовательно, придется воспользоваться тем, что предоставляют возможности предпочтений. Здесь есть такая переменная, как %LogonUser%, которая подставляет в строку имя выполнившего вход в систему пользователя. Именно по этой причине и нужно создавать наши элементы предпочтения в узле конфигурации пользователя. В общем, у нам должно получиться следующее значение: C:\Users\%LogonUser%\AppData\Roaming\Opera\Opera\operaprefs.ini. Так как мы хотим изменить значения трех свойств в известном нам разделе User Prefs, его и необходимо указать в текстовом поле «Имя раздела», то есть «Section name», без квадратных скобок. Переходим к самому свойству: в соответствующем текстовом поле следует указать значение «Chat Room Splitter», так как именно это свойство и необходимо изменить. Ну а в текстовое поле «Значение свойства», что в оригинале идет как «Property Value», мы указываем наше новое значение, то есть, 80. Диалоговое окно свойств данного элемента предпочтения можно увидеть ниже:


    Рис. 4. Диалоговое окно свойств элемента предпочтения INI-файла

  4. Так как объект групповой политики привязан ко всему домену, применяться этот элемент предпочтений будет на каждый компьютер компании. Ну а если не на всех компьютерах установлена Opera, то просто у пользователей на компьютерах с распространением объекта групповой политики будет зря создаваться ненужный файл. Такого быть не должно, и этого можно избежать, если воспользоваться нацеливанием на уровень элемента. В диалоговом окне редактора нацеливания необходимо выбрать элемент «Соответствие файлов» («File Match») из раскрывающегося списка «Тип соответствия», то есть «Match type», остановиться на типе «Файл существует» («file exists»), а затем в соответствующем текстовом поле локализовать файл с настройками этого браузера, то есть файл operaprefs.ini. Вот только если вы выбираете файл при помощи соответствующего диалогового окна, обязательно обратите внимание на то, чтобы в текстовом поле с путями вместо учетной записи текущего пользователя было прописано %LogonUser%. В противном случае будет выполняться поиск файла для указанной вами учетной записи, что практически во всех случаях приведет к ошибке. Диалоговое окно редактора нацеливания изображено на следующей иллюстрации:


    Рис. 5. Диалоговое окно редактора нацеливания

Осталось создать еще два элемента предпочтения с таким же нацеливанием на уровень элемента для изменения двух оставшихся параметров. То есть:

  • В первом элементе предпочтения имя свойства должно быть Click to Minimize, а его значение должно быть 1;
  • Во втором элементе предпочтения имя свойства — Cookies Directory, а значение — {SmallPreferences}Cookies.

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


Рис. 6. Редактор управления групповыми политиками после создания всех элементов предпочтений
А вот теперь можно и проверить, удалось ли нам изменить существующий INI-файл оперы. Для этого следует обновить параметры политики при помощи утилиты gpupdate, а затем нужно локализовать искомый конфигурационный файл. Как видно на последней иллюстрации данной статьи, файл изменен, и в нем определены те значения, которые были указаны в соответствующих элементах предпочтений групповой политики:


Рис. 7. Измененный файл operaprefs.ini

Заключение

Из этой статьи вы узнали о том, что собой представляют и для чего нужны конфигурационные INI-файлы. На примере с браузером Opera было рассмотрено изменение настроек посредством одного из таких файлов. Ну а самое важное, о чем шла речь в текущей статье, так это то, что вы узнали о таком интересном элементе предпочтений групповой политики, как «INI-файлы». В сопутствующем примере было рассмотрено изменение трех свойств существующего конфигурационного файла.
Самое главное при работе с конфигурационными INI-файлами ­– это то, чтобы вы всегда сохраняли исходную версию таких файлов перед редактированием последних на тот случай, если перестараетесь с изменениями конфигурации. Откат ведь всегда проще и безболезненнее, нежели полная переустановка программного обеспечения 🙂

ссылка на оригинал статьи http://habrahabr.ru/post/178027/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *