Как настроить параметры по умолчанию при развертывании Google Chrome для бизнеса?

Я хочу иметь возможность развертывать Google Chrome для бизнеса в своей организации без создания каких-либо дополнительных ярлыков и без каких-либо подсказок в начале. Установщик Chrome для бизнеса - это файл установщика Windows (MSI), но это всего лишь оболочка для исполняемого установщика. Он не имеет таких свойств, как CreateDesktopShortcut, которые могут быть установлены в командной строке msiexec, как это делают многие установщики MSI. Как настроить мою установку? Я бы предпочел не писать и поддерживать сценарий установки.

12 голосов | спросил Jay Michaud 11 +04002014-10-11T02:33:37+04:00312014bEurope/MoscowSat, 11 Oct 2014 02:33:37 +0400 2014, 02:33:37

2 ответа


21

Google Chrome сохраняет пользовательские настройки по умолчанию в master_preferences файл . Это текстовый файл в формате JSON и включает distribution, содержащий настройки, которые будут прочитаны во время установки. Редактирование этого файла в существующей установке Chrome не решает проблему, потому что установка, очевидно, уже произошла в этот момент. Решение состоит из интеграции настроенного файла master_preferences в установку установщика Windows процесс с помощью файла преобразования. Для выполнения этого выполните следующие действия.

Соберите необходимые установщики и инструменты

  1. установщик Google Chrome для бизнеса .
    Я загружу 64-битную версию в E:\Chrome for Business 38 (64-bit).
  2. Microsoft Windows Software Development Kit (SDK) для Windows 8.1 .
    Я загружу это в E:\WindowsSDK8.1.
  3. Установите SDK Windows: E:\WindowsSDK8.1.\sdksetup.exe.
  4. Установите Orca (редактор базы данных установщика Windows):
    msiexec /package "C:\Program Files (x86)\Windows Kits\8.1\bin\x86\Orca-x86_en-us.msi".

Напишите файл настроек master_preferences

  1. Просмотрите доступные параметры распространения. Это свойства объекта distribution, который содержится в анонимном объекте в файле master_preferences. Следующий список настроек был скомпилирован путем объединения двух исходных файлов Chromium: master_preferences_constants.h и master_preferences_constants.cc в /trunk /SRC /хром /установки /Util /. Обратите внимание, что следующее недопустимо JSON, потому что для свойств не указаны значения. Пример показан ниже.
{
  "distribution" : {
    // All the preferences below are expected to be inside the JSON "distribution"
    // block (as shown here). Some of them also have equivalent command line option. 
    // If same option is specified in master preference as well as command line, 
    // the command line value takes precedence.

    // Boolean. Use alternate text for the shortcut. Cmd line override present.
    "alternate_shortcut_text"

    // Boolean. Whether to instruct the installer to auto-launch chrome on computer
    // startup. The default (if not provided) is |false|.
    "auto_launch_chrome"

    // Boolean. This is to be a Chrome install. (When using MultiInstall)
    "chrome"

    // Boolean. This is to be a Chrome App Host install.
    "app_host"  // TODO(huangs): Remove by M27.

    // Boolean. This is to be a Chrome App Launcher install.
    "app_launcher"

    // Integer. Icon index from chrome.exe to use for shortcuts.
    "chrome_shortcut_icon_index"

    // Boolean. This is a legacy preference and should no longer be used; it is
    // kept around so that old master_preferences which specify
    // "create_all_shortcuts":false still enforce the new
    // "do_not_create_(desktop|quick_launch)_shortcut" preferences. Setting this to
    // true no longer has any impact.
    "create_all_shortcuts"

    // Boolean pref that disables all logging.
    "disable_logging"

    // Name of the dictionary that holds the distribution values.
    "distribution"

    // Boolean pref that triggers silent import of the default browser bookmarks.
    "import_bookmarks"

    // String pref that triggers silent import of bookmarks from the html file at
    // given path.
    "import_bookmarks_from_file"

    // Boolean pref that triggers silent import of the default browser history.
    "import_history"

    // Boolean pref that triggers silent import of the default browser homepage.
    "import_home_page"

    // Boolean pref that triggers silent import of the default search engine.
    "import_search_engine"

    // Integer. RLZ ping delay in seconds.
    "ping_delay"

    // String of Chrome version for which the "set as default browser" infobar will
    // never be shown.
    "suppress_default_browser_prompt_for_version"

    // Boolean. Do not show first run bubble, even if it would otherwise be shown.
    "suppress_first_run_bubble"

    // Boolean. Prevent creation of all shortcuts to chrome, including the
    // desktop, quick launch, taskbar and the start menu shortcuts.
    "do_not_create_any_shortcuts"

    // Boolean. Prevent creation of the Desktop shortcut on install (and later on
    // Active Setup for each user on a system-level install).
    "do_not_create_desktop_shortcut"

    // Boolean. Prevent creation of the Quick Launch shortcut on install (and later
    // on Active Setup for each user on a system-level install).
    "do_not_create_quick_launch_shortcut"

    // Boolean. Prevent creation of the Taskbar (since Windows 7) shortcut on
    // install (and later on Active Setup for each user on a system-level install).
    "do_not_create_taskbar_shortcut"

    // Boolean. Do not launch Chrome after first install. Cmd line override present.
    "do_not_launch_chrome"

    // Boolean. Do not register with Google Update to have Chrome launched after
    // install. Cmd line override present.
    "do_not_register_for_update_launch"

    // String.  Specifies the file path to write logging info to.
    "log_file"

    // Boolean. Register Chrome as default browser. Cmd line override present.
    "make_chrome_default"

    // Boolean. Register Chrome as default browser for the current user.
    "make_chrome_default_for_user"

    // Boolean. Expect to be run by an MSI installer. Cmd line override present.
    "msi"

    // Boolean. Support installing multiple products at once.
    "multi_install"

    // Boolean. Show EULA dialog before install.
    "require_eula"

    // Boolean. Indicates that the first-run 'set-as-default' dialog should not be
    // shown. Relevant in Windows 8+ context only. If this is true, the standard
    // 'set default browser' prompt on the butter-bar will appear during the first
    // run.
   "suppress_first_run_default_browser_prompt"

    // Boolean. Install Chrome to system wise location. Cmd line override present.
    "system_level"

    // Boolean. Run installer in verbose mode. Cmd line override present.
    "verbose_logging"

    // Name of the block that contains the extensions on the master preferences.
    "extensions.settings"
  }
}
  1. Просмотрите доступные параметры нераспределения. Эти настройки идут вне объекта distribution в JSON. Они применяются к профилю пользователя, когда пользователь запускает Chrome в первый раз. Полный список настроек доступен в исходных файлах Chromium pref_names.h и pref_names.cc в /trunk /src /chrome /common /. Список довольно длинный, поэтому здесь показано только подмножество.
{
// *************** PROFILE PREFS ***************
// These are attached to the user profile

// A string property indicating whether default apps should be installed
// in this profile.  Use the value "install" to enable defaults apps, or
// "noinstall" to disable them.  This property is usually set in the
// master_preferences and copied into the profile preferences on first run.
// Defaults apps are installed only when creating a new profile.
"default_apps"

// If set to true profiles are created in ephemeral mode and do not store their
// data in the profile folder on disk but only in memory.
"profile.ephemeral_mode"

// A boolean specifying whether the New Tab page is the home page or not.
"homepage_is_newtabpage"

// This is the URL of the page to load when opening new tabs.
"homepage"

// An integer pref. Holds one of several values:
// 0: (deprecated) open the homepage on startup.
// 1: restore the last session.
// 2: this was used to indicate a specific session should be restored. It is
//    no longer used, but saved to avoid conflict with old preferences.
// 3: unused, previously indicated the user wants to restore a saved session.
// 4: restore the URLs defined in kURLsToRestoreOnStartup.
// 5: open the New Tab Page on startup.
"session.restore_on_startup"

// The URLs to restore on startup or when the home button is pressed. The URLs
// are only restored on startup if kRestoreOnStartup is 4.
"session.startup_urls"

// Boolean that is true when SafeBrowsing is enabled.
"safebrowsing.enabled"

// Boolean that tell us whether malicious download feedback is enabled.
"safebrowsing.extended_reporting_enabled"

/* Might be useful for highly-secure workstations. */
// Enum that specifies whether Incognito mode is:
// 0 - Enabled. Default behaviour. Default mode is available on demand.
// 1 - Disabled. Used cannot browse pages in Incognito mode.
// 2 - Forced. All pages/sessions are forced into Incognito.
"incognito.mode_availability"

// Boolean that is true when Suggest support is enabled.
"search.suggest_enabled"

// A boolean pref set to true if a Home button to open the Home pages should be
// visible on the toolbar.
"browser.show_home_button"

// Boolean that indicates whether we should check if we are the default browser
// on start-up.
"browser.check_default_browser"

// Policy setting whether default browser check should be disabled and default
// browser registration should take place.
"browser.default_browser_setting_enabled"

// Boolean that specifies whether to import bookmarks from the default browser
// on first run.
"import_bookmarks"

// Boolean that specifies whether to import the browsing history from the
// default browser on first run.
"import_history"

// Boolean that specifies whether to import the homepage from the default
// browser on first run.
"import_home_page"

// Boolean that specifies whether to import the search engine from the default
// browser on first run.
"import_search_engine"

// Boolean that specifies whether to import the saved passwords from the default
// browser on first run.
"import_saved_passwords"

// Boolean that specifies if the sign in promo is allowed to show on first run.
// This preference is specified in the master preference file to suppress the
// sign in promo for some installations.
"sync_promo.show_on_first_run_allowed"

// *************** LOCAL STATE ***************
// These are attached to the machine/installation

// Note: Both settings included below are for Windows only.

// Whether downloaded PDFs should be opened in Adobe Acrobat Reader.
"download.open_pdf_in_adobe_reader"

// Preference to be used while relaunching Chrome. This preference dictates if
// Chrome should be launched in Metro or Desktop mode.
// For more info take a look at ChromeRelaunchMode enum.
"relaunch.mode"

// Boolean that specifies if the sign in promo is allowed to show on first run.
// This preference is specified in the master preference file to suppress the
// sign in promo for some installations.
"sync_promo.show_on_first_run_allowed";

// Boolean that specifies if we should show a bubble in the new tab page.
// The bubble is used to confirm that the user is signed into sync.
"sync_promo.show_ntp_bubble";

// As part of the master preferences an optional section indicates the tabs
// to open during first run. An example is the following:
"first_run_tabs": [
  "http://google.com/f1",
  "https://google.com/f2"
]
// Note that the entries are usually urls but they don't have to be.
  1. Выберите нужные параметры и напишите собственный текстовый файл master_preferences. Вот тот, который встроен в файл установщика Windows (расширен для нескольких строк для удобочитаемости):
{
  "distribution" : 
  {
    "msi" : true,
    "system_level" : true,
    "verbose_logging" : true
  }
}

Вы должны включить все эти свойства, как показано в файле master_preferences, чтобы программа установки работала правильно. Поэтому вы должны начать с этого и добавить к нему. Мой файл показан ниже. Единственный способ, с помощью которого я запретил Chrome запрашивать у пользователя настройку учетной записи Google, - установить first_run_tabsимущество.

{
  "browser" : {
    "check_default_browser" : false
  },
  "distribution" : {
    "import_bookmarks" : false,
    "import_history" : false,
    "import_home_page" : false,
    "import_search_engine" : false,
    "suppress_first_run_bubble" : true,
    "do_not_create_desktop_shortcut" : true,
    "do_not_create_quick_launch_shortcut" : true,
    "do_not_create_taskbar_shortcut" : true,
    "do_not_launch_chrome" : true,
    "do_not_register_for_update_launch" : true,
    "make_chrome_default" : false,
    "make_chrome_default_for_user" : false,
    "msi" : true,
    "require_eula" : false,
    "suppress_first_run_default_browser_prompt" : true,
    "system_level" : true,
    "verbose_logging" : true
  },
  "first_run_tabs" : [
    "chrome://newtab"
  ],
  "homepage" : "chrome://newtab",
  "homepage_is_newtabpage" : true,
  "sync_promo" : {
    "show_on_first_run_allowed" : false
  }
}
  1. Найдите http://jslint.com/, скопируйте свой JSON в поле «Источник», и нажмите кнопку JSLint. Это подтвердит, что у вас хороший JSON. Это важно, потому что подавление искаженного JSON установщику приведет к неожиданным и /или нежелательным результатам. Сохраните файл с подтверждением для дальнейшего использования.

  2. Сделайте копию вашего проверенного JSON и удалите все пробелы и новые строки. Установщик Chrome не может обрабатывать новые строки; включая новые строки, приведет к поврежденной установке, которая должна быть удалена с помощью операции реестра и ручного удаления файлов. Удаление пробелов может не понадобиться, но оно соответствует тому, что сделали авторы установки с JSON по умолчанию. Шахта показана ниже.

{"browser":{"check_default_browser":false},"distribution":{"import_bookmarks":false,"import_history":false,"import_home_page":false,"import_search_engine":false,"suppress_first_run_bubble":true,"do_not_create_desktop_shortcut":true,"do_not_create_quick_launch_shortcut":true,"do_not_create_taskbar_shortcut":true,"do_not_launch_chrome":true,"do_not_register_for_update_launch":true,"make_chrome_default":false,"make_chrome_default_for_user":false,"msi":true,"require_eula":false,"suppress_first_run_default_browser_prompt":true,"system_level":true,"verbose_logging":true},"first_run_tabs":["chrome://newtab"],"homepage":"chrome://newtab","homepage_is_newtabpage":true,"sync_promo":{"show_on_first_run_allowed":false}}
  1. Запустите новый JSON без пробелов через JSLint, чтобы убедиться, что вы не ввели никаких ошибок.

  2. Скопируйте проверенный JSON без пробелов или новых строк в URL-кодер. Я использовал URL Encode /Decode Online . Сохраните закодированный JSON для использования в установщике и для дальнейшего использования. Мой кодированный JSON показан ниже.

%7B%22browser%22%3A%7B%22check_default_browser%22%3Afalse%7D%2C%22distribution%22%3A%7B%22import_bookmarks%22%3Afalse%2C%22import_history%22%3Afalse%2C%22import_home_page%22%3Afalse%2C%22import_search_engine%22%3Afalse%2C%22suppress_first_run_bubble%22%3Atrue%2C%22do_not_create_desktop_shortcut%22%3Atrue%2C%22do_not_create_quick_launch_shortcut%22%3Atrue%2C%22do_not_create_taskbar_shortcut%22%3Atrue%2C%22do_not_launch_chrome%22%3Atrue%2C%22do_not_register_for_update_launch%22%3Atrue%2C%22make_chrome_default%22%3Afalse%2C%22make_chrome_default_for_user%22%3Afalse%2C%22msi%22%3Atrue%2C%22require_eula%22%3Afalse%2C%22suppress_first_run_default_browser_prompt%22%3Atrue%2C%22system_level%22%3Atrue%2C%22verbose_logging%22%3Atrue%7D%2C%22first_run_tabs%22%3A%5B%22chrome%3A%2F%2Fnewtab%22%5D%2C%22homepage%22%3A%22chrome%3A%2F%2Fnewtab%22%2C%22homepage_is_newtabpage%22%3Atrue%2C%22sync_promo%22%3A%7B%22show_on_first_run_allowed%22%3Afalse%7D%7D

Записать преобразование установщика Windows

  1. Начать Orca.
  2. Откройте загруженный файл MSI для Chrome для бизнеса как доступный только для чтения. (Я полагаю, вы могли бы отредактировать фактический файл, но мне нравится использовать преобразования, поэтому у меня всегда есть файл, поставляемый поставщиком, в качестве базовой линии, если все пойдет не так.) Я загрузил 64-битную версию Chrome for Business 38, а имя файла было googlechromestandaloneenterprise64.msi литий>
  3. В меню Трансформация выберите Новое преобразование . Теперь все таблицы базы данных установщика Windows доступны для редактирования, потому что вы редактируете новый файл преобразования.
  4. Выберите таблицу свойств.
  5. Щелкните правой кнопкой мыши в столбце «Свойства» и выберите «Добавить строку». Установите для свойства значение MASTER_PREFERENCES и установите значение для вашего JSON с кодировкой URL. Этот код будет применен во время развертывания и сохранен в файле установки master_preferences установщиком.
  6. Выберите таблицу CustomAction и найдите действие BuildInstallCommand.
  7. Дважды щелкните ячейку Target для действия BuildInstallCommand, чтобы сделать ее доступной.
  8. В конце текста удалите существующий закодированный JSON после installerdata= и замените его новым именем свойства в скобках. Обязательно сохраните закрывающий кавычек. Он должен выглядеть следующим образом: installerdata=[MASTER_PREFERENCES]"
  9. Нажмите Enter, чтобы закончить редактирование ячейки.
  10. В меню Трансформация выберите Сгенерировать трансформацию ... и сохраните новый файл MST. Я сохранил мой как E:\Chrome for Business 38 (64-bit)\MasterPreferences.mst.
  11. Выход из Orca.

Примечание. Необходимо использовать свойство, а не вставлять JSON непосредственно в пользовательское действие, потому что пользовательское действие. Целевое поле - всего 255 символов. долго . Схема этой таблицы не может быть изменена, и большинство пользовательских JSON занимают общую длину этого поля над лимитом. Использование свойства позволяет избежать ограничения длины, поскольку практического ограничения длины значения свойства не существует.

Установите Chrome с преобразованием

  1. Откройте окно командной строки с правами администратора.
  2. Установите Google Chrome с преобразованием, установив свойство TRANSFORMS в его имя файла. Включите ведение журнала, чтобы помочь вам найти что-то не так. Используя мои примеры папок и при условии, что вы вошли в систему под учетной записью администратора: msiexec /package "E:\Chrome for Business 38 (64-bit)\googlechromestandaloneenterprise64.msi" TRANSFORMS="E:\Chrome for Business 38 (64-bit)\MasterPreferences.mst" /l*v "C:\Users\Administrator\Desktop\ChromeInstallationLog.txt"
  3. Если Chrome устанавливается без ошибок, попробуйте запустить его как другого, не административного пользователя, чтобы обеспечить правильное распространение настроек.
  4. Наконец, настройте развертываниес установщиком и файлом преобразования. Я использую Конфигурация системного центра Manager 2012 R2 . Моя командная строка для этого приложения похожа на следующее: msiexec /package "googlechromestandaloneenterprise64.msi" /quiet TRANSFORMS="MasterPreferences.mst" /l*v "%TEMP%\ChromeInstallationLog.txt" Это дает моим пользователям опыт работы с приложениями в приложении Center Center Configuration Manager, оставляет управление значками рабочего стола и панели задач исключительно с пользователем и позволяет избежать раздражающего опыта первого запуска. Это мой предпочтительный пользовательский интерфейс в целом, но он особенно полезен для компьютеров с открытым доступом, например, в компьютерной лаборатории, где изменения в жестком диске теряются при каждом перезапуске, поэтому каждый вход в систему является «первым» входом в систему.

Примечания

См. также документацию Google по файлу master_preferences , которая охватывает подмножество доступных настроек, но не сообщит вам, как получить настройки на машине во время установки.

Благодаря [email protected] для указания на возможность настройки MSI . Моя цель заключалась в том, чтобы расширить эту информацию, чтобы предоставить исчерпывающее объяснение и примерное решение. Я надеюсь, что это будет полезно.

ответил Jay Michaud 11 +04002014-10-11T02:33:37+04:00312014bEurope/MoscowSat, 11 Oct 2014 02:33:37 +0400 2014, 02:33:37
0

Мне не хватает репутации, чтобы опубликовать комментарий. Я использовал руководство Jay, чтобы помочь с проблемой получения загруженного типа файла для автоматического запуска. И это единственный способ сделать это в данный момент:

https://bugs.chromium.org/p/chromium /вопросы /детали? ID = 476668

-Эта ссылка относится к ошибке, которая AFAIK не исправлена. Репортер хотел бы иметь возможность устанавливать конкретные типы файлов для автоматического запуска на d /l через объект групповой политики. Вариант использования для этого ограничен с учетом последствий для безопасности, но иногда необходим для развертывания на предприятии. Это может быть достигнуто с использованием техники Джея в .mst с master_preferences. (отредактируйте в ответ на комментарий Чика)

Я согласен с тобой Томтом, должен быть более простой способ. В большинстве случаев .admx от Google достаточно.

ответил usershmusername 24 PM000000110000004231 2016, 23:34:42

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132