Ранее мы уже делали заметку о том, как развернуть 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", https://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 файла:
Настало время для создания командного файла установки. Назовём его просто 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-разрядных системах:
Остаётся только распространить приложение по точкам распространения и развернуть на коллекцию компьютеров для обновления существующих 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, то можно развернуть приложение на группу пользователей в качестве доступной (!) установки.
Дополнительные источники информации:
Доброго дня!
Спасибо за инструкцию! У меня было что-то подобное, но кое что новое узнал.
Вопрос вот только есть, а не появилось ли каких то простых способов импортировать в дистрибутив свои сертификаты? Сейчас это приходится делать или вручную, или используя Certulil.exe, но в последнем случае импорт возможен только если пользователь хоть раз зашел в Firefox и создан профиль, т.е. это еще как то отследить нужно.
Добрый день. Также интересует вопрос с сертификатами в FF. Может кто поделиться опытом автоматического распространения на множество ПК
Добрый день. Тоже интересует вопрос с сертификатами, и с дополнениями (типа: Remote XUL manager)