TÓPICO
about_Profiles
DESCRIÇÃO RESUMIDA
Descreve como criar e usar um perfil do Windows PowerShell.
DESCRIÇÃO LONGA
Você pode criar um perfil do Windows PowerShell para personalizar
seu ambiente e adicionar elementos específicos de sessão a todas
as sessões do Windows PowerShell que você inicia.
Um perfil do Windows PowerShell é um script que é executado
durante a inicialização do Windows PowerShell. Você pode usar o
perfil como um script de logon para personalizar o ambiente. Você
pode adicionar comandos, aliases, funções, variáveis, snap-ins,
módulos e unidades do Windows PowerShell. Também é possível
adicionar outros elementos específicos de sessão ao seu perfil,
para que eles estejam disponíveis em todas as sessões sem que
seja preciso importá-los ou recriá-los.
O Windows PowerShell oferece suporte a vários perfis para
usuários e programas host.
Porém, ele não cria os perfis para você. Este tópico descreve os
perfis e explica como criá-los e mantê-los em seu computador.
Explica também como usar o parâmetro NoProfile do console do
Windows PowerShell (PowerShell.exe) para iniciar o Windows
PowerShell sem qualquer perfil.
Além disso, descreve o efeito da diretiva de execução do Windows
PowerShell nos perfis.
OS ARQUIVOS DE PERFIL
O Windows PowerShell oferece suporte a vários arquivos de perfil.
Além disso, os programas host do Windows PowerShell possuem
suporte para os próprios perfis específicos ao host.
Por exemplo, o console do Windows PowerShell oferece suporte aos
arquivos de perfil básicos listados a seguir. Os perfis estão em
ordem de precedência. O primeiro perfil tem a precedência mais alta.
Descrição Caminho
----------- ----
Usuário atual, Host atual $Home\[My ]Documents\WindowsPowerShell\Profile.ps1
Usuário atual, Todos os hosts $Home\[My ]Documents\Profile.ps1
Todos os usuários, Host atual $PsHome\Microsoft.PowerShell_profile.ps1
Todos os usuários, Todos os hosts $PsHome\Profile.ps1
Os caminhos de perfil incluem as seguintes variáveis:
- A variável $PsHome, que armazena o diretório de instalação
do Windows PowerShell.
- A variável $Home, que armazena o diretório base do usuário
atual.
Além disso, outros programas que hospedam o Windows PowerShell
podem suportar seus próprios perfis. Por exemplo, o ISE (Ambiente de Script Integrado) do Windows PowerShell dá suporte os
perfis específicos de host a seguir.
Descrição Caminho
----------- -----
Usuário atual, Host atual $Home\[My ]Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
Todos os usuários, Host atual $PsHome\Microsoft.PowerShellISE_profile.ps1
Na Ajuda do Windows PowerShell, o perfil "Usuário atual, Host
atual" é o perfil geralmente chamado de "seu perfil do Windows
PowerShell".
A VARIÁVEL $PROFILE
A variável automática $Profile armazena os caminhos para os
perfis do Windows PowerShell que estão disponíveis na sessão atual.
Para exibir um caminho de perfil, exiba o valor da variável
$Profile. Você também pode usar a variável $Profile em um comando
para representar um caminho.
A variável $Profile armazena o caminho para o perfil "Usuário
atual", Host atual". Os outros perfis são salvos nas propriedades
de observação da variável $profile.
Por exemplo, a variável $Profile tem os valores a seguir no
console do Windows PowerShell.
Nome Descrição
----------- -----------
$Profile Usuário atual, Host atual
$Profile.CurrentUserCurrentHost Usuário atual, Host atual
$Profile.CurrentUserAllHosts Usuário atual, Todos os hosts
$Profile.AllUsersCurrentHost Todos os usuários, Host atual
$Profile.AllUsersAllHosts Todos os usuários, Todos os hosts
Pelo fato de os valores da variável $Profile serem diferentes
para cada usuário e em cada aplicativo host, certifique-se de
exibir os valores das variáveis de perfil em cada aplicativo host
do Windows PowerShell que você usar.
Para ver os valores atuais da variável $Profile, digite:
$profile | get-member -type noteproperty
Você pode usar a variável $Profile em muitos comandos. Por
exemplo, o seguinte comando abre o perfil "Usuário atual", Host
atual" no Bloco de Notas:
notepad $profile
O seguinte comando determina se um perfil "Todos os usuários,
Todos os hosts" foi criado no computador local:
test-path $profile.AllUsersAllHosts
COMO CRIAR UM PERFIL
Para criar um perfil do Windows PowerShell, use o seguinte
formato de comando:
if (!(test-path <nome_do_perfil>))
{new-item -type file -path <nome_do_perfil> -force}
Por exemplo, para criar um perfil para o usuário atual no
aplicativo host atual do Windows PowerShell, use o seguinte comando:
if (!(test-path $profile))
{new-item -type file -path $profile -force}
Nesse comando, a instrução If impede a substituição de um espaço
reservado existente pelo caminho. Substitua o valor do espaço
reservado <profile-path> pelo caminho para o arquivo de perfil
que você deseja criar.
Observação: para criar perfis "All Users" no Windows Vista e nas
versões posteriores do Windows, inicie o Windows
PowerShell com a opção "Executar como administrador".
COMO EDITAR UM PERFIL
Você pode abrir qualquer perfil do Windows PowerShell em um
editor de texto, como o Bloco de Notas.
Para abrir o perfil do usuário atual no aplicativo host atual do
Windows PowerShell no Bloco de Notas, digite:
notepad $profile
Para abrir outros perfis, especifique o nome do perfil. Por
exemplo, para abrir o perfil de todos os usuários de todos os
aplicativos host, digite:
notepad $profile.AllUsersAllHosts
Para aplicar as alterações, salve o arquivo de perfil e reinicie
o Windows PowerShell.
COMO ESCOLHER UM PERFIL
Se você usar vários aplicativos host, coloque os itens que usa em
todos os aplicativos host no seu perfil $Profile.CurrentUserAllHosts.
Coloque os itens que são específicos a um aplicativo host, como
um comando que define a cor do plano de fundo do aplicativo, em
um perfil que seja específico àquele aplicativo host.
Se você for um administrador que está personalizando o Windows
PowerShell para muitos usuários, siga estas diretrizes:
-- Armazene os itens comuns no perfil $profile.AllUsersAllHosts.
-- Armazene itens que sejam específicos a um aplicativo host
nos perfis $profile.AllUsersCurrentHost específicos ao
aplicativo host.
-- Armazene itens para determinados usuários nos perfis
específicos ao usuário.
Verifique a documentação do aplicativo host para qualquer
implementação especial dos perfis do Windows PowerShell.
COMO USAR UM PERFIL
Muitos dos itens que você cria no Windows PowerShell e a maioria
dos comandos que você executa só afetam a sessão atual. Quando
você terminar a sessão, os itens serão excluídos.
Os comandos e itens específicos de sessão incluem variáveis,
variáveis de preferência, aliases, funções, comandos (exceto
Set-ExecutionPolicy) e snap-ins do Windows PowerShell que você
adiciona à sessão.
Para salvar esses itens e torná-los disponíveis em todas as
sessões futuras, adicione-os a um perfil do Windows PowerShell.
Outro uso comum dos perfis é para salvar funções, aliases e
variáveis usados com frequência. Quando você salva os itens em um
perfil, pode usá-los em qualquer sessão aplicável sem que seja
necessário recriá-los.
COMO INICIAR UM PERFIL
Quando você abrir o arquivo de perfil, ele estará em branco.
Porém, você pode preenchê-lo com as variáveis, os aliases e os
comandos usados com frequência.
Aqui estão algumas sugestões iniciais.
-- Adicione comandos que facilitem a abertura do seu perfil. Essa
recomendação é particularmente útil quando você usa um perfil
diferente de "Usuário atual, Host atual". Por exemplo,
adicione o seguinte comando:
function pro {notepad $profile.CurrentUserAllHosts}
-- Adicione uma função que abra a Ajuda do Windows PowerShell em
um arquivo de Ajuda HTML compilado (.chm).
função Get-CHM
{
(invoke-item $env:windir\help\mui\0409\WindowsPowerShellHelp.chm)
}
Essa função abre a versão em inglês do arquivo .chm. No
entanto, você pode substituir o código de idioma (0409) para
abrir outras versões do arquivo .chm.
-- Adicione uma função que liste os aliases para qualquer cmdlet.
função Get-CmdletAlias ($cmdletname)
{
get-alias | Where {$_.definition -like "*$cmdletname*"}
| ft Definition, Name -auto
}
-- Adicione um comando Add-PsSnapin para adicionar qualquer
snap-in do Windows PowerShell que você usa.
-- Personalize seu console.
função Color-Console
{
$host.ui.rawui.backgroundcolor = "white" $host.ui.rawui.foreg
roundcolor = "black" $hosttime = (dir $pshome\powershell.exe)
.creationtime $Host.UI.RawUI.WindowTitle = "Windows
PowerShell $hostversion ($hosttime)" clear-host
}
Color-console
-- Adicione um prompt do Windows PowerShell personalizado que
inclua o nome do computador e o caminho atual.
function prompt
{
$env:computername + "\" + (get-location) + "> "
}
Para obter mais informações sobre o prompt do Windows
PowerShell, consulte about_Prompts.
O PARÂMETRO NOPROFILE
Para iniciar o Windows PowerShell sem perfis, use o parâmetro
NoProfile do PowerShell.exe, o programa que inicia o Windows
PowerShell.
Para começar, abra um programa que pode iniciar o Windows
PowerShell, como o Cmd.exe ou o próprio Windows PowerShell.
Você também pode usar a caixa de diálogo Executar do Windows.
Digite:
powershell -noprofile
Para obter uma lista completa dos parâmetros do PowerShell.exe,
digite:
powershell -?
PERFIS E DIRETIVA DE EXECUÇÃO
A diretiva de execução do Windows PowerShell determina, em parte,
se você pode executar scripts e carregar arquivos de
configuração, incluindo os perfis. A diretiva de execução
Restricted é o padrão. Ela impede a execução de todos os scripts,
inclusive os perfis. Se você usar a diretiva Restricted, o perfil
não será executado e seus conteúdos não serão aplicados.
Um comando Set-ExecutionPolicy define e altera sua diretiva de
execução. É um dos poucos comandos que se aplica a todas as
sessões do Windows PowerShell porque o valor é salvo no Registro.
Você não precisa defini-lo quando abre o console e nem precisa
armazenar um comando Set-ExecutionPolicy em seu perfil.
PERFIS E SESSÕES REMOTAS
Os perfis do Windows PowerShell não são executados automaticamente
em sessões remotas, assim os comandos que os perfis adicionam
não estão presentes na sessão remota.
Além disso, a variável automática $profile não é populada em
sessões remotas.
Para executar um perfil em uma sessão, use o cmdlet Invoke-Command.
Por exemplo, o comando a seguir executa o perfil CurrentUserCurren
tHost do computador local na sessão em $s.
invoke-command -session $s -filepath $profile
O comando a seguir executa o perfil CurrentUserCurrentHost do
computador remoto na sessão em $s. Devido ao fato de a variável
$profile não ser populada, o comando usa o caminho explícito para
o perfil.
invoke-command -session $s {invoke-expression
"$home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
Depois de executar esse comando, os comandos que o perfil
adiciona à sessão estão disponíveis em $s.
CONSULTE TAMBÉM
about_Automatic_Variables
about_Functions
about_Prompts
about_Execution_Policies
about_Signing
about_Remote
Set-ExecutionPolicy