Como Definir Variáveis de Ambiente Usando PowerShell
- O Que São Variáveis de Ambiente
-
Definir uma Variável de Ambiente Com
Env:
no PowerShell -
Definir a Classe
[System.Environment]
do .NET no PowerShell - Atualizar Variáveis de Ambiente na Sessão Atual do PowerShell
- Conclusão

Usar o Windows PowerShell para definir variáveis de ambiente do Windows, ler variáveis de ambiente e criar novas variáveis de ambiente é fácil uma vez que conhecemos a execução adequada dos comandos.
O PowerShell oferece muitos métodos diferentes para interagir com variáveis de ambiente do Windows a partir do PSDrive $env:
e da classe .NET [System.Environment]
. Este artigo discutirá como definir variáveis de ambiente e atualizá-las em nossa sessão atual usando o PowerShell.
O Que São Variáveis de Ambiente
Como o nome sugere, variáveis de ambiente armazenam informações sobre ambientes do Windows e de aplicativos.
Podemos acessar variáveis de ambiente através de uma interface gráfica como o Windows Explorer e editores de texto simples como Notepad
, cmd.exe
e PowerShell.
Usar variáveis de ambiente nos ajuda a evitar codificar caminhos de arquivos, nomes de usuários ou computadores, e mais em nossos scripts ou módulos do PowerShell.
Definir uma Variável de Ambiente Com Env:
no PowerShell
Podemos criar novas variáveis de ambiente com o PowerShell usando o cmdlet New-Item
. Mas, primeiro, forneça o nome da variável de ambiente no formato Env:\<EnvVarName>
para o parâmetro Value
, conforme mostrado abaixo.
Código de Exemplo:
New-Item -Path Env:\TEST -Value WIN10-DESKTOP
Usamos o cmdlet do PowerShell New-Item
para criar ou atualizar uma variável de ambiente chamada TEST
dentro do namespace Env:\
. Ao especificar -Value WIN10-DESKTOP
, atribuímos o valor WIN10-DESKTOP
a esta variável.
Essa ação impacta a sessão atual do PowerShell, tornando a variável de ambiente TEST
acessível a outros scripts e comandos dentro da sessão.
Saída:
Podemos usar o cmdlet Set-Item
para definir uma variável de ambiente ou criar uma nova se ela não existir. Por exemplo, podemos ver abaixo usando o cmdlet Set-Item
.
Podemos tanto criar quanto modificar uma variável de ambiente.
Código de Exemplo:
Set-Item -Path Env:TEST -Value "TestValue"
Usamos o cmdlet do PowerShell Set-Item
para modificar o valor de uma variável de ambiente existente chamada TEST
dentro do namespace Env:\
. Ao especificar -Value "TestValue"
, atribuímos a string "TestValue"
à variável de ambiente TEST
.
Essa ação afeta diretamente a sessão atual do PowerShell, atualizando o valor de TEST
para uso por outros scripts e comandos dentro da sessão.
Saída:
Definir a Classe [System.Environment]
do .NET no PowerShell
A [System.Environment]
usará alguns métodos de classe estática .NET diferentes. Não precisamos entender o que é uma maneira estática.
Só precisamos entender como usar qualquer uma das técnicas que estamos prestes a aprender, e precisamos primeiro referenciar a classe ([System.Environment]
) seguida por dois pontos (::
) e depois pelo método.
Para definir a variável de ambiente usando a classe .NET mencionada, use a função SetEnvironmentVariable()
para definir o valor de uma variável de ambiente existente para o escopo dado ou criar uma nova variável de ambiente se ela não existir.
Ao definir variáveis no escopo do processo, descobriremos que o escopo do processo é volátil e existe na sessão atual, enquanto as alterações nos escopos do usuário e da máquina são permanentes.
Código de Exemplo:
[System.Environment]::SetEnvironmentVariable('TestVariable', 'TestValue', 'User')
Usamos o método .NET [System.Environment]::SetEnvironmentVariable()
para definir uma variável de ambiente chamada TestVariable
com o valor 'TestValue'
no ambiente específico do usuário. Ao especificar 'User'
como o terceiro parâmetro, garantimos que esta variável seja definida dentro do contexto do ambiente do usuário.
Essa ação impacta as configurações de ambiente para o usuário atual, permitindo que outros scripts e aplicativos acessem a TestVariable
com seu valor atribuído.
Atualizar Variáveis de Ambiente na Sessão Atual do PowerShell
Para usar nosso novo conjunto de variáveis de ambiente em nossa sessão do PowerShell, obtenha a variável de ambiente do perfil de usuário e da máquina através da classe .NET e atribua-a à variável de ambiente do PowerShell.
Uma vez que as variáveis de ambiente também são consideradas variáveis do PowerShell, podemos atribuir valores a elas diretamente de maneira mais simples.
Código de Exemplo:
$env:PATH = [System.Environment]::GetEnvironmentVariable("Path", "Machine") + ";" + [System.Environment]::GetEnvironmentVariable("Path", "User")
Estamos atualizando a variável de ambiente $env:PATH
concatenando os valores das variáveis de ambiente Path
do sistema e do usuário recuperadas usando [System.Environment]::GetEnvironmentVariable()
. Primeiro, recuperamos a variável Path
do sistema usando o parâmetro "Machine"
e depois anexamos a variável Path
do usuário recuperada usando o parâmetro "User"
.
Ao combinar esses valores com um separador de ponto e vírgula, garantimos que ambos os conjuntos de caminhos sejam incluídos no $env:PATH
atualizado.
Saída:
Conclusão
Neste artigo, exploramos vários métodos para gerenciar variáveis de ambiente no PowerShell, focando na definição e atualização delas usando diferentes técnicas. Começamos demonstrando como criar ou modificar variáveis de ambiente usando cmdlets do PowerShell como New-Item
e Set-Item
, fornecendo exemplos e explicações claras para cada etapa.
Em seguida, nos aprofundamos no uso da classe .NET [System.Environment]
para manipular variáveis de ambiente. Através do método SetEnvironmentVariable()
, aprendemos como definir variáveis com escopos específicos, entendendo as implicações de cada escopo na persistência das variáveis.
Por fim, abordamos a importância de atualizar variáveis de ambiente dentro da sessão atual do PowerShell, enfatizando o uso de [System.Environment]::GetEnvironmentVariable()
para atualizar variáveis dinamicamente.
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn