15 votos

¿Cómo puedo personalizar la configuración predeterminada al implementar Google Chrome for Business?

Quiero ser capaz de implementar Google Chrome for Business en mi organización sin ningún extra accesos directos que se crean y sin ninguna de la primera ejecución de instrucciones. El Chrome para empresas de instalador es un archivo de Windows Installer (MSI), pero es sólo una envoltura alrededor de un instalador ejecutable. No tiene propiedades tales como CreateDesktopShortcut que se podría establecer en el comando msiexec línea como una gran cantidad de instaladores MSI hacer. ¿Cómo puedo personalizar mi instalación? Prefiero no escribir y mantener un script de instalación.

26voto

Jay Michaud Puntos 2426

Google Chrome almacena el valor predeterminado de las preferencias del usuario en un archivo "master_preferences" archivo. Este es un archivo de texto en JSON formato, e incluye un distribution objeto que contiene la configuración que será leído durante la instalación. La edición de este archivo en una instalación de Chrome no resuelve el problema porque la instalación, evidentemente, ha ocurrido ya en ese punto. La solución es integrar, de una manera personalizada archivo "master_preferences" archivo en el Windows Installer proceso de instalación mediante el uso de un archivo de transformación. Tome los siguientes pasos para lograr esto.

Reunir la Necesaria Instaladores y Herramientas

  1. Google Chrome para empresas de instalador.
    Voy a descargar la versión de 64 bits a E:\Chrome for Business 38 (64-bit).
  2. Microsoft Windows Software Development Kit (SDK) de Windows 8.1.
    Voy a descargar este a E:\WindowsSDK8.1.
  3. Instalar el SDK de Windows: E:\WindowsSDK8.1.\sdksetup.exe.
  4. Instalar Orca (el Instalador de Windows editor de base de datos):
    msiexec /package "C:\Program Files (x86)\Windows Kits\8.1\bin\x86\Orca-x86_en-us.msi".

Escribir un personalizados archivo "master_preferences" archivo

  1. Examinen la configuración de distribución. Estas son las propiedades de un distribution objeto, que es la contenida en el objeto anónimo en el archivo "master_preferences" archivo. La siguiente lista de ajustes fue compilado por la combinación de dos de Cromo archivos de origen: master_preferences_constants.h y master_preferences_constants.cc en /trunk/src/chrome/installer/util/. Tenga en cuenta que el siguiente no es válido JSON porque no se incluyen valores para las propiedades. Un ejemplo se muestra más abajo.
{
  "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. Revisión de la disposición de no distribución de la configuración. Estos ajustes ir fuera de la distribution objeto en JSON. Se aplican para el perfil de usuario cuando un usuario ejecuta Chrome por primera vez. La lista completa de configuración está disponible en el Cromo archivos de origen pref_names.h y pref_names.cc en /trunk/src/chrome/common/. La lista es bastante extensa, así que sólo un subconjunto que se muestra aquí.
{
// *************** 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. Seleccione la configuración que desee y escriba su propio personalizado archivo "master_preferences" archivo de texto. Aquí es la que está integrado en el archivo de Windows Installer (ampliado a varias líneas para facilitar la lectura):
{
  "distribution" : 
  {
    "msi" : true,
    "system_level" : true,
    "verbose_logging" : true
  }
}

Usted debe incluir a todas estas propiedades, como se muestra en el archivo "master_preferences" archivo para que el instalador funcione correctamente. Por lo tanto, usted debe comenzar con esto y agregar a ella. Mi archivo se muestra a continuación. La única manera que he encontrado para detener Chrome de pedir al usuario configurar una cuenta de Google era establecer first_run_tabsde la propiedad.

{
  "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. Vaya a http://jslint.com/, copiar su JSON en el cuadro Origen, y haga clic en el JSLint botón. Esto se compruebe que tiene buena JSON. Esto es importante, debido a que la alimentación con formato incorrecto de JSON para el instalador dará inesperados y/o resultados no deseados. Guardar verificado el archivo para referencia futura.

  2. Hacer una copia de su verificado JSON, y quitar todos los espacios y nuevas líneas. El programa de instalación de Chrome no puede controlar los saltos de línea; incluyendo los saltos de línea se traducirá en una instalación dañada que tiene que ser eliminado a través del registro de la cirugía y el manual de la eliminación de archivos. La eliminación de los espacios puede no ser necesario, pero coincide con lo que la instalación de los autores hicieron con el defecto de JSON. La mina es la que se muestra a continuación.

{"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. Ejecutar el nuevo JSON sin espacios a través de JSLint para asegurarse de que usted no introducir errores.

  2. Copia el verificada JSON sin espacios o saltos de línea en una dirección URL de codificador. He utilizado URL Codificar/Decodificar en Línea. Guardar la codificado en JSON para su uso en el instalador y para referencia en el futuro. Mi codificado en JSON se muestra a continuación.

%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

Escribir un Instalador de Windows Transformación

  1. Inicio Orca.
  2. Abrir la descarga de Chrome para empresas MSI archivo como de sólo lectura. (Supongo que se podría editar el archivo real, pero me gusta usar transforma así que siempre tengo el suministrado por el proveedor de archivo como una línea de base si las cosas salen mal.) He descargado Chrome para empresas 38 de 64 bits, y el nombre de archivo googlechromestandaloneenterprise64.msi.
  3. En la Transformación de menú, seleccione Nueva Transformación. Ahora todos los de Windows Installer tablas de base de datos son editables porque va a editar un nuevo archivo de transformación.
  4. Seleccione la tabla de propiedades.
  5. Haga clic en la Propiedad de columna y haga clic en "Add Row". Establezca la Propiedad MASTER_PREFERENCES, y establecer el Valor a su URL codificado en JSON. Este código se aplicará durante la implementación, y se guarda como la instalación de la master_preferences archivo por el instalador.
  6. Seleccione la tabla CustomAction, y busque la BuildInstallCommand acción.
  7. Haga doble clic en la celda de Destino para la BuildInstallCommand acción para que sea editable.
  8. Cerca del final del texto, eliminar el existente codificado en JSON siguientes installerdata= y reemplazarlo con el nuevo nombre de la propiedad en los soportes. Asegúrese de mantener las comillas de cierre. Se debe tener este aspecto: installerdata=[MASTER_PREFERENCES]"
  9. Presione Enter para finalizar la edición de la celda.
  10. En la Transformación de menú, haga clic en Generar Transformar... y guardar el nuevo archivo MST. Me salvó la mía como E:\Chrome for Business 38 (64-bit)\MasterPreferences.mst.
  11. Salida De La Orca.

Nota: es necesario el uso de una propiedad, en lugar de introducir el JSON directamente en la acción personalizada debido a la acción personalizada campo de Destino es sólo 255 caracteres de longitud. El esquema de que la tabla no puede ser cambiado, y más personalizado JSON tomaría la longitud total del campo por encima del límite. El uso de una propiedad evita la limitación de la longitud, como no hay un límite práctico a la longitud de un valor de la propiedad.

Instalar Chrome con su Transformación

  1. Abra una ventana de Símbolo del sistema con privilegios Administrativos.
  2. Instalar Google Chrome con su transformación mediante el establecimiento de la TRANSFORMS de la propiedad a su nombre de archivo. Activar el registro para ayudarle a encontrar nada malo. Mediante mi ejemplo carpetas y suponiendo que haya iniciado la sesión como Administrador: 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. Si Chrome instala sin errores, intente ejecutarlo como diferentes, el usuario no administrativo para garantizar que la configuración se propaga correctamente.
  4. Por último, configure su sistema de distribución con el instalador y el archivo de transformación. Yo uso de System Center Configuration Manager 2012 R2. Mi línea de comandos para esta Aplicación es similar a la siguiente: msiexec /package "googlechromestandaloneenterprise64.msi" /quiet TRANSFORMS="MasterPreferences.mst" /l*v "%TEMP%\ChromeInstallationLog.txt" Esto da a mi que los usuarios de una app-store-como la experiencia con el Administrador de Configuración del Centro de Software de aplicación, hojas de control del escritorio y la barra de tareas los iconos únicamente con el usuario, y evita el molesto de la primera ejecución de experiencias. Este es mi preferido de la experiencia de usuario en general, pero es especialmente útil para el público-que enfrentan los equipos, como en un laboratorio de computación, donde la unidad de disco duro se perderán los cambios en cada reinicio, y por lo tanto cada inicio de sesión es el "primero" de inicio de sesión.

Notas

Véase también el de Google documentación en el archivo "master_preferences" archivo, que cubre un subconjunto de las opciones disponibles, pero no dicen cómo hacer la configuración en la máquina durante la instalación.

Gracias a grt@chromium.org por señalar la MSI posibilidad de personalización. Mi objetivo aquí era ampliar la información para proporcionar una completa explicación y solución de ejemplo. Espero que sea de ayuda.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: