Сервис для
сео - оптимизаторов

Найди ошибки на сайте
Ошибки мешают продвижению сайта
Исправь ошибки на сайте
Сайт без ошибок продвигать легче
Получи новых клиентов
Новые клиенты принесут больше прибыль

Как остановить первый запуск сообщений в Google Chrome

  1. Предыдущие методы
  2. Отключение автообновлений
  3. Подавление проверки браузера по умолчанию, первый запуск и настройка домашней страницы
  4. Главный файл настроек
  5. Исправление № 1
  6. Исправление № 2
  7. Но ждать…
  8. Конечный продукт
  9. Обзор скрипта
  10. Использование: Каспер
  11. Использование: Non-Casper
  12. Резюме

Привет всем, это будет еще один из тех «я должен был что-то сделать для клиента, и поэтому я решил поделиться» блогами. Вы были предупреждены!

В рамках обычной школьной установки нам потребуется развернуть все приложения по следующим критериям:

  1. Автообновления отключены
    • Обновления будут управляться любой системой, которую мы установили (обычно Munki или Casper), что позволяет нам проверять обновления как на наличие проблем, так и на совместимость с конкретным сайтом каждого клиента.
  2. Минимальные сообщения первого запуска
    • Включая «Что нового», приложение по умолчанию и начальные экраны настройки, поскольку мы обнаружили, что они могут добавить дополнительное отвлечение, особенно для студентов и / или использования лабораторных компьютеров Mac.

В этом конкретном случае я искал лучший способ установить и / или отключить эти элементы для Google Chrome на OS X.

Предыдущие методы

Один из наших предыдущих методов заключался в упаковке выбранного содержимого ~ / Library / Application Support / Google / Chrome / и развертывании его в пользовательском шаблоне. * Дрожь *

С небольшим количеством свободного времени я решила взглянуть на «Лучший путь». Если возможно, я хотел 100% скриптовый метод, который не требовал от меня упаковки каких-либо файлов. Это позволило бы мне использовать сценарий в нескольких сценариях, включая шаблоны управления решениями.

Отключение автообновлений

Это было легко, мы уже использовали профиль конфигурации из Грег Нигл это отключает проверку обновлений для Google Chrome и Google Earth. Критерии 1 решены!

Подавление проверки браузера по умолчанию, первый запуск и настройка домашней страницы

После долгих исследований я нашел несколько указателей на что-то, называемое «Master Preferences File»:

Для этого необходимо настроить файл настроек Google (файл JSON) с нужными мне настройками, а затем развернуть его в / Library / Google. Новый пользователь будет использовать этот файл в качестве настроек по умолчанию при первом запуске Google Chrome…

Новый пользователь будет использовать этот файл в качестве настроек по умолчанию при первом запуске Google Chrome…

Главный файл настроек

Итак, как хороший маленький администратор Mac, я создал свой файл шаблона (вы можете найти копию Вот если хотите), создайте каталог с именем «Google» в / Library и поместите файл внутрь.

Давайте проверим это!

Давайте проверим это

О ... .Что?

Все остальное, что я установил, прошло нормально, кроме этого. Оказывается, в течение некоторого времени была открытая ошибка в 'suppress_first_run_default_browser_prompt', которая не учитывалась Google Chrome.

Сколько?

2 с половиной года:

Ну, это отстой.

Исправление № 1

После еще нескольких проб и ошибок (и, как ни странно, Google), я обнаружил, что если существует пустой файл в ~ / Library / Application Support / Google / Chrome / First Run, этот экран первого запуска не будет отображаться вообще. Brilliant!

Я написал супер-базовый сценарий bash для создания этого файла и его пути к каталогу для входа в домашнюю область пользователя и перепроверил.

Я написал супер-базовый сценарий bash для создания этого файла и его пути к каталогу для входа в домашнюю область пользователя и перепроверил

Ох ... что теперь?

Оказывается, что этот файл «Первый запуск» не только подавляет запросы браузера, но и пропускает проверку и извлечение главного файла настроек.

После дополнительных испытаний, проб и ошибок я обнаружил, что на самом деле могу использовать основной файл настроек, переименовать его в «Настройки» и добавить его в ~ / Library / Application Support / Google / Chrome / Default, и он будет работать.

Исправление № 2

Хорошо, я получил это. Итак, чтобы написать это, мне нужно будет выполнить следующие задачи:

  1. Создайте структуру папок и файл в доме пользователя по адресу:
    • ~ / Библиотека / Поддержка приложений / Google / Chrome / Первый запуск
  2. Создайте структуру папок и файл в доме пользователя по адресу:
    • ~ / Библиотека / Поддержка приложений / Google / Chrome / По умолчанию / Настройки
  3. Заполните файл настроек желаемым содержимым.

Исходя из вышеуказанных требований, я переписал некоторые сценарии bash, чтобы выполнить вышеуказанные задачи для вошедшего в систему пользователя, с целью запуска сценария при входе в систему для каждого пользователя.

Но ждать…

Но потом я подумал. Что если я хочу больше гибкости? Что делать, если я не хочу сбрасывать какие-либо другие параметры, которые пользователь, возможно, уже настроил, а просто записать параметры, которые я хочу? А что если я захочу установить настройки только один раз, а затем позволить пользователям изменять их по своему усмотрению?

Это все было бы возможно, но мне нужно было бы прекратить рассматривать файл настроек как текстовый файл и правильно обрабатывать его как файл JSON. Который, после обсуждения с Дэвид Чувствовалось, что это за пределами Bash и гораздо больше задач для Python.

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

Конечный продукт

После некоторого тестирования мне наконец-то удалось получить скрипт, который работал и делал то, что мне нужно. Вы можете найти копию Вот , Этот сценарий был разработан для запуска пользователем root во время процесса входа в систему или сеанса другого пользователя.

Он был написан в первую очередь с учетом интересов Каспера, что позволяет вам запускать его как политику для триггера «Вход» и указывать пользовательскую домашнюю страницу…

... и поведение (подробнее об этом ниже).

и поведение (подробнее об этом ниже)

Так что же это делает?

Обзор скрипта

Скрипт следует следующему пути / логике:

  1. Строки 27-33: попробуйте собрать значения $ 3, $ 4 и $ 5 из сеанса (при запуске из Casper при входе в систему они будут соответствовать «входу в систему в имени пользователя», значению для URL-адреса домашней страницы и значению для поведения соответственно)
  2. Строки 35-37: если $ 3 меньше 1 символа в длину (например, не имеет значения), извлеките данные пользователя, вошедшего в систему, используя Одобренный Apple метод ,
  3. Строки 39-43: попробуйте и используйте это, чтобы получить путь к домашней папке пользователя. Выход, если это не может быть получено
    1. Мы не хотим, чтобы он пытался написать в неправильное место.
  4. Строки 45-49: если $ 4 меньше 1 символа в длину (например, не имеет значения), установите значение домашней страницы «http://www.google.co.uk».
    1. Не стесняйтесь изменить это по желанию.
  5. Строки 51-52: Если $ 5 меньше 1 символа в длину (например, не имеет значения), установите значение поведения «SKIP».
    1. Подробнее об этом позже!
  6. Строки 54-59: установить набор переменных для расположения файлов и каталогов
  7. Строки 61-65: Распечатайте обнаруженные значения.
    1. На Каспере они будут видны в журналах политики.
  8. Строки 69-71: проверьте наличие файлового каталога «Первый запуск» и создайте его, если он не существует.
  9. Строки 74-78: Попробуйте создать файл «Первый запуск». Выйдите, если это невозможно.
    1. Без этого решение не сработает, поэтому лучше выйти, чем примерить солдат.
  10. Строки 80-85: Попробуйте изменить владельца этого файла и каталога на вошедшего в систему пользователя. Выйдите, если это невозможно.
  11. Строки 89-95: проверьте каталог файлов «Предпочтения» и создайте его, если он не существует. Выйдите, если это невозможно.
  12. Строка 97: проверьте, существует ли файл «Preferences»…
    1. Строки 98-100: Если это так, и если для режима установлено значение «Пропустить», успешно завершите работу.
    2. Строка 101: если это так, проверьте, не установлено ли поведение «UPDATEONCE»…
      1. Строка 102: если это так, проверьте, присутствует ли файл «Запустить один раз»…
        1. Строки 103-104: если это так, выйдите успешно.
        2. Строки 105-106: Если нет, создайте его и пропустите эти операторы «Если».
      2. Строки 107-108: проверьте, установлено ли поведение на «ОБНОВЛЕНИЕ», и продолжайте, если это так.
    3. Строки 109-115: если файл «Preferences» не существует, попробуйте создать его. Выйдите, если это невозможно.
  13. Строки 120-124: попробуйте прочитать файл «Preferences» как файл JSON. Если это не удалось, установите в файле JSON структуру верхнего уровня (фигурные скобки «{}»)
  14. Строки 128-159: при наличии обновите указанные настройки до требуемых значений, в противном случае запишите их как новые значения.
  15. Строки 161-163: записать этот файл JSON обратно на диск.
  16. Строки 166-170: попробуйте изменить владельца этого файла и каталога на зарегистрированного пользователя. Выйдите, если это невозможно.

Варианты поведения

Таким образом, этот флаг будет активирован, только если скрипт обнаружит, что файл настроек уже существует в

~ / Библиотека / Поддержка приложений / Google / Chrome / По умолчанию / Настройки

  • "ПРОПУСКАТЬ"
    • Это позволит пропустить любые изменения в файле настроек для этой учетной записи пользователя.
  • «UPDATEONCE»
    • Это позволит проверить наличие файла в ~ / Library / Application Support / Google / Chrome / Default / PreferencesSetOnce. Если он найден, он пропустит любые изменения в файле настроек для этой учетной записи пользователя. Если он не найден, он создаст его и внесет изменения, как описано выше.
    • Это действует как профиль или MCX, используя опцию «Set-Once»
  • "ОБНОВИТЬ"
    • Это также внесет изменения в файл настроек, как описано выше.
    • Это действует как профиль или MCX, используя опцию «Set-Often»

Использование: Каспер

Этот скрипт был изначально написан для использования с решением Casper Mac Management. Для этого использования его следует загрузить на сервер и запустить (с нужными параметрами) с помощью политики, установленной как:

  • Триггер: Логин (только)
  • Частота: Текущая

Использование: Non-Casper

Хотя это явно не проверено, я не вижу причины, по которой скрипт не будет работать с Launch Agent или, более рекомендуется, использовать боковик ,

Если вы пойдете по этому маршруту, вы можете настроить домашнюю страницу, отредактировав значение в строке 47, и поведение, отредактировав значение в строке 52.

Резюме

Ну, этот пошел немного долго! Я надеюсь, что, по крайней мере, некоторые из вас получат пользу от моего первого взлома на Python. Я все еще учусь и хотел бы получить какие-либо отзывы или рекомендации!

Как всегда, если у вас есть какие-либо вопросы, вопросы или комментарии, сообщите нам об этом ниже, и я постараюсь ответить и углубиться в столько, сколько смогу.

Обычный отказ от ответственности:

Хотя автор позаботился о том, чтобы предоставить нашим читателям точную информацию, пожалуйста, используйте свое усмотрение, прежде чем действовать на основании информации, основанной на сообщении в блоге. Amsys не возместит вам какую-либо компенсацию, если вы когда-либо понесете потери / неудобства / ущерб из-за / при использовании информации в этом блоге.

Что?
Сколько?
О теперь?
Что если я хочу больше гибкости?
Что делать, если я не хочу сбрасывать какие-либо другие параметры, которые пользователь, возможно, уже настроил, а просто записать параметры, которые я хочу?
А что если я захочу установить настройки только один раз, а затем позволить пользователям изменять их по своему усмотрению?
Так что же это делает?