Como Definir Variáveis de Ambiente Usando PowerShell

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

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:

powershell atualizar variáveis de ambiente - saída 1

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:

atualizar variáveis de ambiente do powershell - saída 2

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:

atualizar variáveis de ambiente do powershell - saída 3

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.

Está gostando dos nossos tutoriais? Inscreva-se no DelftStack no YouTube para nos apoiar na criação de mais vídeos tutoriais de alta qualidade. Inscrever-se
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

Artigo relacionado - PowerShell Environment Variables