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