about_Environment_Variables

Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0

TÓPICO

about_Environment_Variables

DESCRIÇÃO BREVE

Descreve como acessar as variáveis de ambiente do Windows em 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 que são 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 estão localizados os arquivos de sistema operacional do Windows.

O Windows PowerShell permite exibir e alterar as variáveis de ambiente do Windows, incluindo as variáveis definidas no Registro e aquelas definidas para uma determinada sessão. O provedor ambiente do Windows PowerShell simplifica esse processo, tornando mais fácil exibir e alterar as variáveis de ambiente.

Diferentemente 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 local e as sessões executadas por membros do módulo. Isso torna as variáveis de ambiente adequadas para armazenar os 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 acessar variáveis de ambiente do Windows no Windows PowerShell em uma unidade Windows PowerShell (a unidade Env: ). Esta unidade é muito parecida com uma unidade de sistema de arquivos. Para ir até a unidade Env: , digite:

  Set-Location Env:

Depois, 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 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.DictionaryEntry.

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 em Windows PowerShell, obtenha um objeto que representa a variável e, em seguida, exiba os valores das propriedades do objeto. Ao alterar uma variável de ambiente no Windows PowerShell, use os métodos que estão associados ao objeto DictionaryEntry.

Para exibir as propriedades e métodos do objeto que representa uma variável de ambiente em Windows PowerShell, use o cmdlet Get-Member. Por exemplo, para exibir os métodos e 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 substantivo Item (cmdlets Item) para exibir e alterar os valores das variáveis de ambiente. Como as variáveis de ambiente não têm itens filho, a saída de Get-Item e Get-ChildItem é a mesma.

Quando você fizer referência a uma variável de ambiente, digite o nome da unidade Env: seguido pelo nome da variável. Por exemplo, para exibir o valor de 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 ele recupera. Para classificar a lista de variáveis de ambiente pelo nome da variável, canalize a saída de um comando Get-ChildItem para o cmdlet Sort-Object. Por exemplo, em qualquer unidade do Windows PowerShell, digite:

  Get-ChildItem Env: | Sort Name

Você também pode ir para a unidade Env: usando o cmdlet Set-Location:

  Set-Location Env:

Quando estiver na unidade Env: , você pode omitir o nome da unidade Env: do caminho. Por exemplo, para exibir todas as variáveis de ambiente, digite:

  Get-ChildItem

Para exibir o valor da variável COMPUTERNAME de 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ão no Windows PowerShell. Para exibir o valor de uma variável de ambiente, use a seguinte sintaxe:

  $Env:<variable-name>

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 símbolo de cifrão ($) indica uma variável e o nome da unidade indica uma variável de ambiente.

ALTERANDO AS VARIÁVEIS DE AMBIENTE

Para fazer uma alteração persistente em uma variável de ambiente, use o sistema no painel de controle (guia Avançado ou o item de Configurações avançadas do sistema) para armazenar a alteração no Registro.

Quando você altera a variáveis de ambiente no Windows PowerShell, a alteração afeta somente a sessão atual. Esse comportamento lembra o comportamento do comando Set em ambientes baseados no Windows e o comando Setenv em ambientes baseados em UNIX.

Você também deve ter permissão para alterar os valores das variáveis. Se você tentar alterar um valor sem permissão suficiente, o comando falhará, e Windows PowerShell exibirá um erro.

Você pode alterar os valores das variáveis sem usar um cmdlet, usando a seguinte sintaxe:

          $Env:<variable-name> = "<new-value>"

Por exemplo, para anexar ";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 de variáveis de ambiente. Por exemplo, para usar o cmdlet Set-Item para anexar ";c:\temp" ao valor da variável de ambiente Path, use a seguinte sintaxe:

          Set-Item -Path Env:Path -Value ($Env:Path + ";C:\Temp")

Neste comando, o valor é colocado entre parênteses para que ele 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 cada sessão 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 cada sessão do Windows PowerShell, adicione o seguinte comando no 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 AS PREFERÊNCIAS

Os recursos do Windows PowerShell podem usar variáveis de ambiente para armazenar as preferências do usuário. Essas variáveis funcionam como variáveis de preferências, mas elas são herdadas por sessões filho das sessões em que são criadas. Para obter informações sobre variáveis de preferências, consulte about_preference_variables.

As variáveis de ambiente que armazenam as preferências incluem:

PSEXECUTIONPOLICYPREFERENCE

Armazena a política de execução definida para a sessão atual. Essa variável de ambiente existe apenas quando você define uma política de execução para uma única sessão. Você pode fazer isso de duas maneiras diferentes.

-- Use o PowerShell.exe para iniciar uma sessão na linha de comando e use seu parâmetro ExecutionPolicy para definir a política de execução para a sessão.

-- Use o cmdlet Set-ExecutionPolicy. Use o parâmetro Scope com um valor de "Processo".

Para obter mais informações, consulte about_Execution_Policies.

PSMODULEPATH

Armazena os caminhos para os diretórios de módulo padrão. O Windows PowerShell procura módulos em 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" toda vez que inicia o Windows PowerShell.

Além disso, programas de configuração que instalam os módulos em outros diretórios, como o diretório Arquivos de programa, podem acrescentar seus locais ao valor de PSModulePath.

Para alterar os diretórios de módulo padrão para a sessão atual, use o seguinte formato de comando para alterar o valor da variável de ambiente PSModulePath.

Por exemplo, para adicionar o diretório "C:\Program Files\Fabrikam\Modules" ao valor da variável de ambiente PSModulePath, digite:

                $Env:PSModulePath = $Env:PSModulePath + ";C:\Program Files\Fabrikam\Modules"

O ponto e vírgula (;) no comando separa o novo caminho do caminho anterior na lista.

Para alterar o valor de PSModulePath em cada sessão, adicione o comando anterior ao perfil do Windows PowerShell ou use o método SetEnvironmentVariable da classe de ambiente.

O comando a seguir usa o método GetEnvironmentVariable para obter a configuração de computador de PSModulePath e o método SetEnvironmentVariable para adicionar o caminho C:\Program Files\Fabrikam\Modules ao valor.

$path = [System.Environment]::GetEnvironmentVariable("PSModulePath", "Machine")
            [System.Environment]::SetEnvironmentVariable("PSModulePath", $path + `
               ";C:\Program Files\Fabrikam\Modules", "Machine")

Para adicionar um caminho para a configuração do usuário, altere o valor de destino para o usuário.

            $path = [System.Environment]::GetEnvironmentVariable("PSModulePath", "User")
            [System.Environment]::SetEnvironmentVariable("PSModulePath", $path + `
               ";$home\Documents\Fabrikam\Modules", "User")

Para obter mais informações sobre os métodos de classe System.Environment, consulte "Métodos de ambiente" no MSDN em https://go.microsoft.com/fwlink/?LinkId=242783.

Você também pode adicionar um comando que altera o valor para o seu perfil ou usar o 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

Ambiente (provedor)

about_Modules