Развёртывание Mozilla Firefox ESR помощью System Center 2012 R2 Configuration Manager

imageРанее мы уже делали заметку о том, как развернуть Mozilla Firefox на компьютеры пользователей при помощи System Center 2012 Configuration Manager (SCCM). Сначала я думал обновить старую запись, но позже решил написать новую заметку, так как сейчас мы воспользуемся несколько иным подходом к созданию приложения для развёртывания. На этот раз пойдёт речь пойдёт о дистрибутивах Firefox с расширенной поддержкой - Extended Support Release (ESR). Дистрибутивы ESR отмечены более высокой стабильностью, поэтому корпорация Mozilla рекомендует именно эти релизы для развёртывания в организациях, учебных и гос. учреждениях.

Загрузим последнюю версию дистрибутива и выложим в сетевое расположение. На момент написания данной заметки последней версией является 38.2.1.

Рядом с дистрибутивом создадим каталог Config, а в нём файл Install.ini, который будет управлять процессом установки.

Содержимое файла Install.ini:

[Install]
;
; Remove the semicolon (;) to un-comment a line.
;
; The name of the directory where the application will be installed in the
; system's program files directory. The security
; context the installer is running in must have write access to the
; installation directory. Also, the directory must not exist or if it exists
; it must be a directory and not a file. If any of these conditions are not met
; the installer will abort the installation with an error level of 2. If this
; value is specified then InstallDirectoryPath will be ignored.
; InstallDirectoryName=Mozilla Firefox

; The full path to the directory to install the application. The security
; context the installer is running in must have write access to the
; installation directory. Also, the directory must not exist or if it exists
; it must be a directory and not a file. If any of these conditions are not met
; the installer will abort the installation with an error level of 2.
; InstallDirectoryPath=c:\firefox\

; By default all of the following shortcuts are created. To prevent the
; creation of a shortcut specify false for the shortcut you don't want created.

; Create a shortcut for the application in the current user's QuickLaunch
; directory.
; QuickLaunchShortcut=false

; Create a shortcut for the application on the desktop. This will create the
; shortcut in the All Users Desktop directory and if that fails this will
; attempt to create the shortcuts in the current user's Start Menu directory.
DesktopShortcut=false

; Create shortcuts for the application in the Start Menu. This will create the
; shortcuts in the All Users Start Menu directory and if that fails this will
; attempt to create the shortcuts in the current user's Start Menu directory.
; StartMenuShortcuts=false

; The directory name to use for the StartMenu folder (not available with
; Firefox 4.0 and above - see note below).
; note: if StartMenuShortcuts=false is specified then this will be ignored.
; StartMenuDirectoryName=Mozilla Firefox

; The MozillaMaintenance service is used for silent updates and may be used
; for other maintenance related tasks.  It is an optional component. 
; This option can be used in Firefox 16 or later to skip installing the service.
MaintenanceService=false

Создадим конфигурационный файл mozilla.cfg, который будет настраивать браузер. В файле используется два типа настроек:

  • pref – Настраивает параметр, но у пользователя остается возможность изменить настройки;
  • lockPref – Настраивает параметр и не оставляет пользователю возможности настройки.

Важно соблюдение регистра, в противном случае Firefox не запустится.

Содержимое файла mozilla.cfg:

//Mozilla Firefox config
//
//Запрещаем импорт настроек из других браузеров при первом запуске.
pref("profile.allow_automigration", false);
pref("profile.confirm_automigration", false);

//Не устанавливаем FF по браузером по умолчанию.
pref("browser.shell.checkDefaultBrowser", false);

//Не выводим сообщение о правах использования.
pref("browser.rights.3.shown", true);

//Отказываемся отправлять сведения о производительности.
pref("toolkit.telemetry.rejected", true);
lockPref("toolkit.telemetry.enabled", false)
lockPref("toolkit.telemetry.prompted", false);

//Отключаем отчёт о работоспособности FF
lockPref("datareporting.healthreport.service.enabled", false);
lockPref("datareporting.healthreport.uploadEnabled", false);

//Отключаем отчёт о падениях
lockPref("toolkit.crashreporter.enabled", false);
Components.classes["@mozilla.org/toolkit/crash-reporter;1"].getService(Components.interfaces.nsICrashReporter).submitReports = false;

// Сообщать сайтам о нежелании отслеживания
lockPref("privacy.donottrackheader.enabled", true)

//Отключаем автоматические обновления.
lockPref("app.update.channel", "default");
lockPref("app.update.auto", false);
lockPref("app.update.enabled", false);
lockPref("browser.search.update", false);
lockPref("app.update.mode", 0);

// Настройка Proxy
//0,3 -- без proxy
//1 -- ручная настройка
//2 -- указать путь до файла с параметрами автонастройки
//4 -- автонастройка
//5 -- системные параметры
pref("network.proxy.type", 4);

//Включаем Kerberos аутентификацию и указываем узлы по маске.
pref("network.negotiate-auth.delegation-uris", "holding.com, holding2.com");
//Включаем NTLM аутентификацию и указываем узлы по маске.
pref("network.automatic-ntlm-auth.trusted-uris", "holding.com, holding2.com")
pref("network.negotiate-auth.trusted-uris", "holding.com, holding2.com");

//Не предлагать устанавливать Flash player pref("plugins.notifyMissingFlash", false); //Отключаем мастер-паролей lockPref("signon.rememberSignons", false); //Отключаем встроенный PDF просмотрщик pref("pdfjs.disabled", true); //Отключаем страницу приветствия при первом запуске. pref("startup.homepage_welcome_url", "ignore"); pref("startup.homepage_override_url", "ignore"); //Отключаем страницу "Что нового" после обновления pref("browser.startup.homepage_override.mstone","ignore"); //Указываем домашнюю страницу (0-пустая) pref("browser.startup.homepage", http://blog.it-kb.ru/);

Для того, чтобы научить Firefox использовать конфигурационный файл, создадим файл local-settings.js с следующим содержимым:

pref("general.config.obscure_value", 0);
pref("general.config.filename", "mozilla.cfg");

Для запрета запуска мастера импорта при первом запуске Firefox необходимо создать файл override.ini (параметры из конфигурационного файла игнорируются) со следующим содержимым:

[XRE] 
EnableProfileMigrator=false

В итоге, в каталоге Config у нас должно получится 4 файла:

image

Настало время для создания командного файла установки. Назовём его просто Install.cmd

Для того, чтобы альтернативный браузер устанавливался без лишнего “шума”, укажем параметр “–ms”, а для использования  файла “ответов” укажем параметр “/INI”.

Стоит заметить, что при указании файла ответов есть особенность, – указывать необходимо полный путь к файлу. Так как все свои развёртывания мы проводим через SCCM с полным копированием содержимого пакета в кэш клиентского компьютера, указать статический полный путь до файла ответов не представляется возможным. Поэтому используется переменная текущего каталога (%CD%), но с таким же успехом можно использовать и UNC пути, например \\SERVER\Mozilla\Config\Install.ini.

После установки остаётся скопировать конфигурационные файлы в папку с браузером.

В конечном итоге файл install.cmd получился таким:

"Firefox Setup 38.2.1esr.exe" -ms /INI=%CD%\Config\Install.ini

IF EXIST "%WINDIR%\SysWOW64" (
COPY "Config\local-settings.js" "%ProgramFiles(x86)%\Mozilla Firefox\defaults\pref\" /Y
COPY "Config\override.ini" "%ProgramFiles(x86)%\Mozilla Firefox\browser\" /Y
COPY "Config\mozilla.cfg" "%ProgramFiles(x86)%\Mozilla Firefox\" /Y
) ELSE (
COPY "Config\local-settings.js" "%ProgramFiles%\Mozilla Firefox\defaults\pref\" /Y
COPY "Config\override.ini" "%ProgramFiles%\Mozilla Firefox\browser\" /Y
COPY "Config\mozilla.cfg" "%ProgramFiles%\Mozilla Firefox\" /Y
)

Чтобы SCCM имел возможность не только установки, но и удаления, создадим командный файл Uninstall.cmd для удаления браузера:

IF NOT EXIST "%WINDIR%\SysWOW64" (
    "%ProgramFiles%\Mozilla Firefox\uninstall\helper.exe" /S
) ELSE (
    "%ProgramFiles(x86)%\Mozilla Firefox\uninstall\helper.exe" /S
)

Стандартным образом создадим приложение в SCCM, и в качестве обнаружения укажем ключ реестра: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox 38.2.1 ESR (x86 ru), и поставим галку, что ключ реестра связан с 32-разрядным приложением в 64-разрядных системах:

image

Остаётся только распространить приложение по точкам распространения и развернуть на коллекцию компьютеров для обновления существующих Mozilla Firefox в качестве обязательной установки.

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

select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_R_System.OperatingSystemNameandVersion like "%Workstation%" and SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like "%Mozilla Firefox%"

В добавок, если используется Application Catalog, то можно развернуть приложение на группу пользователей в качестве доступной (!) установки.

Дополнительные источники информации:

Всего комментариев: 3 Комментировать

  1. Сергей /

    Доброго дня!
    Спасибо за инструкцию! У меня было что-то подобное, но кое что новое узнал.
    Вопрос вот только есть, а не появилось ли каких то простых способов импортировать в дистрибутив свои сертификаты? Сейчас это приходится делать или вручную, или используя Certulil.exe, но в последнем случае импорт возможен только если пользователь хоть раз зашел в Firefox и создан профиль, т.е. это еще как то отследить нужно.

  2. Владислав /

    Добрый день. Также интересует вопрос с сертификатами в FF. Может кто поделиться опытом автоматического распространения на множество ПК

  3. Данияр /

    Добрый день. Тоже интересует вопрос с сертификатами, и с дополнениями (типа: Remote XUL manager)

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