Como posso modificar a variável de ambiente PATH de um usuário sem fazer logout?

22

A pergunta praticamente diz tudo; Tenho usuários que não têm permissão para editar sua própria PATHvariável de ambiente e, se precisarem modificá-la por algum motivo, precisam fazer logout para que um administrador possa fazer login e alterá- PATHlos antes que o usuário faça login novamente . Isto não é o ideal. Isso pode ser feito de uma maneira melhor?

de lado
fonte
Apenas curioso - mas como exatamente você está impedindo que os usuários alterem seu próprio ambiente padrão? Você está apenas negando acesso a Meu computador / Propriedades / Avançado / Variável de ambiente? Eles ainda podiam modificar o HKCU / Environment por meio de uma variedade de métodos.
Cooper
Preferências de diretiva de grupo? Apenas um pensamento.
Simon Catlin 29/07

Respostas:

6

Você sempre pode invocar um shell cmd com direitos de administrador (ou qualquer outro método runas) e usar uma ferramenta como SETX para modificar o caminho permanentemente. Os shells existentes e / ou os programas em execução provavelmente usarão o caminho antigo, mas qualquer novo shell / programa usará as novas configurações.

Berzemus
fonte
25

Para contas sem privilégios de administrador:

Abra "Contas de usuário" e escolha "Alterar minhas variáveis ​​de ambiente" ( http://support.microsoft.com/kb/931715 ).

Essa caixa de diálogo mostrará suas variáveis ​​de usuário atuais, bem como as variáveis ​​do sistema. Pode ser necessário adicionar uma variável PATH local, se você ainda não o tiver.

Para atualizar seu Path para incluir o diretório Python 3.3, por exemplo, clique em Novo:

Nome da variável: PATH Valor da variável:% PATH%; C: \ Python33

Isso cria um PATH local, pegando o PATH atual do sistema e adicionando a ele.

Curtis Nelson
fonte
2
Eu acho que isso responde: " Eu tenho usuários que não têm permissão para editar seu próprio PATH ...", e o fazem permanentemente , melhor do que o resto. Muito bem feito. Pergunto-me por que clicar em Meu computador é protegido por administrador se não estiver? Apenas proteja os campos não locais da mesma maneira que a interface do usuário quando acessada dessa maneira.
ruffin
10

Meu computador / Propriedades / Avançado / Variáveis ​​de ambiente. As alterações entram em vigor imediatamente, exceto pelas janelas do prompt de comando já abertas. Não há necessidade de sair e entrar novamente.

NOTA: Se você não tiver acesso a essa janela, poderá obtê-lo executando a rundll32 sysdm.cpl,EditEnvironmentVariablespartir da janela Executar ou da linha de comando.

John Gardeniers
fonte
usuários regulares na minha rede não são capazes de mudar suas próprias variáveis de ambiente como este, a menos que eu posso abrir a tela com privs elevados através de "Executar como ..." ou algo semelhante, isto não vai funcionar para mim
ninesided
4

Em um prompt de comando, você pode:

set PATH=C:\somedir;%PATH%

mas isso apenas o altera no prompt de comando (e em todos os aplicativos iniciados no prompt de comando). Supondo que você queira que isso se aplique a tudo o que o usuário altera, as variáveis ​​de ambiente do usuário. Clique com o botão direito do mouse em Meu Computador, Propriedades, Avançado, Variáveis ​​de ambiente e em "Variáveis ​​de usuário para adicionar uma variável:

PATH = C:\whatever

Quando o usuário faz logon, isso é adicionado ao caminho amplo do sistema.

John Rennie
fonte
Eu preciso alterar a ordem das entradas já no PATH, assim que adicionar a remoção das variáveis de usuário não funciona para mim neste caso
ninesided
setx, como o @Berzemus mencionado, pode editar a variável PATH do sistema (a /mopção) permanentemente.
Pat
2

O usuário pode definir uma variável PATH em um prompt de comando que substituirá a variável PATH em todo o sistema, mesmo se o usuário não tiver direitos de "Administrador". A alteração entrará em vigor para novos processos iniciados pelo usuário a partir desse prompt de comando. (O processo existente do Explorer e quaisquer outros processos que o usuário esteja executando quando a alteração for feita não "verão" a alteração.)

Evan Anderson
fonte
1

Além das respostas acima, você também pode atualizar o registro (que tem a vantagem de ser programável):

A variável PATH é armazenada em HKEY_CURRENT_USER \ Environment.

Para ler o caminho atual:

reg query HKEY_CURRENT_USER\Environment /v PATH

Para acrescentar um valor c: \ somedir ao caminho:

reg add HKEY_CURRENT_USER\Environment /v PATH /d "%PATH%;c:\somedir"

Observe que os processos leem o ambiente ao serem iniciados, portanto, você deve reiniciar o processo para obter o novo caminho.

Atualização: Outra maneira que encontrei é executar:

rundll32 sysdm.cpl,EditEnvironmentVariables

Novamente, este applet edita o registro e tem o mesmo efeito que o acima.

Kristopher Noronha
fonte