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)