Pular para o conteúdo principal

Variáveis de ambiente

Contexto e histórico​

As variáveis de ambiente são um mecanismo essencial nos sistemas operacionais modernos, permitindo armazenar informações de configuração e transmitir parâmetros para os processos. Elas foram introduzidas já nos primeiros sistemas Unix e foram adotadas pelo Windows com a chegada do Windows NT.

Por que usar variáveis de ambiente​

  • Configuração global

    • Caminhos para executáveis (PATH), diretório temporário (TEMP/TMP), idioma e formato regional (LANG).
  • Isolamento e portabilidade

    • Scripts e aplicações podem ler seus parâmetros sem hardcode de caminhos absolutos.
  • Propagação para processos filhos

    • Toda variável definida em um processo pai é herdada pelos seus filhos.

Tipos e escopo​

EscopoPersistente?Acessível a partir deExemplo de variável
ProcessoNãoProcesso atual$env:MYVAR = "session"
UsuárioSimTodo processo do usuário (nova sessão)Set-Variable USER via GUI ou PowerShell
MáquinaSimTodo usuário e todo processo (nova sessão)Set-Variable MACHINE
  • Sessão (processo): modificação temporária, desaparece ao fechar.
  • Usuário: armazenada no registro em HKCU:\Environment.
  • Sistema (Máquina): armazenada no registro em HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Environment.

Gerenciamento via interface gráfica​

Procure por “Ambiente” nas configurações do Windows.

O provider Env no PowerShell​

O PowerShell expõe as variáveis de ambiente como um “PSDrive” chamado Env:.

Listar e ler​

# Listar todas as variáveis de ambiente
Get-ChildItem Env:

# Ler uma variável específica
Get-Item Env:PATH
# ou
$env:PATH

Utilitário setx​

O binário do Windows setx permite gravar rapidamente:

# Define para o usuário (padrão)
setx LOG_LEVEL "DEBUG"

# Define para a máquina (com /M, requer Admin)
setx NODE_ENV "production" /M

Note : setx não altera a sessão atual — ele grava para as próximas sessões.

Boas práticas​

  1. Nomear em MAIÚSCULAS e usar _ para separar palavras.
  2. Limitar o tamanho do PATH: muito longo pode quebrar alguns programas.
  3. Documentar em um script ou README toda modificação persistente.
  4. Fazer backup do estado antes de grandes alterações (exportação do registro).
  5. Testar em VM: valide os scripts em suas máquinas virtuais antes do deploy.

Para lembrar​

  • Variáveis de ambiente são um mecanismo fundamental para transmitir parâmetros aos processos.
  • Elas têm três escopos: Sessão, Usuário, Máquina.
  • PowerShell e setx oferecem meios poderosos para ler, definir e remover essas variáveis.
  • Sempre teste em VM e documente suas alterações!