Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Descrição curta
Descreve como criar e usar um perfil do PowerShell.
Descrição longa
Você pode criar um perfil do PowerShell para personalizar seu ambiente e adicionar elementos específicos de sessão a cada sessão do PowerShell iniciada.
Um perfil do PowerShell é um script que é executado quando o PowerShell é iniciado. Você pode usar o perfil como um script de inicialização para personalizar seu ambiente. Você pode adicionar comandos, aliases, funções, variáveis, módulos, unidades do PowerShell e muito mais. Você também pode adicionar outros elementos específicos de sessão ao seu perfil para que eles estejam disponíveis em todas as sessões sem precisar importá-los ou criá-los novamente.
O PowerShell dá suporte a vários perfis para usuários e programas de host. No entanto, ele não cria os perfis para você.
Tipos e locais de perfil
O PowerShell dá suporte a vários arquivos de perfil com escopo para usuários e hosts do PowerShell. Você pode ter qualquer um ou todos esses perfis em seu computador.
O console do PowerShell dá suporte aos seguintes arquivos de perfil básicos. Esses caminhos de arquivo são os locais padrão.
- Todos os usuários, todos os hosts
- Windows –
$PSHOME\Profile.ps1 - Linux –
/opt/microsoft/powershell/7/profile.ps1 - macOS –
/usr/local/microsoft/powershell/7/profile.ps1
- Windows –
- Todos os usuários, host atual
- Windows –
$PSHOME\Microsoft.PowerShell_profile.ps1 - Linux –
/opt/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1 - macOS –
/usr/local/microsoft/powershell/7/Microsoft.PowerShell_profile.ps1
- Windows –
- Usuário Atual, Todos os Hosts
- Windows –
$HOME\Documents\PowerShell\Profile.ps1 - Linux –
~/.config/powershell/profile.ps1 - macOS –
~/.config/powershell/profile.ps1
- Windows –
- Usuário atual, Host Atual
- Windows –
$HOME\Documents\PowerShell\Microsoft.PowerShell_profile.ps1 - Linux –
~/.config/powershell/Microsoft.PowerShell_profile.ps1 - macOS –
~/.config/powershell/Microsoft.PowerShell_profile.ps1
- Windows –
Os scripts de perfil são executados na ordem listada. Isso significa que as alterações feitas no perfil AllUsersAllHosts podem ser substituídas por qualquer um dos outros scripts de perfil. O perfil CurrentUserCurrentHost sempre é executado por último. Na Ajuda do PowerShell, o perfil CurrentUserCurrentHost é o perfil mais conhecido como seu perfil do PowerShell.
Outros programas que hospedam o PowerShell podem dar suporte a seus próprios perfis. Por exemplo, o Visual Studio Code (VS Code) dá suporte aos seguintes perfis específicos do host.
- Todos os usuários, Host Atual –
$PSHOME\Microsoft.VSCode_profile.ps1 - Usuário atual, Host Atual –
$HOME\Documents\PowerShell\Microsoft.VSCode_profile.ps1
Os caminhos de perfil incluem as seguintes variáveis:
- A variável
$PSHOMEarmazena o diretório de instalação do PowerShell - A variável
$HOMEarmazena o diretório base do usuário atual
Nota
No Windows, o local da pasta Documents pode ser alterado por redirecionamento de pasta ou OneDrive. Não recomendamos redirecionar a pasta Documents para um compartilhamento de rede ou incluí-la no OneDrive. Redirecionar a pasta pode fazer com que os módulos falhem ao carregar e criar erros em seus scripts de perfil.
Para obter informações sobre como remover a pasta Documents do gerenciamento do OneDrive, consulte a documentação do OneDrive.
A variável $PROFILE
A variável $PROFILE automática armazena os caminhos para os perfis do 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 "Usuário Atual, Host Atual". Os outros perfis são salvos em propriedades de observação da variável $PROFILE.
Por exemplo, a variável $PROFILE tem os seguintes valores no console do Windows PowerShell.
- Usuário Atual, Host Atual –
$PROFILE - Usuário Atual, Host Atual –
$PROFILE.CurrentUserCurrentHost - Usuário Atual, Todos os Hosts –
$PROFILE.CurrentUserAllHosts - Todos os usuários, host atual –
$PROFILE.AllUsersCurrentHost - Todos os usuários, todos os hosts –
$PROFILE.AllUsersAllHosts
Como os valores da variável $PROFILE mudam para cada usuário e em cada aplicativo host, verifique se você exibe os valores das variáveis de perfil em cada aplicativo host do PowerShell que você usa.
Para ver os valores atuais da variável $PROFILE, digite:
$PROFILE | Select-Object *
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 comando a seguir determina se um perfil "Todos os Usuários, Todos os Hosts" foi criado no computador local:
Test-Path -Path $PROFILE.AllUsersAllHosts
Como criar um perfil
Para criar um perfil do PowerShell, use o seguinte formato de comando:
if (!(Test-Path -Path <profile-name>)) {
New-Item -ItemType File -Path <profile-name> -Force
}
Por exemplo, para criar um perfil para o usuário atual no aplicativo host do PowerShell atual, use o seguinte comando:
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Neste comando, a instrução if impede que você substitua um perfil existente. Substitua o valor da variável $PROFILE pelo caminho para o arquivo de perfil que você deseja criar.
Nota
Para criar perfis "Todos os Usuários" no Windows Vista e versões posteriores do Windows, inicie o PowerShell com a opção Executar como administrador.
Como editar um perfil
Você pode abrir qualquer perfil do PowerShell em um editor de texto, como o Bloco de Notas.
Para abrir o perfil do usuário atual no aplicativo host atual do PowerShell 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 reinicie o PowerShell.
Como escolher um perfil
Se você usar vários aplicativos host, coloque os itens usados em todos os aplicativos host em seu perfil de $PROFILE.CurrentUserAllHosts. Coloque itens específicos para um aplicativo host, como um comando que define a cor da tela de fundo de um aplicativo host, em um perfil específico para esse aplicativo host.
Se você for um administrador que está personalizando o PowerShell para muitos usuários, siga estas diretrizes:
- Armazenar os itens comuns no perfil
$PROFILE.AllUsersAllHosts - Armazenar itens específicos de um aplicativo host em perfis
$PROFILE.AllUsersCurrentHostespecíficos para o aplicativo host - Armazenar itens para usuários específicos nos perfis específicos do usuário
Verifique a documentação do aplicativo host para qualquer implementação especial de perfis do PowerShell.
Como usar um perfil
Muitos dos itens criados no PowerShell e a maioria dos comandos executados afetam apenas a sessão atual. Quando você encerra a sessão, os itens são excluídos.
Os comandos e itens específicos da sessão incluem variáveis do PowerShell, variáveis de ambiente, aliases, funções, comandos e módulos do PowerShell que você adiciona à sessão.
Para salvar esses itens e disponibilizá-los em todas as sessões futuras, adicione-os a um perfil do PowerShell.
Outro uso comum para perfis é salvar funções, aliases e variáveis usados com frequência. Ao salvar 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 fica em branco. No entanto, você pode preenchê-lo com as variáveis, os aliases e os comandos usados com frequência.
Aqui estão algumas sugestões para começar.
Adicionar uma função que lista aliases para qualquer cmdlet
function Get-CmdletAlias ($cmdletName) {
Get-Alias |
Where-Object -FilterScript {$_.Definition -like "$cmdletName"} |
Format-Table -Property Definition, Name -AutoSize
}
Personalizar seu console
function CustomizeConsole {
$hostTime = (Get-ChildItem -Path $PSHOME\pwsh.exe).CreationTime
$hostVersion="$($Host.Version.Major)`.$($Host.Version.Minor)"
$Host.UI.RawUI.WindowTitle = "PowerShell $hostVersion ($hostTime)"
Clear-Host
}
CustomizeConsole
Adicionar um prompt personalizado do PowerShell
function prompt {
$Env:COMPUTERNAME + "\" + (Get-Location) + "> "
}
Para obter mais informações sobre o prompt do PowerShell, consulte about_Prompts.
Para obter outros exemplos de perfil, consulte Personalizando o ambiente do shell.
O parâmetro NoProfile
Para iniciar o PowerShell sem perfis, use o parâmetro NoProfile de pwsh.exe, o programa que inicia o PowerShell.
Para começar, abra um programa que possa iniciar o PowerShell, como Cmd.exe ou o próprio PowerShell. Você também pode usar a caixa de diálogo Executar no Windows.
Tipo:
pwsh -NoProfile
Para obter uma lista completa dos parâmetros de pwsh.exe, digite:
pwsh -?
Perfis e política de execução
A política de execução do 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. Ele impede que todos os scripts sejam executados, incluindo os perfis. Se você usar a política "Restrita", o perfil não será executado e seu conteúdo não será aplicado.
Um Set-ExecutionPolicy conjuntos de comandos e altera sua política de execução. é um dos poucos comandos que se aplica em todas as sessões do PowerShell porque o valor é salvo no registro. Você não precisa defini-lo quando abre o console e não precisa armazenar um comando Set-ExecutionPolicy em seu perfil.
Perfis e sessões remotas
Os perfis do PowerShell não são executados automaticamente em sessões remotas, portanto, os comandos que os perfis adicionam não estão presentes na sessão remota. Além disso, a variável $PROFILE automática 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 "Usuário atual, Host Atual" do computador local na sessão em $s.
Invoke-Command -Session $s -FilePath $PROFILE
O comando a seguir executa o perfil "Usuário atual, Host Atual" 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. Usamos o operador dot sourcing para que o perfil seja executado no escopo atual no computador remoto e não em seu próprio escopo.
Invoke-Command -Session $s -ScriptBlock {
. "$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.