about_Profiles
Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0
TÓPICO
about_Profiles
DESCRIÇÃO BREVE
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 da sessão para cada sessão do Windows PowerShell que você inicia.
O perfil do Windows PowerShell é um script que é executado quando o Windows PowerShell é iniciado. 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. Você também pode adicionar outros elementos específicos da sessão ao seu perfil para que fiquem disponíveis em cada sessão sem precisar importar ou recriá-los.
O Windows PowerShell dá suporte a vários perfis de usuários e programas de host. No entanto, ele não criará os perfis para você. Este tópico descreve os perfis e descreve como criar e manter perfis em seu computador.
Explica como usar o parâmetro NoProfile do console do Windows PowerShell (PowerShell.exe) para iniciar o console do Windows PowerShell sem qualquer perfil. E, além disso, explica o efeito da política de execução do Windows PowerShell nos perfis.
OS ARQUIVOS DE PERFIL
O Windows PowerShell dá suporte a vários arquivos de perfil. Além disso, os programas host do Windows PowerShell podem dar suporte a seus próprios perfis de host específico.
Por exemplo, o console do Windows PowerShell dá suporte aos seguintes arquivos de perfil básico. Os perfis são listados em ordem de precedência. O primeiro perfil tem a precedência mais alta.
Description Path
----------- ----
Current User, Current Host $Home\[My ]Documents\WindowsPowerShell\Profile.ps1
Current User, All Hosts $Home\[My ]Documents\Profile.ps1
All Users, Current Host $PsHome\Microsoft.PowerShell_profile.ps1
All Users, All Hosts $PsHome\Profile.ps1
Os caminhos dos perfis incluem as seguintes variáveis:
- A variável $PsHome, que armazena o diretório de instalação para 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 pode dar suporte a seus próprios perfis. Por exemplo, ISE (Ambiente de Script Integrado) do Windows PowerShell dá suporte aos seguintes perfis de host específico.
Description Path
----------- -----
Current user, Current Host $Home\[My ]Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
All users, Current Host $PsHome\Microsoft.PowerShellISE_profile.ps1
Na ajuda do Windows PowerShell, o perfil "CurrentUser, Current Host" é o perfil mais conhecido como "seu perfil do Windows PowerShell".
A VARIÁVEL $PROFILE
A variável automática $Profile armazena os caminhos para os perfis do Windows PowerShell 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 de "Current User, Current Host". Os outros perfis são salvos nas propriedades de observação da variável $profile.
Por exemplo, a variável $Profile tem os seguintes valores no console do Windows PowerShell.
Name Description
----------- -----------
$Profile Current User,Current Host
$Profile.CurrentUserCurrentHost Current User,Current Host
$Profile.CurrentUserAllHosts Current User,All Hosts
$Profile.AllUsersCurrentHost All Users, Current Host
$Profile.AllUsersAllHosts All Users, All Hosts
Como os valores da variável $Profile alteram para cada usuário e cada aplicativo host, certifique-se de que você exiba os valores das variáveis de perfil em cada aplicativo host do Windows PowerShell que você usa.
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 comando a seguir abre o perfil "Current User, Current Host" no Bloco de notas:
notepad $profile
O comando a seguir determina se um perfil de "All Users, All 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 <profile-name>))
{new-item -type file -path <profile-name> -force}
Por exemplo, para criar um perfil do usuário atual no aplicativo host do Windows PowerShell atual, use o seguinte comando:
if (!(test-path $profile))
{new-item -type file -path $profile -force}
Neste comando, a instrução If evita que você substitua um perfil existente. 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 versões posteriores do Windows, inicie 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 do Windows PowerShell atual no Bloco de notas, digite:
notepad $profile
Para abrir outros perfis, especifique o nome do perfil. Por exemplo, para abrir o perfil para todos os usuários de todos os aplicativos host, digite:
notepad $profile.AllUsersAllHosts
Para aplicar as alterações, salve o arquivo de perfil e, em seguida, reinicie Windows PowerShell.
COMO ESCOLHER UM PERFIL
Se você usar vários aplicativos host, coloque os itens que você usa em todos os aplicativos host em seu perfil $Profile.CurrentUserAllHosts. Coloque itens que são específicos de um aplicativo host, como um comando que define a cor da tela de fundo para um aplicativo host, em um perfil específico ao 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 os itens que são específicos de um aplicativo host em $profile.AllUsersCurrentHost que são específicos para o aplicativo host.
-- Armazene itens para usuários específicos nos perfis de usuário específicos.
Verifique a documentação do aplicativo host para qualquer implementação especial de 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 afetam apenas a sessão atual. Quando você termina a sessão, os itens são excluídos.
Os comandos específicos da sessão e os itens incluem variáveis, variáveis de preferências, aliases, funções, comandos (exceto para 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 futuras sessões, adicione-os a um perfil do Windows PowerShell.
Outro uso comum de perfis é salvar variáveis, aliases e funções usadas com frequência. Quando você salva os itens em um perfil, você pode usá-los em qualquer sessão aplicável sem recriá-los.
COMO INICIAR UM PERFIL
Quando você abre o arquivo de perfil, ele está em branco. No entanto, você pode preenchê-lo com os comandos, aliases e variáveis usados com frequência.
Aqui estão algumas sugestões para você começar.
-- Adicione comandos que facilitam abrir seu perfil. Isso é especialmente útil se você usar um perfil que não seja o perfil "Current User, Current Host". Por exemplo, adicione o seguinte comando:
function pro {notepad $profile.CurrentUserAllHosts}
-- Adicione uma função que abre a ajuda do Windows PowerShell em um arquivo de ajuda em HTML compilado (.chm).
function 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 lista os aliases para qualquer cmdlet.
function Get-CmdletAlias ($cmdletname)
{
get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Definition, Name -auto
}
-- Adicione um comando Add-PsSnapin para adicionar quaisquer snap-ins do Windows PowerShell que você usa.
-- Personalize seu console.
function Color-Console
{
$host.ui.rawui.backgroundcolor = "white"
$host.ui.rawui.foregroundcolor = "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 inclui 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 Cmd.exe ou Windows PowerShell em si. Você também pode usar a caixa de diálogo Executar no Windows.
Digite:
PowerShell -noprofile
Para obter uma lista completa dos parâmetros do PowerShell.exe, digite:
PowerShell -?
PERFIS E POLÍTICA DE EXECUÇÃO
A política de execução do Windows PowerShell determina, em parte, se você pode executar scripts e carregar arquivos de configuração, incluindo os perfis. A política de execução restrita é o padrão. Ela impede a execução de todos os scripts, incluindo os perfis. Se você usar a política restrita, o perfil não é executado e seu conteúdo não é aplicado.
Um comando Set-ExecutionPolicy define e altera sua política de execução. Ele é um dos comandos que se aplica a todos as sessões do Windows PowerShell porque o valor é salvo no Registro. Você não precisa defini-lo ao abrir o console e você não precisa armazenar um comando Set-ExecutionPolicy no seu perfil.
PERFIS E SESSÕES REMOTAS
Os perfis do Windows PowerShell não são executados automaticamente em sessões remotas para que os comandos que o perfil adiciona não estejam presentes na sessão remota. Além disso, a variável automática $profile não é preenchida 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 CurrentUserCurrentHost 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. Como a variável $profile não é preenchida, o comando usa o caminho explícito para o perfil.
invoke-command -session $s {invoke-command "$home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
Depois de executar esse comando, os comandos que o perfil adiciona à sessão são disponibilizados em $s.
CONSULTE TAMBÉM
about_Automatic_Variables
about_Functions
about_Prompts
about_Execution_Policies
about_Signing
about_Remote
Set-ExecutionPolicy