Como posso definir variáveis de ambiente do usuário (como PATH) de uma conta de não-administrador no Windows 10

0

Como posso definir variáveis ambientais do usuário (como PATH) de uma conta não-administrador no Windows 10?

Estou ciente de que existe um botão para o que eu quero: Veja aqui Mas enquanto clico nele, nada acontece.

Você pode também verificar este fórum. html "> post para outro cara que tem o mesmo problema.

Estou executando o windows 10 pro v1511 build10586.545

Editar: Foi um erro do Windows 10. A atualização para a atualização mais recente (Atualização de aniversário) corrigiu-a.

    
por InsOp 13.09.2016 / 23:15

1 resposta

0

O comando que você quer é setx.exe (é um programa de linha de comando). Use setx /? para obter informações de uso, mas, para o seu caso de uso, resume-se ao seguinte:

setx MYVAR "The value of my variable"

Observe que setx não atualiza suas variáveis de ambiente atuais para o programa em execução (por exemplo, CMD ou Powershell); você também precisará usar o comando set para atualizar as variáveis no shell.

Duas outras maneiras de fazer isso:

  1. Use o PowerShell para chamar a função .NET [System.Environment]::SetEnvironmentVariable(<varname>, <value>, [System.EnvironmentVariableTarget]::User) (você pode substituir 1 ou "user" por [System.EnvironmentVariableTarget]::User ; é um enum)
  2. Edite o registro diretamente. Por link , o local é HKCU \ Environment. Você poderia, por exemplo, adicionar um valor como este (usando o programa reg.exe ): reg add /v <VARNAME> /d <VALUE>

Se você quiser atualizar o seu PATH por usuário sem adicionar os valores PATH de todos os usuários (máquina local) ao seu PATH pessoal, precisará ser um pouco mais complicado. Usando reg query ou [System.Environment]::GetEnvironmentVariable(<varname>, [System.EnvironmentVariableTarget]::User) , você pode obter o valor atual do registro, em vez de obter o valor atual do processo para PATH (que é uma concatenação dos valores do usuário e da máquina). Usando o PS, você pode até definir esse valor para uma variável temporária:

set mypath $([Environment]::GetEnvironmentVariable("Path", 1)) cria uma variável temporária (local, não-ambiente) chamada "mypath" e a configura para o valor atual específico do usuário da variável de ambiente PATH (os nomes de variáveis de ambiente do Windows diferenciam maiúsculas de minúsculas).

echo $mypath para garantir que você o tenha entendido corretamente.

set mypath ($mypath + ';C:\foo\bar'); echo $mypath acrescenta C:\foo\bar à variável temporária e reflete o resultado.

setx Path $mypath para atualizar a variável de ambiente com sua string concatenada.

set $env:Path ($env:Path + ';C:\foo\bar') para também atualizar a sessão atual do PowerShell ou apenas iniciar uma nova no Windows Explorer (Iniciar, barra de tarefas, o que for).

    
por 14.09.2016 / 00:59