TÓPICO about_Environment_Variables DESCRIÇÃO RESUMIDA Descreve como acessar variáveis de ambiente do Windows no Windows PowerShell. DESCRIÇÃO LONGA Variáveis de ambiente armazenam informações sobre o ambiente do sistema operacional. Essas informações incluem detalhes como o caminho do sistema operacional, o número de processadores usados pelo sistema operacional e o local das pastas temporárias. As variáveis de ambiente armazenam dados usados pelo sistema operacional e outros programas. Por exemplo, a variável de ambiente WINDIR contém o local do diretório de instalação do Windows. Os programas podem consultar o valor dessa variável para determinar onde os arquivos do sistema operacional Windows estão localizados. O Windows PowerShell permite que você exiba e altere variáveis de ambiente do Windows, inclusive o conjunto de variáveis no Registro e as definidas para uma sessão específica. O provedor de ambiente do Windows PowerShell simplifica esse processo, facilitando a visualização e a alteração de variáveis de ambiente. Ao contrário de outros tipos de variáveis no Windows PowerShell, as variáveis de ambiente e seus valores são herdados por sessões-filho, como trabalhos em segundo plano locais e as sessões nas quais os membros de módulo são executados. Isto torna as variáveis de ambiente adequadas ao armazenamento de valores que são necessários em sessões pai e filho. Provedor de ambiente do Windows PowerShell O provedor de ambiente do Windows PowerShell permite que você acesse as variáveis de ambiente do Windows no Windows PowerShell em uma unidade do Windows PowerShell (a unidade Env:). Essa unidade se parece muito com uma unidade do sistema de arquivos. Para ir até a unidade Env:, digite: set-location env: Em seguida, para exibir o conteúdo da unidade Env:, digite: get-childitem Você pode exibir as variáveis de ambiente na unidade Env: de qualquer outra unidade do Windows PowerShell e pode entrar na unidade Env: para exibir e alterar as variáveis de ambiente. Objetos de variável de ambiente No Windows PowerShell, cada variável de ambiente é representada por um objeto que é uma instância da classe System.Collections.D ictionaryEntry. Em cada objeto DictionaryEntry, o nome da variável de ambiente é a chave do dicionário. O valor da variável é o valor do dicionário. Para exibir uma variável de ambiente no Windows PowerShell, obtenha um objeto que represente a variável e exiba os valores das propriedades do objeto. Quando você alterar uma variável de ambiente no Windows PowerShell, use os métodos associados ao objeto DictionaryEntry. Para exibir as propriedades e os métodos do objeto que representa uma variável de ambiente no Windows PowerShell, use o cmdlet Get-Member. Por exemplo, para exibir os métodos e as propriedades de todos os objetos na unidade Env:, digite: get-item -path env:* | get-member Exibindo variáveis de ambiente Você pode usar os cmdlets que contêm o nome Item (os cmdlets Item) para exibir e alterar os valores das variáveis de ambiente. Como as variáveis de ambiente não possuem itens filho, a saída de Get-Item e Get-ChildItem é a mesma. Ao se referir a uma variável de ambiente, digite o nome da unidade Env: seguido do nome da variável. Por exemplo, para exibir o valor da variável de ambiente COMPUTERNAME, digite: get-childitem env:computername Para exibir os valores de todas as variáveis de ambiente, digite: get-childitem env: Por padrão, o Windows PowerShell exibe as variáveis de ambiente na ordem em que as recupera. Para classificar a lista de variáveis de ambiente por nome de variável, canalize a saída de um comando Get-ChildItem para o cmdlet Sort-Object. Por exemplo, de qualquer unidade do Windows PowerShell, digite: get-childitem env: | sort name Você também pode entrar na unidade Env: usando o cmdlet Set-Location: set-location env: Quando você está na unidade Env:, pode omitir o nome da unidade Env: no caminho. Por exemplo, para exibir todas as variáveis de ambiente, digite: get-childitem Para exibir o valor da variável COMPUTERNAME dentro da unidade Env:, digite: get-childitem computername Você também pode exibir e alterar os valores das variáveis de ambiente sem usar um cmdlet usando o analisador de expressões no Windows PowerShell. Para exibir o valor de uma variável de ambiente, use a seguinte sintaxe: $env:<nome-da-variável> Por exemplo, para exibir o valor da variável de ambiente WINDIR, digite o seguinte comando no prompt de comando do Windows PowerShell: $env:windir Nessa sintaxe, o cifrão ($) indica uma variável, e o nome da unidade indica uma variável de ambiente. Alterando variáveis de ambiente Para fazer uma alteração persistente em uma variável de ambiente, use Sistema no Painel de Controle (guia Avançado ou o item Configuração Avançadas do Sistema) para armazenar a alteração no Registro. Quando você altera variáveis de ambiente no Windows PowerShell, a alteração afeta apenas a sessão atual. Esse comportamento se assemelha ao do comando Set em ambientes baseados no Windows e ao do comando Setenv em ambientes baseados no Unix. Você também precisa possuir permissão para alterar os valores das variáveis. Se você tentar alterar um valor sem permissão suficiente, ocorrerá uma falha no comando e o Windows PowerShell exibirá um erro. Você pode alterar os valores de variáveis sem usar um cmdlet, com a seguinte sintaxe: $env:<nome-da-variável> = "<novo-valor>" Por exemplo, para acrescentar ";c:\temp" ao valor da variável de ambiente Path, use a seguinte sintaxe: $env:path = $env:path + ";c:\temp" Você também pode usar os cmdlets Item, como Set-Item, Remove-Item e Copy-Item para alterar os valores das variáveis de ambiente. Por exemplo, para usar o cmdlet Set-Item para acrescentar ";c:\temp" ao valor da variável de ambiente Path, use a seguinte sintaxe: set-item -path env:path -value ($env:path + ";c:\temp") Nesse comando, o valor é colocado entre parênteses para que seja interpretado como uma unidade. Salvando alterações em variáveis de ambiente Para criar ou alterar o valor de uma variável de ambiente em todas as sessões do Windows PowerShell, adicione a alteração ao seu perfil do Windows PowerShell. Por exemplo, para adicionar o diretório C:\Temp à variável de ambiente Path em todas as sessões do Windows PowerShell, adicione o comando a seguir ao seu perfil do Windows PowerShell. $env:path = $env:path + ";c:\temp" Para adicionar o comando a um perfil existente, como o perfil CurrentUser,AllHosts, digite: add-content -path $profile.CurrentUserAllHosts -value '$env:path = $env:path + ";c:\temp"' Variáveis de ambiente que armazenam preferências Os recursos do Windows PowerShell podem usar variáveis de ambiente para armazenar preferências do usuário. Essas variáveis funcionam como variáveis de preferência, mas são herdadas por sessões filho das sessões nas quais são criadas. Para obter mais informações sobre about_preference_variables, consulte about_preference_variables. As variáveis de ambiente que armazenam preferências incluem: PSModulePath Armazena os caminhos para os diretórios de módulo padrão. O Windows PowerShell procura módulos nos diretórios especificados quando você não especifica um caminho completo para um módulo. O valor padrão de $env:PSModulePath é: $home\Documents\WindowsPowerShell\Modules; $pshome\Modules O Windows PowerShell define o valor de "$pshome\Modules" no Registro.Ele define o valor de "$home\Documents\ WindowsPowerShell\Modules" sempre que você inicia o Windows PowerShell. Além disso, programas de instalação que instalam módulos em outros diretórios, como o diretório de Arquivos de Programas, acrescentam seus locais ao valor de PSModulePath. Para alterar os diretórios de módulo padrão, altere o valor da variável de ambiente PSModulePath. Por exemplo, para adicionar o diretório "C:\ps-test\Module s" ao valor da variável de ambiente PSModulePath, digite: $env:PSModulePath = $env:PSModulePath + ";c:\ps-test\Modules" O ponto-e-vírgula (;) no comando separa o novo caminho do caminho que o precede na lista. Suas alterações afetam apenas a sessão atual, a menos que você adicione um comando que altere o valor a seu perfil ou use Sistema no Painel de Controle para alterar o valor da variável de ambiente PSModulePath no Registro. Para obter mais informações, consulte about_Modules. CONSULTE TAMBÉM Environment (provider)