Google Chrome เก็บการตั้งค่าผู้ใช้เริ่มต้นในmaster_preferencesไฟล์ นี่เป็นไฟล์ข้อความในรูปแบบJSONและรวมถึงdistribution
วัตถุที่มีการตั้งค่าที่จะอ่านระหว่างการติดตั้ง การแก้ไขไฟล์นี้ในการติดตั้ง Chrome ที่มีอยู่ไม่สามารถแก้ปัญหาได้เนื่องจากการติดตั้งได้เกิดขึ้นแล้วในตอนนั้น วิธีแก้ไขคือการรวมไฟล์ master_preferences ที่กำหนดเองเข้ากับกระบวนการติดตั้ง Windows Installerโดยใช้ไฟล์การแปลง ทำตามขั้นตอนต่อไปนี้เพื่อทำสิ่งนี้ให้สำเร็จ
รวบรวมตัวติดตั้งและเครื่องมือที่จำเป็น
- Google Chrome สำหรับติดตั้งธุรกิจ
ฉันจะดาวน์โหลดรุ่น 64 E:\Chrome for Business 38 (64-bit)
บิต
- ไมโครซอฟท์ Windows ซอฟต์แวร์พัฒนา Kit (SDK) สำหรับ Windows 8.1 ฉันจะดาวน์โหลดนี้
E:\WindowsSDK8.1
- ติดตั้ง SDK ของ
E:\WindowsSDK8.1.\sdksetup.exe
Windows:
- ติดตั้ง Orca (แก้ไขฐานข้อมูลการติดตั้ง
msiexec /package "C:\Program Files (x86)\Windows Kits\8.1\bin\x86\Orca-x86_en-us.msi"
Windows):
เขียนไฟล์ master_preferences ที่กำหนดเอง
- ตรวจสอบการตั้งค่าการกระจายที่มีอยู่ เหล่านี้เป็นคุณสมบัติของ
distribution
วัตถุซึ่งมีอยู่ในวัตถุที่ไม่ระบุชื่อในไฟล์ master_preferences รายการต่อไปนี้การตั้งค่าที่รวบรวมโดยรวมสองไฟล์ที่มาโครเมี่ยม: master_preferences_constants.hและmaster_preferences_constants.cc ใน/ ลำ / 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"
}
}
- ตรวจสอบการตั้งค่าที่ไม่จำหน่าย ตั้งค่าเหล่านี้ไปนอกของ
distribution
วัตถุใน JSON พวกเขาจะนำไปใช้กับโปรไฟล์ผู้ใช้เมื่อผู้ใช้เรียกใช้ Chrome เป็นครั้งแรก รายการเต็มรูปแบบของการตั้งค่าที่มีอยู่ในไฟล์ที่มาโครเมียมpref_names.hและpref_names.ccใน/ ลำ / src / โครเมี่ยม / ทั่วไป / รายการค่อนข้างยาวดังนั้นจะแสดงเฉพาะชุดย่อยที่นี่
{
// *************** 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.
- เลือกการตั้งค่าที่คุณต้องการและเขียนไฟล์ข้อความ 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
}
}
เรียกดูไปที่http://jslint.com/คัดลอก JSON ของคุณลงในกล่องแหล่งที่มาแล้วคลิกปุ่ม JSLint สิ่งนี้จะยืนยันว่าคุณมี JSON ที่ดี สิ่งนี้สำคัญเนื่องจากการป้อน JSON ที่ไม่ถูกต้องไปยังตัวติดตั้งจะให้ผลลัพธ์ที่ไม่คาดคิดและ / หรือไม่พึงประสงค์ บันทึกไฟล์ที่ตรวจสอบแล้วสำหรับการอ้างอิงในอนาคต
ทำสำเนาของ 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}}
รัน JSON ใหม่โดยไม่มีช่องว่างผ่าน JSLint เพื่อให้แน่ใจว่าคุณไม่ได้แนะนำข้อผิดพลาดใด ๆ
คัดลอก 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
- เริ่ม Orca
- เปิดไฟล์ Chrome สำหรับธุรกิจ MSI ที่ดาวน์โหลดเป็นแบบอ่านอย่างเดียว (ผมคิดว่าคุณสามารถแก้ไขไฟล์จริง แต่ผมเช่นการใช้การแปลงดังนั้นฉันมักจะมีไฟล์ที่ผู้ขายจัดเป็นพื้นฐานหากสิ่งที่ไปเป๋.) ฉันดาวน์โหลด Chrome สำหรับธุรกิจ 38 แบบ 64
googlechromestandaloneenterprise64.msi
บิตและชื่อไฟล์เป็น
- ในการเปลี่ยนเมนูเลือกใหม่แปลง ตอนนี้ตารางฐานข้อมูล Windows Installer ทั้งหมดสามารถแก้ไขได้เนื่องจากคุณแก้ไขไฟล์แปลงใหม่
- เลือกตารางคุณสมบัติ
- คลิกขวาในคอลัมน์คุณสมบัติและคลิก "เพิ่มแถว" ตั้งค่าคุณสมบัติเป็น
MASTER_PREFERENCES
และตั้งค่าเป็น JSON ที่เข้ารหัส URL ของคุณ รหัสนี้จะถูกนำไปใช้ในระหว่างการปรับใช้และบันทึกเป็นmaster_preferences
ไฟล์การติดตั้งโดยโปรแกรมติดตั้ง
- เลือกตาราง CustomAction และค้นหาแอ็คชัน BuildInstallCommand
- คลิกสองครั้งที่เซลล์เป้าหมายสำหรับการดำเนินการ BuildInstallCommand เพื่อให้สามารถแก้ไขได้
- ใกล้กับส่วนท้ายของข้อความให้ลบ JSON ที่เข้ารหัสที่มีอยู่ต่อไปนี้
installerdata=
และแทนที่ด้วยชื่อคุณสมบัติใหม่ในวงเล็บ ให้แน่ใจว่าได้เก็บเครื่องหมายคำพูดปิด ควรมีลักษณะเช่นนี้: installerdata=[MASTER_PREFERENCES]"
- กด Enter เพื่อแก้ไขเซลล์ให้เสร็จสิ้น
- บนเมนูการแปลงให้คลิกสร้างการแปลง…และบันทึกไฟล์ MST ใหม่
E:\Chrome for Business 38 (64-bit)\MasterPreferences.mst
ฉันบันทึกเป็นเหมือง
- ออกจาก Orca
หมายเหตุ: จำเป็นต้องใช้คุณสมบัติแทนการแทรก JSON ลงในการกระทำที่กำหนดเองโดยตรงเนื่องจากฟิลด์เป้าหมายการดำเนินการที่กำหนดเองมีความยาว 255 อักขระเท่านั้น สกีมาของตารางนั้นไม่สามารถเปลี่ยนแปลงได้และ JSON ที่กำหนดเองส่วนใหญ่จะใช้ความยาวทั้งหมดของฟิลด์นั้นเกินขีด จำกัด การใช้พร็อพเพอร์ตี้เป็นการหลีกเลี่ยงการจำกัดความยาวเนื่องจากไม่มีข้อ จำกัด เชิงปฏิบัติเกี่ยวกับความยาวของค่าคุณสมบัติ
ติดตั้ง Chrome ด้วยการแปลงของคุณ
- เปิดหน้าต่างพร้อมรับคำสั่งด้วยสิทธิ์ระดับผู้ดูแล
- ติดตั้ง 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"
- หาก Chrome ติดตั้งโดยไม่มีข้อผิดพลาดให้ลองเรียกใช้ในฐานะผู้ใช้อื่นที่ไม่ใช่ผู้ดูแลระบบเพื่อให้แน่ใจว่าการตั้งค่ากำลังแพร่กระจายอย่างถูกต้อง
- สุดท้ายกำหนดค่าระบบการปรับใช้ของคุณด้วยไฟล์ติดตั้งและการแปลง ผมใช้ระบบ Center Configuration Manager 2012 R2 บรรทัดคำสั่งของฉันสำหรับแอปพลิเคชันนี้คล้ายกับสิ่งต่อไปนี้:
msiexec /package "googlechromestandaloneenterprise64.msi" /quiet TRANSFORMS="MasterPreferences.mst" /l*v "%TEMP%\ChromeInstallationLog.txt"
สิ่งนี้ทำให้ผู้ใช้ของฉันได้รับประสบการณ์ที่เหมือนแอพสโตร์ด้วยแอพพลิเคชั่น Software Center ของเครื่องมือจัดการการกำหนดค่าควบคุมการใช้งานเดสก์ท็อปและทาสก์บาร์ . นี่คือประสบการณ์การใช้งานที่ผู้ใช้ต้องการโดยทั่วไป แต่เป็นประโยชน์อย่างยิ่งสำหรับคอมพิวเตอร์สาธารณะเช่นในห้องปฏิบัติการคอมพิวเตอร์ที่การเปลี่ยนแปลงฮาร์ดไดรฟ์หายไปในการรีสตาร์ทแต่ละครั้งและการเข้าสู่ระบบทุกครั้งจะเป็นการเข้าสู่ระบบ "ครั้งแรก"
หมายเหตุ
ดูเอกสารของ Google ในไฟล์ master_preferencesซึ่งครอบคลุมส่วนย่อยของการตั้งค่าที่มี แต่ไม่ได้บอกวิธีรับการตั้งค่าลงในเครื่องระหว่างการติดตั้ง
ขอขอบคุณที่grt@chromium.orgสำหรับชี้ให้เห็นความเป็นไปได้ในการปรับแต่งของ MSI เป้าหมายของฉันในที่นี้คือการขยายข้อมูลเพื่อให้คำอธิบายที่ครอบคลุมและตัวอย่างโซลูชัน ฉันหวังว่ามันจะเป็นประโยชน์