Google Chrome for Business를 배포 할 때 기본 설정을 맞춤 설정하려면 어떻게해야하나요?


14

추가 바로 가기를 만들지 않고 첫 번째 프롬프트를 표시하지 않고 조직에 비즈니스 용 Chrome을 배포하고 싶습니다. Chrome for Business 설치 프로그램은 Windows Installer 파일 (MSI)이지만 실행 가능한 설치 프로그램의 래퍼 일뿐입니다. 많은 MSI 설치 관리자와 같이 msiexec 명령 줄에서 설정할 수있는 CreateDesktopShortcut과 같은 속성이 없습니다. 설치를 어떻게 사용자 정의 할 수 있습니까? 설치 스크립트를 작성하고 유지 관리하지 않는 것이 좋습니다.

답변:


24

Chrome 은 기본 사용자 환경 설정을 master_preferences 파일에 저장합니다 . 이것은 JSON 형식 의 텍스트 파일이며 distribution설치 중에 읽을 설정이 포함 된 객체를 포함합니다. 기존 Chrome 설치에서이 파일을 편집해도 설치가 이미 그 시점에서 이미 발생했기 때문에 문제를 해결하지 못합니다. 해결책은 변환 파일을 사용하여 사용자 정의 된 master_preferences 파일을 Windows Installer 설치 프로세스통합하는 것 입니다. 이를 위해 다음 단계를 수행하십시오.

필요한 설치 프로그램 및 도구 수집

  1. Chrome for Business 설치 프로그램 .
    64 비트 버전을에 다운로드합니다 E:\Chrome for Business 38 (64-bit).
  2. Windows 8.1 용 Microsoft Windows SDK (Software Development Kit) .
    이 파일을에 다운로드하겠습니다 E:\WindowsSDK8.1.
  3. Windows SDK를 설치하십시오 E:\WindowsSDK8.1.\sdksetup.exe..
  4. Orca (Windows Installer 데이터베이스 편집기)를 설치하십시오
    msiexec /package "C:\Program Files (x86)\Windows Kits\8.1\bin\x86\Orca-x86_en-us.msi".

사용자 정의 된 master_preferences 파일 작성

  1. 사용 가능한 배포 설정을 검토하십시오. 이것들은 distributionmaster_preferences 파일의 익명 객체 안에 포함 된 객체의 속성입니다 . 다음 설정 목록은 / trunk / src / chrome / installer / util /의 두 개의 Chromium 소스 파일 master_preferences_constants.hmaster_preferences_constants.cc 를 결합하여 컴파일되었습니다 . 속성에 대한 값이 포함되어 있지 않으므로 다음은 유효한 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. 사용 가능한 비 분배 설정을 검토하십시오. 이 설정 은 JSON 에서 객체 외부 로 이동 distribution합니다. 사용자가 처음 Chrome을 실행할 때 사용자 프로필에 적용됩니다. 전체 설정 목록은 Chromium 소스 파일 pref_names.hpref_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 Installer 파일에 내장 된 파일입니다 (가독성을 위해 여러 줄로 확장).
{
  "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. JSLint를 통해 공백없이 새 JSON을 실행하여 오류가 발생하지 않도록하십시오.

  2. 공백이나 줄 바꿈없이 확인 된 JSON을 URL 인코더에 복사하십시오. 내가 사용하는 URL 인코딩 / 디코딩 온라인 . 설치 프로그램에서 사용하고 나중에 참조 할 수 있도록 인코딩 된 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 Installer 변환 작성

  1. 오르카를 시작하십시오.
  2. 다운로드 한 Chrome for Business MSI 파일을 읽기 전용으로 엽니 다. (실제 파일을 편집 할 수 있다고 가정하지만 변환을 사용하는 것이 좋기 때문에 공급 업체가 제공 한 파일을 문제가 발생하면 항상 기준으로 사용합니다.) Chrome for Business 38 64 비트를 다운로드했으며 파일 이름은 googlechromestandaloneenterprise64.msi입니다.
  3. 변환 메뉴에서 새로운 변환 . 이제 새 변환 파일을 편집 중이므로 모든 Windows Installer 데이터베이스 테이블을 편집 할 수 있습니다.
  4. 특성 테이블을 선택하십시오.
  5. 속성 열을 마우스 오른쪽 버튼으로 클릭하고 "행 추가"를 클릭하십시오. 속성을 MASTER_PREFERENCES로 설정하고 값을 URL 인코딩 JSON으로 설정하십시오. 이 코드는 배포 중에 적용 master_preferences되며 설치 관리자가 설치 파일 로 저장 합니다.
  6. CustomAction 테이블을 선택하고 BuildInstallCommand 조치를 찾으십시오.
  7. BuildInstallCommand 조치의 대상 셀을 두 번 클릭하여 편집 가능하게하십시오.
  8. 텍스트 끝 근처에서 기존 인코딩 된 JSON을 삭제하고 installerdata=괄호 안의 새 속성 이름으로 바꿉니다. 닫는 인용 부호를 유지하십시오. 다음과 같아야합니다. installerdata=[MASTER_PREFERENCES]"
  9. 셀 편집을 마치려면 Enter를 누르십시오.
  10. 변환 메뉴 에서 변환 생성…을 클릭 하고 새 MST 파일을 저장하십시오. 나는을 (를)로 저장했습니다 E:\Chrome for Business 38 (64-bit)\MasterPreferences.mst.
  11. Orca를 종료하십시오.

참고 : 사용자 정의 조치 대상 필드의 길이는 255 자 이므로 JSON을 사용자 정의 조치에 직접 삽입하는 대신 특성을 사용해야합니다 . 해당 테이블의 스키마는 변경할 수 없으며 대부분의 사용자 정의 JSON은 해당 필드의 전체 길이를 한도를 초과합니다. 속성 값의 길이에는 실질적인 제한이 없으므로 속성을 사용하면 길이 제한이 방지됩니다.

변환과 함께 Chrome 설치

  1. 관리자 권한으로 명령 프롬프트 창을 엽니 다.
  2. TRANSFORMS속성을 파일 이름 으로 설정하여 변형 된 Chrome을 설치하십시오 . 잘못된 것을 찾는 데 도움이되도록 로깅을 켜십시오. 내 예제 폴더를 사용하고 관리자로 로그인했다고 가정합니다. 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이 오류없이 설치되면 다른 비 관리 사용자로 Chrome을 실행하여 설정이 올바르게 전파되는지 확인하십시오.
  4. 마지막으로 설치 관리자 및 변환 파일을 사용하여 배포 시스템을 구성하십시오. 내가 사용하는 시스템 센터 구성 관리자 2012 R2를 . 이 응용 프로그램의 명령 줄은 다음과 비슷합니다. msiexec /package "googlechromestandaloneenterprise64.msi" /quiet TRANSFORMS="MasterPreferences.mst" /l*v "%TEMP%\ChromeInstallationLog.txt" 이 기능을 사용하면 Configuration Manager의 Software Center 응용 프로그램에 대한 앱 저장소와 같은 환경을 제공하고 사용자 만 데스크톱 및 작업 표시 줄 아이콘을 제어 할 수 있으며 첫 번 째 실행 환경을 피할 수 있습니다. . 이것은 내가 선호하는 사용자 경험이지만 일반적으로 컴퓨터 실과 같이 컴퓨터를 다시 시작할 때마다 하드 드라이브 변경 사항이 손실되는 모든 공용 컴퓨터에 특히 유용합니다. 따라서 모든 로그온은 "첫 번째"로그온입니다.

노트

master_preferences 파일에 대한 Google 문서를 참조하십시오.이 파일 에는 사용 가능한 설정의 하위 세트가 포함되어 있지만 설치 중에 시스템으로 설정을 가져 오는 방법은 나와 있지 않습니다.

MSI 사용자 정의 가능성 을 지적한 grt@chromium.org 에게 감사합니다 . 여기서 목표는 정보를 확장하여 포괄적 인 설명과 예제 솔루션을 제공하는 것이 었습니다. 도움이 되길 바랍니다.


이것은 훌륭한 가이드입니다. 당신은 영웅입니다. :-)
usershmusername

아직도 사건 이요? 이를 위해서는 Google의 Soemone을 해고해야합니다. 레지스트리는 "it"이어야합니다. Wix에서 간단한 5 분 작업으로 롤아웃 할 수있는 파일 이름과 위치를 가리키는 레지스트리 항목처럼 간단 할 수 있습니다.
TomTom

0

의견을 게시 할 담당자가 충분하지 않습니다. Jay의 가이드를 사용하여 다운로드 한 파일 형식을 자동으로 실행하는 데 문제가 발생했습니다. 그리고 이것은 현재 그것을 할 수있는 유일한 방법으로 보입니다.

https://bugs.chromium.org/p/chromium/issues/detail?id=476668

-이 링크는 AFAIK가 수정되지 않은 버그를 나타냅니다. 기자는 GPO를 통해 d / l에서 자동으로 실행되도록 특정 파일 형식을 설정할 수 있기를 원합니다. 보안상의 영향으로 인해 유스 케이스가 제한적이지만 엔터프라이즈 배치에서는 때때로 필요합니다. master_preferences와 함께 .mst에서 Jay의 기술을 사용하여 얻을 수 있습니다. (Chick의 의견에 따라 편집)

Tomtom에 동의합니다. 더 쉬운 방법이 있어야합니다. 대부분의 경우 Google의 .admx이면 충분합니다.


담당자 수에 관계없이 링크 전용 답변이 삭제 될 수 있습니다. 이것이 스스로 해답으로 이해 될 수 있고 당신이 말하는 것을 확인하거나 더 깊이 파고 싶어하는 사람들을위한 링크를 참조 할 수 있습니까? serverfault.com/help/how-to-answer
병아리
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.