6

Я начинаю использовать Chocolatey в сети моего отеля для установки программного обеспечения. У меня установлен домен на Win 2008, и все мои пользователи не являются администраторами.

Итак, допустим, у меня есть пользователь JOE, который не является администратором в домене (ни на компьютере), ни пользователь PETER, который является администратором в обоих, и что я вошел в систему как JOE. Когда я открываю приглашение (или powershell) от имени администратора, Windows UAC запрашивает имя пользователя / пароль администратора. Поэтому я заполняю его верительными грамотами Петра. Затем я могу установить Chocolatey (в C:\ProgramData\Chocolatey) и установить пакеты на C:\ProgramData\Chocolatey\libs . И это нормально.

Если приложение является установкой для всех пользователей (например, Sublime Text 3, установленной в папке C:\Program Users), все идет хорошо. Но когда я запускаю "однопользовательскую" установку (например, Wunderlist, которая устанавливается в C:\Users\USERNAME\AppData\...), она устанавливается в AppData PETER, а не в AppData JOE.

Если я запускаю установщик вручную, он запрашивает учетные данные PETER, но приложение устанавливается по пути пользователя JOE.

Могу ли я получить такое же поведение с Шоколадом? Я делаю что-то не так или я могу как-то обойти это?

2 ответа2

2

Я обнаружил, как это сделать как для пользователей с правами администратора, так и без прав администратора В неадминистративном разделе Chocolatey документов сказано, что для установки Chocolatey с правами администратора не нужно сначала определять переменную среды ChocolateyInstall указывающую место, где нужно установить Chocolatey, и у всех пользователей есть доступ (я использовал Папка C:\Users\Public\Chocolatey ). Эта переменная может быть установлена на уровне компьютера или пользователя. Если мы определим его на уровне компьютера, одну и ту же установку Chocolatey можно будет использовать как для установки пакетов администратора, так и для других пользователей. После установки переменной мы должны приступить к установке Chocolatey, которая может быть выполнена как с правами администратора, так и без прав администратора.

Затем, чтобы установить любой пакет, есть два способа сделать это: если он требует административного доступа, мы можем открыть административную оболочку PowerShell (или командную строку) и вызвать вместе с ней choco install <package> . Тогда приложение будет установлено как пользователь с правами администратора (ПЕТР в моем вопросе). Если для этого не требуется доступ администратора, мы можем открыть PowerShell без прав администратора (или командную строку) и вызвать вместе с ним команду choco install <package> . Приложение будет установлено для текущего пользователя (JOE в моем вопросе).

Я не проверял это, но я считаю, что другой вариант - установить переменную ChocolateyInstall уровня компьютера, указывающую на одно местоположение, и переменную ChocolateyInstall уровня пользователя, указывающую на другое местоположение. Затем, если мы установим Chocolatey от имени администратора, мы получим "основную" установку Chocolatey, которую можно использовать для установки большинства пакетов (которые требуют доступа администратора в соответствии с документацией). Если мы снова установим его как обычный пользователь, мы получим "пользовательскую" установку Chocolatey, которую можно использовать для установки некоторых конкретных пакетов (например, Wunderlist). Таким образом, этот пакет может быть установлен для любого количества пользователей, не мешая установке "admin" Chocolatey.

Недостатком является то, что при наличии двух установок Chocolatey управление пакетами должно осуществляться как на уровне администратора, так и на уровне пользователя, поэтому обновления должны выполняться как на уровне "master", так и на уровне "user".

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

Надеюсь, это поможет кому-то, ищущему это.

0

Спасибо Лоенардо Апулия за ваш ответ. Действительно помог мне сегодня. Мой пример был Slack при установке в $USERPROFILE%/AppData поэтому я столкнулся с этой проблемой. Я тоже нуждаюсь в админском и неадминистративном использовании Шоколадки.

Если вы уже установили chocolatey как администратор (как я сделал), вы можете переместить его и превратить его в не-администратора, даже в Active Directory. Тогда вы можете сохранить все свои библиотеки. По крайней мере, я это сделал 23.02.2017. Это была версия Chocolatey с открытым исходным кодом.

По умолчанию Chocolatey устанавливается в C:\ProgramData\Chocolatey

И устанавливает системную переменную среды ChocolateyInstall = C:\ProgramData\Chocolatey . (Установка этого параметра перед установкой Cocolatey приведет к установке в этом каталоге. Слишком поздно для меня; Я уже установил его.)

И добавляет C:\ProgramData\Chocolatey\bin в PATH .

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

Затем я установил разрешения для папки C:\Chocolatey для Users имеющих Full control доступ.

Затем заново установите 2 переменные среды [ ссылка ].

setx ChocolateyInstall "C:\Chocolatey" /m

/m делает это общесистемным env var, а не пользователем.

И для пути, для этого незначительного редактирования на месте, я предпочитаю редактировать реестр, а не играть с двойными кавычками в командной строке.

regedit.exe

Перейдите к HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Измените path и отредактируйте запись Chocolatey по мере необходимости и нажмите OK .

Иногда вам необходимо повторно войти в систему, чтобы увидеть новые значения переменных env. [ обсуждение в комментариях к вопросу ]

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .