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