Compartilhar via


Environment Provider

Nome do provedor

Environment

Unidades

Env:

Descrição resumida

Fornece acesso às variáveis de ambiente do Windows.

Descrição detalhada

O provedor Environment do Windows PowerShell permite obter, adicionar, alterar, limpar e excluir variáveis de ambiente do Windows no Windows PowerShell.

O provedor Environment é um namespace comum que contém apenas objetos que representam as variáveis de ambiente. As variáveis não têm itens filhos.

Cada variável de ambiente é uma instância da classe System.Collections.DictionaryEntry. O nome da variável é o valor chave de dicionário. O valor da variável de ambiente é o valor de dicionário.

O provedor Environment expõe seu repositório de dados na unidade Env:. Para trabalhar com variáveis de ambiente, altere seu local para a unidade Env: ("set-location env:") ou trabalhe de outra unidade do Windows PowerShell. Para referenciar uma variável de ambiente de outro local, use o nome da unidade Env: no caminho.

O provedor da variável de ambiente dá suporte a todos os cmdlets que contenham Item em seus nomes, exceto Invoke-Item. Além disso, ele dá suporte aos cmdlets Get-Content e Set-Content. No entanto, não dá suporte aos cmdlets que contenham ItemProperty em seus nomes, e nem ao parâmetro Filter em nenhum cmdlet.

As variáveis de ambiente devem estar em conformidade com os padrões usuais de nomenclatura. Além disso, o nome não pode incluir o sinal de igual (=).

As alterações nas variáveis de ambiente afetam apenas a sessão atual. Para salvar as alterações, adicione-as ao perfil do Windows PowerShell ou use Export-Console para salvar a sessão atual.

Exemplos

Acessando a unidade Env:

-------------------------- EXEMPLO 1 --------------------------

Este comando altera o local atual para a unidade Env:.

set-location env:

Você pode utilizar o comando em qualquer unidade do Windows PowerShell. Para retornar a uma unidade do sistema de arquivos, digite o nome da unidade. Por exemplo, digite: set-location c:

Obtendo variáveis de ambiente

-------------------------- EXEMPLO 1 --------------------------

Este comando lista todas as variáveis de ambiente da sessão atual:

get-childitem -path env:

Você pode utilizar o comando a partir de qualquer unidade do Windows PowerShell.

-------------------------- EXEMPLO 2 --------------------------

Este comando obtém a variável de ambiente WINDIR:

get-childitem -path env:windir

-------------------------- EXEMPLO 3 --------------------------

Este comando obtém uma lista de todas as variáveis de ambiente na sessão atual e as classifica por nome:

get-childitem  | sort-object -property name

Por padrão, as variáveis de ambiente aparecem na ordem que o Windows PowerShell as descobre. Esse comando é enviado na unidade Env: Quando você executar o comando de outra unidade, adicione o parâmetro Path com um valor Env:.

Criando uma nova variável de ambiente

-------------------------- EXEMPLO 1 --------------------------

Este comando cria a variável de ambiente USERMODE com um valor Non-Admin:

new-item -path . -name USERMODE -value Non-Admin

Como o local atual está na unidade Env:, o valor do parâmetro Path é um ponto (.). O ponto (.) representa o local atual. Se você não estiver na unidade Env:, o valor do parâmetro Path será Env:.

Exibindo as propriedades e os métodos de variáveis de ambiente

-------------------------- EXEMPLO 1 --------------------------

Este comando usa o cmdlet Get-ChildItem para obter todas as variáveis de ambiente:

get-childitem -path env: | get-member

O operador de pipeline (|) envia os resultados para Get-Member, que exibe os métodos e as propriedades do objeto. Quando você canaliza uma coleção de objetos para Get-Member, como a coleção de variáveis de ambiente na unidade Env:, Get-Member avalia cada objeto da coleção separadamente. Em seguida, Get-Member retorna informações sobre cada tipo de objeto que encontra. Se todos os objetos forem do mesmo tipo, ele retornará informações sobre o único tipo de objeto. Neste caso, todas as variáveis de ambiente são objetos DictionaryEntry. Para obter informações sobre a coleção de objetos DictionaryEntry, use o parâmetro InputObject de Get-Member. Por exemplo, digite: get-member -inputobject (get-childitem env:) Quando você usa o parâmetro InputObject, Get-Member avalia a coleção, não os objetos da coleção.

-------------------------- EXEMPLO 2 --------------------------

Este comando lista os valores das propriedades da variável de ambiente WINDIR:

get-item env:windir | format-list -property *

Ele usa o cmdlet Get-Item para obter um objeto que represente a variável de ambiente WINDIR. O operador de pipeline (|) envia os resultados para o comando Format-List. Ele usa o parâmetro Property com um caractere curinga (*) para formatar e exibir os valores de todas as propriedades da variável de ambiente WINDIR.

Alterando as propriedades de uma variável de ambiente

-------------------------- EXEMPLO 1 --------------------------

Este comando usa o cmdlet Rename-Item para alterar o nome da variável de ambiente USERMODE que você criou para USERROLE:

rename-item -path env:USERMODE -newname USERROLE

Essa alteração afeta as propriedades Name, Key e PSPath do objeto DictionaryEntry. Não altere o nome de uma variável de ambiente que o sistema utiliza. Embora essas alterações afetem apenas a sessão atual, elas poderão fazer com que o sistema ou um programa opere de forma incorreta.

-------------------------- EXEMPLO 2 --------------------------

Este comando usa o cmdlet Set-Item para alterar o valor da variável de ambiente USERROLE para Administrator:

set-item -path env:USERROLE -value Administrator

Copiando uma variável de ambiente

-------------------------- EXEMPLO 1 --------------------------

Este comando copia o valor da variável de ambiente USERROLE para a variável de ambiente USERROLE2:

copy-item -path env:USERROLE -destination env:USERROLE2

Excluindo uma variável de ambiente

-------------------------- EXEMPLO 1 --------------------------

Este comando exclui a variável de ambiente USERROLE2 da sessão atual:

remove-item -path env:USERROLE2

Você pode utilizar o comando em qualquer unidade do Windows PowerShell. Se você estiver na unidade Env:, poderá omitir o nome da unidade no caminho.

-------------------------- EXEMPLO 2 --------------------------

Este comando exclui a variável de ambiente USERROLE.

clear-item -path env:USERROLE

Consulte também

Conceitos

about_Providers