Chocolatey como usuário não administrador

4

Estou começando a usar o Chocolatey na rede do meu hotel para instalações de software. Eu tenho um domínio definido no Win 2008 e todos os meus usuários não são administradores.

Então, digamos que eu tenha um usuário JOE que não seja um administrador no domínio (nem na máquina) e um usuário PETER que seja admin em ambos, e que eu esteja logado como JOE. Quando eu abro um prompt (ou powershell) como admin, o Windows UAC pede um nome de usuário / senha de administrador. Então eu preencho com as credenciais do PETER. Então eu posso instalar o Chocolatey (em C:\ProgramData\Chocolatey ) e instalar pacotes em C:\ProgramData\Chocolatey\libs . E isso está bem.

Se o aplicativo for uma instalação para todos os usuários (como o Sublime Text 3, instalado na pasta C:\Program Users ), tudo ficará OK. Mas quando executo uma instalação de "usuário único" (como o Wunderlist, que está instalado em C:\Users\USERNAME\AppData\... ), ele é instalado no AppData do PETER e não no AppData do JOE.

Se eu executar o instalador manualmente, ele me pedirá as credenciais do PETER, mas o aplicativo será instalado no caminho do usuário do JOE.

Posso ter o mesmo comportamento com o Chocolatey? Estou fazendo algo errado ou posso resolver isso de alguma forma?

    
por Leonardo Puglia 30.06.2016 / 19:53

2 respostas

1

Descobri como fazer isso para usuários administrativos e não administrativos. Na seção Chocolatey não administrativa dos documentos, ele diz que para instalar o Chocolatey como não-administrador, primeiro temos que definir uma variável de ambiente ChocolateyInstall apontando para um local onde o Chocolatey deve ser instalado e todos os usuários terem acesso (usei a pasta C:\Users\Public\Chocolatey ). Essa variável pode ser definida no nível da máquina ou do usuário. Se o definirmos no nível da máquina, a mesma instalação Chocolatey poderá ser usada para instalações de pacotes administrativos e não administrativos. Depois de definir a variável, devemos proceder à instalação do Chocolatey, o que pode ser feito como administrador ou usuário não administrativo.

Em seguida, para instalar qualquer pacote, há duas maneiras de fazê-lo: se requer acesso de administrador, podemos abrir um PowerShell admin (ou prompt de comando) e chamar choco install <package> com ele. Em seguida, o aplicativo será instalado como o usuário administrador (PETER na minha pergunta). Se não precisar de acesso de administrador, poderemos abrir um PowerShell (ou prompt de comando) não administrativo e chamar choco install <package> com ele. O aplicativo é instalado para o usuário atual (JOE na minha pergunta).

Eu não testei, mas acredito que outra opção é definir uma variável ChocolateyInstall no nível da máquina apontando para um local e uma variável ChocolateyInstall no nível do usuário apontando para outro local. Então, se instalarmos o Chocolatey como admin, obteríamos uma instalação Chocolatey "master", que pode ser usada para instalar a maioria dos pacotes (que requerem acesso de administrador de acordo com a documentação). Se instalá-lo novamente como usuário comum, obteríamos uma instalação Chocolatey "user", que pode ser usada para instalar alguns pacotes específicos (como Wunderlist). Dessa forma, esse pacote pode ser instalado em qualquer número de usuários, sem interferir na instalação do chocolate "admin".

A desvantagem é que, com 2 instalações do Chocolatey, os pacotes terão que ser gerenciados no nível do administrador e do usuário, portanto, as atualizações terão que ser feitas no nível "mestre" e "usuário".

No meu caso, como tenho apenas um usuário por máquina e meus usuários não instalam nenhum aplicativo, escolhi a primeira opção.

Espero que ajude alguém a procurar por isso.

    
por 04.07.2016 / 19:22
0

Obrigado Loenardo Puglia pela sua resposta. Realmente me ajudou hoje. Meu exemplo foi o Slack instala em $USERPROFILE%/AppData , então experimentei esse problema. Eu também estou precisando de um uso do administrador e não administrativo do Chocolatey.

Se você já instalou chocolatey como administrador (como eu fiz), é possível movê-lo e transformá-lo em não-administrador, mesmo no Active Directory. Então você pode manter todas as suas bibliotecas. Pelo menos eu fiz em 23/02/2017. Esta foi a versão Open Source do Chocolatey.

Por padrão, o Chocolatey é instalado em C:\ProgramData\Chocolatey

E define uma variável de ambiente do sistema ChocolateyInstall = C:\ProgramData\Chocolatey . (Configurar isso antes instalar o Cocolatey fará com que ele seja instalado nesse diretório. Muito tarde para mim; eu já o instalei.)

E adiciona C:\ProgramData\Chocolatey\bin ao PATH .

De uma conta de administrador, você pode mover a pasta Chocolatey para uma área desprotegida. Eu escolhi C:\Chocolatey , mas qualquer caminho que você possa tornar acessível para usuários não administradores deve funcionar.

Em seguida, defino as permissões na pasta C:\Chocolatey to Users com Full control .

Em seguida, redefina as duas variáveis de ambiente [ referência ].

setx ChocolateyInstall "C:\Chocolatey" /m

/m torna um env de var do sistema, em vez de usuário.

E para o caminho, para essa edição menor no local, prefiro editar o registro em vez de reproduzir com aspas duplas na linha de comando.

regedit.exe

Navegue para HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Modifique path e edite a entrada Chocolatey conforme necessário e clique em OK .

Às vezes, você precisa fazer o login novamente para ver os novos valores do env vars. [ discussão nos comentários sobre a questão ]

    
por 23.02.2017 / 22:44