Как запустить Chrome, используя указанный "профиль пользователя"?

Я использую новую встроенную функцию "Пользователи" в Chrome, чтобы легко переключаться между домашней и рабочей учетными записями. Однако Chrome запоминает "последний" профиль пользователя, который вы выбрали при запуске новых окон. Это проблема, если я в последний раз закрываю свой "Домашний" профиль, потому что когда я нажимаю ярлык "Электронная почта" на моей панели задач, потому что он переходит на mail.mycompany.com с использованием моего Домашнего профиля, и я не захожу в систему.

Я хотел бы изменить ярлык на веб-почту компании, чтобы передать параметр, который говорит Chrome всегда запускаться как пользователь по умолчанию, независимо от того, кто последний использовал.

Примечание: я пробовал параметр командной строки --user-data-dir=…и это, кажется, делает что-то совсем другое, полностью изолированное от функциональности Users, встроенной в Chrome. Возможно, я использую это неправильно, но, пожалуйста, проверьте это, прежде чем предположить, что он делает то же самое и опубликовать ответ;-)

12 ответов

Решение

Аргумент командной строки, который вы ищете --profile-directory=Default,

Вот полная командная строка для Mac OS X:

open -a "Google Chrome" --args --profile-directory=Default

Обратите внимание open Поэтому команда не запускает новые экземпляры, так как многие приложения не смогут работать с несколькими экземплярами, работающими под одним и тем же пользователем. Однако есть -n аргумент, чтобы сделать это в любом случае, но это может сломать приложение.

И для Linux:

google-chrome --profile-directory=Default

Он ожидает, что внутренние имена профилей: мой второй профиль, названный "Лимонад" Chrome, будет --profile-directory="Profile 1",

Определите имя профиля методом проб и ошибок или просмотрите Local State файл (см. ответ Джастина Бьюзера).

В Mac OS X каталоги расположены в ~/Library/Application Support/Google/Chrome, В Linux они расположены в ~/.config/google-chrome, В Win7 они расположены в %USERPROFILE%\AppData\Local\Google\Chrome\User Data,

Метод графического интерфейса с соответствующим значком (для Windows)

  1. Тип chrome://settings/ в адресной строке (или Menu > Settings)
  2. Прокрутите вниз до Users раздел
  3. Выберите пользователя, отмеченного (current) & нажмите Edit кнопкавведите описание здесь
  4. Теперь нажмите Add desktop shortcutвведите описание здесь

Необязательно Переключитесь на любой другой профиль и повторите шаги 1-4

Это создает ярлык для вашего профиля с правильным изображением на значке тоже. Вы можете перетащить несколько профилей на панель задач Windows. Ярлык на значке Windows 7 указывает на

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Default"
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --profile-directory="Profile 1"
and so on...

Другой, хотя и менее удобный способ выбора профиля, который нужно запустить, - это отредактировать файл Local State в каталоге пользовательских данных Chrome и выполнить поиск "last_used": если вы измените значение, которое он перечисляет, на другой профиль, который откроет в следующий раз, когда вы запустите Chrome в обычном режиме (если, конечно, вы не используете переключатель, упомянутый выше).

Я упоминаю об этом только в случае, если кто-то заинтересован в более глубоком решении, этот файл Local State содержит отформатированный список настроек в формате JSON, который некоторые могут найти полезным.

--profile-directory бесполезно, если у вас уже открыт другой профиль или последнее закрытое окно связано с другим профилем.

У меня есть ярлыки приложений с одним профилем. Ярлыки приложений имеют --profile-directory="Profile 3" плюс --app="..

Ярлык профиля по умолчанию имеет --profile-directory="Default",

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

в OSX, используяopen -a "Google Chrome"...версия мне не подошла.

Но это работает при использовании полного пути:

      /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --profile-directory="Profile 1"

Я только что проверил это с 4 профилями в версии Chrome 22.0.1229.94 m:

С уважением, я думаю, что путаница заключается в следующем:

  • Если закрыть все экземпляры Chrome, а затем запустить Chrome с простым chrome.exe без каких-либо переключателей этот новый запущенный экземпляр откроется с профилем самого последнего закрытого окна / экземпляра Chrome.

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

  • Вот отличный способ открыть Chrome на Mac с новым профилем пользователя:

          open -n -a "Google Chrome" --args --user-data-dir=$(mktemp -d)
    

    Это все еще работает с Chrome Windows по состоянию на 24.04.2013. Я создал ярлык для каждого из 3 профилей, между которыми я обычно переключаюсь, и назначил каждому ярлыку уникальную "клавишу быстрого доступа".

    Еще одна тонкость - значок пользователя вашего профиля находится в подкаталоге профиля, например: %USERPROFILE%\AppData\Local\Google\Chrome\User Data\Profile 1. Я назначил значок пользователя моего профиля ярлыку Windows.

    Я не могу надёжно разместить 3 ярлыка отдельно на панели задач Win7; победа 7, кажется, теряет счет после 2.

    Я написал сценарий для запуска Chrome с заданным профилем, выбранным по удобному для пользователя имени профиля (а не по имени каталога профиля). Это для Linux, в частности для Debian 11. Мы могли бы настроить его для других систем со ссылкой на другие ответы. Он использует jq.

    Первый аргумент — имя профиля, остальные передаются вgoogle-chromeкомандная строка.

    Пример использования:

          chrome_profile "Profile Name" https://google.com/
    

    chrome_profile:

          #!/bin/bash -eua
    profile_name=$1; shift
    local_state=~/.config/google-chrome/Local\ State
    profile_key=`< "$local_state" jq -r '
            .profile.info_cache | to_entries | .[] |
            select(.value.name == env.profile_name) | .key'`
    [ -n "$profile_key" ]
    google-chrome --profile-directory="$profile_key" "$@"
    

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

    chrome_profiles_list:

          < ~/.config/google-chrome/Local\ State \
    jq -r '.profile.info_cache | to_entries | map(.key + ": " + .value.name) | .[]' |
    sort -k1,1 -k2,2n
    

    Ответ Сэма Уоткинса, приведенный выше, мне не совсем подошел, так как у меня установлен Chromium [в частности, версия 90.0.4430.212 (сборка для разработчиков), построенная на Debian 10.9 и работающая на Debian 10.9 (32-разрядная версия)] вместо Google Chrome, мне также пришлось внесите еще пару изменений. Отдайте должное ответу Сэма за основные функции. Вот мое адаптированное решение, обычно скопированное с их, отмечаю внесенные впоследствии изменения.


    Это для Линукса. Он использует jq. Возможно, вам придется запустить один раз, прежде чем использовать сценарии.

    Первый аргумент — это имя профиля, остальные передаются в командную строку Chrome.

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

    Если запустить без каких-либо аргументов, откроется хром, предлагающий выбор известных профилей. (Но если Chrome уже запущен, он фактически ничего не делает. Конечно, если он уже запущен, вы можете просто выбрать другой профиль, щелкнув значок своего профиля рядом с адресной строкой.)

    Пример использования:

    chromium_profile «Имя профиля» https://google.com/

    chromium_profile:

          #!/bin/bash -eu
    profile_name=$1; shift
    local_state=~/.config/chromium/Local\ State
    profile_key=`< "$local_state" jq -r '
        .profile.info_cache | to_entries | .[] |
        select(.value.name == "'"$profile_name"'") | .key'`
    [ -n "$profile_key" ]
    chromium --profile-directory="$profile_key" "$@"
    

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

    chromium_profiles_list:

          < ~/.config/chromium/Local\ State \
    jq -r '.profile.info_cache | to_entries | map(.key + ": " + .value.name) | .[]' |
    sort -k1,1 -k2,2n
    

    Специально для адаптации ответа Сэма мне пришлось

    • измените пути с google-chrome на chromium. Для других браузеров, основанных на Chrome/Chrome (например, Vivaldi), аналогичное изменение, вероятно, сработает. Вы можете окончательно найти путь, запустивfind ~ -name Local\ State
    • изменить разрешения на моем~/.config/chromium/Local\ Stateфайл, чтобы разрешить доступ - поскольку на машине, которую я только что запустил, существуют только мой пользователь и root

    chmod 777 ~/.config/chromium/Local\ State

    • Хотя jq, очевидно, установился нормально, эта часть кода Сэма просто вернула мне пустые строки:env.profile_name.По какой-то причине переменная среды не прошла. Поэтому я использую ужасные кавычки, чтобы вместо этого вставить значение переменной непосредственно в командную строку jq.

    По состоянию на апрель 2016 года на Yosemite мне удалось найти Google Apps для всех моих 15 профилей Google (да, 15). Некоторые были в ~/Applications/Chrome Apps, хотя нам сказали, что они уходят.

    Чтобы найти их все, я должен был сделать это:

    1. Перейдите в ~ / Библиотека / Поддержка приложений /Google/Chrome.
    2. В Spotlight поиск по виду: приложение
    3. Найдите 300kb "Приложения" с такими именами, как Gmail (имя пользователя).
    4. Скопируйте те, которые вы хотите, и переименуйте их, затем поместите в выбранную папку "Приложения".

    Я думаю, что более новая версия Chrome уже решила эту проблему. Когда вы входите с новым пользователем в Chrome, он автоматически создает значок ярлыка для этого пользователя на рабочем столе.

    Другие вопросы по тегам