about_Profiles
Breve descrição
Descreve como criar e utilizar um perfil do PowerShell.
Descrição longa
Pode criar um perfil do PowerShell para personalizar o seu ambiente e adicionar elementos específicos da sessão a todas as sessões do PowerShell iniciadas.
Um perfil do PowerShell é um script que é executado quando o PowerShell é iniciado. Pode utilizar o perfil como um script de arranque para personalizar o seu ambiente. Pode adicionar comandos, aliases, funções, variáveis, módulos, unidades do PowerShell e muito mais. Também pode adicionar outros elementos específicos da sessão ao seu perfil para que estejam disponíveis em todas as sessões sem ter de os importar ou recriar.
O PowerShell suporta vários perfis para utilizadores e programas de anfitrião. No entanto, não cria os perfis por si.
Tipos de perfil e localizações
O PowerShell suporta vários ficheiros de perfil no âmbito de utilizadores e anfitriões do PowerShell. Pode ter qualquer um ou todos estes perfis no seu computador.
Por exemplo, a consola do PowerShell suporta os seguintes ficheiros de perfil básicos. Os perfis são listados para que sejam executados.
- Todos os Utilizadores, Todos os Anfitriões
- Windows -
$PSHOME\Profile.ps1
- Linux -
/usr/local/microsoft/powershell/7/profile.ps1
- macOS -
/usr/local/microsoft/powershell/7/profile.ps1
- Windows -
- Todos os Utilizadores, Anfitrião Atual
- Windows -
$PSHOME\Microsoft.PowerShell_profile.ps1
- Linux -
/usr/local/microsoft/powershell/7/Microsoft.Powershell_profile.ps1
- macOS -
/usr/local/microsoft/powershell/7/Microsoft.Powershell_profile.ps1
- Windows -
- Utilizador Atual, Todos os Anfitriões
- Windows -
$HOME\Documents\PowerShell\Profile.ps1
- Linux -
~/.config/powershell/profile.ps1
- macOS -
~/.config/powershell/profile.ps1
- Windows -
- Utilizador atual, Anfitrião 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 pela ordem listada. Isto significa que as alterações efetuadas no perfil AllUsersAllHosts podem ser substituídas por qualquer um dos outros scripts de perfil. O perfil CurrentUserCurrentHost é sempre o último. Na Ajuda do PowerShell, o perfil CurrentUserCurrentHost é o perfil mais frequentemente referido como o seu perfil do PowerShell.
Outros programas que alojam o PowerShell podem suportar os seus próprios perfis. Por exemplo, o Visual Studio Code (VS Code) suporta os seguintes perfis específicos do anfitrião.
- Todos os utilizadores, Anfitrião Atual -
$PSHOME\Microsoft.VSCode_profile.ps1
- Utilizador atual, Anfitrião Atual -
$HOME\Documents\PowerShell\Microsoft.VSCode_profile.ps1
Os caminhos de perfil incluem as seguintes variáveis:
- A
$PSHOME
variável armazena o diretório de instalação do PowerShell - A
$HOME
variável armazena o diretório raiz do utilizador atual
Nota
No Windows, a localização da pasta Documentos pode ser alterada por redirecionamento de pastas ou OneDrive. Não recomendamos redirecionar a pasta Documentos para uma partilha de rede ou incluí-la no OneDrive. Redirecionar a pasta pode fazer com que os módulos não carreguem e criem erros nos scripts de perfil.
A variável $PROFILE
A $PROFILE
variável automática armazena os caminhos para os perfis do PowerShell que estão disponíveis na sessão atual.
Para ver um caminho de perfil, apresente o valor da $PROFILE
variável. Também pode utilizar a $PROFILE
variável num comando para representar um caminho.
A $PROFILE
variável armazena o caminho para o perfil "Utilizador Atual, Anfitrião Atual". Os outros perfis são guardados nas propriedades de nota da $PROFILE
variável.
Por exemplo, a $PROFILE
variável tem os seguintes valores na consola do Windows PowerShell.
- Utilizador Atual, Anfitrião Atual -
$PROFILE
- Utilizador Atual, Anfitrião Atual -
$PROFILE.CurrentUserCurrentHost
- Utilizador Atual, Todos os Anfitriões -
$PROFILE.CurrentUserAllHosts
- Todos os Utilizadores, Anfitrião Atual -
$PROFILE.AllUsersCurrentHost
- Todos os Utilizadores, Todos os Anfitriões -
$PROFILE.AllUsersAllHosts
Uma vez que os valores da $PROFILE
variável são alterados para cada utilizador e em cada aplicação anfitriã, certifique-se de que apresenta os valores das variáveis de perfil em cada aplicação anfitriã do PowerShell que utiliza.
Para ver os valores atuais da $PROFILE
variável, escreva:
$PROFILE | Get-Member -Type NoteProperty
Pode utilizar a $PROFILE
variável em muitos comandos. Por exemplo, o seguinte comando abre o perfil "Utilizador Atual, Anfitrião Atual" no Bloco de Notas:
notepad $PROFILE
O comando seguinte determina se foi criado um perfil "Todos os Utilizadores, Todos os Anfitriões" no computador local:
Test-Path -Path $PROFILE.AllUsersAllHosts
Como criar um perfil
Para criar um perfil do PowerShell, utilize 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 utilizador atual na aplicação anfitriã atual do PowerShell, utilize o seguinte comando:
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Neste comando, a instrução impede-o if
de substituir um perfil existente. Substitua o valor da $PROFILE
variável pelo caminho para o ficheiro de perfil que pretende criar.
Nota
Para criar perfis "Todos os Utilizadores" no Windows Vista e versões posteriores do Windows, inicie o PowerShell com a opção Executar como administrador .
Como editar um perfil
Pode abrir qualquer perfil do PowerShell num editor de texto, como o Bloco de Notas.
Para abrir o perfil do utilizador atual na aplicação anfitriã atual do PowerShell no Bloco de Notas, escreva:
notepad $PROFILE
Para abrir outros perfis, especifique o nome do perfil. Por exemplo, para abrir o perfil para todos os utilizadores de todas as aplicações anfitriãs, escreva:
notepad $PROFILE.AllUsersAllHosts
Para aplicar as alterações, guarde o ficheiro de perfil e, em seguida, reinicie o PowerShell.
Como escolher um perfil
Se utilizar várias aplicações anfitriãs, coloque os itens que utiliza em todas as aplicações anfitriãs no seu $PROFILE.CurrentUserAllHosts
perfil. Coloque itens específicos de uma aplicação anfitriã, como um comando que define a cor de fundo de uma aplicação anfitriã, num perfil específico dessa aplicação anfitriã.
Se for um administrador que está a personalizar o PowerShell para muitos utilizadores, siga estas diretrizes:
- Armazenar os itens comuns no
$PROFILE.AllUsersAllHosts
perfil - Armazenar itens específicos de uma aplicação anfitriã em
$PROFILE.AllUsersCurrentHost
perfis específicos da aplicação anfitriã - Armazenar itens para utilizadores específicos nos perfis específicos do utilizador
Verifique a documentação da aplicação anfitriã para qualquer implementação especial de perfis do PowerShell.
Como utilizar um perfil
Muitos dos itens que cria no PowerShell e a maioria dos comandos que executa afetam apenas a sessão atual. Quando terminar a sessão, os itens são eliminados.
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 adiciona à sessão.
Para guardar estes itens e disponibilizá-los em todas as sessões futuras, adicione-os a um perfil do PowerShell.
Outra utilização comum para perfis é guardar funções, aliases e variáveis frequentemente utilizados. Quando guarda os itens num perfil, pode utilizá-los em qualquer sessão aplicável sem os recriar.
Como iniciar um perfil
Quando abre o ficheiro de perfil, este fica em branco. No entanto, pode preenchê-lo com as variáveis, aliases e comandos que utiliza frequentemente.
Seguem-se 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 a consola
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 uma linha de comandos personalizada do PowerShell
function Prompt
{
$env:COMPUTERNAME + "\" + (Get-Location) + "> "
}
Para obter mais informações sobre a linha de comandos do PowerShell, consulte about_Prompts.
Para obter outros exemplos de perfil, veja Personalizar o ambiente da shell.
O parâmetro NoProfile
Para iniciar o PowerShell sem perfis, utilize o parâmetro NoProfile do 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. Também pode utilizar a caixa de diálogo Executar no Windows.
Escreva:
pwsh -NoProfile
Para obter uma lista completa dos parâmetros de pwsh.exe
, escreva:
pwsh -?
Perfis e Política de Execução
A política de execução do PowerShell determina, em parte, se pode executar scripts e carregar ficheiros de configuração, incluindo os perfis. A política de execução restrita é a predefinição. Impede a execução de todos os scripts, incluindo os perfis. Se utilizar a política "Restrito", o perfil não é executado e os respetivos conteúdos não são aplicados.
Um Set-ExecutionPolicy
comando define e altera a política de execução. É um dos poucos comandos que se aplica em todas as sessões do PowerShell porque o valor é guardado no registo. Não tem de o definir quando abre a consola e não tem de armazenar um Set-ExecutionPolicy
comando no seu perfil.
Perfis e sessões remotas
Os perfis do PowerShell não são executados automaticamente em sessões remotas, pelo que os comandos que os perfis adicionam não estão presentes na sessão remota. Além disso, a $PROFILE
variável automática não é preenchida em sessões remotas.
Para executar um perfil numa sessão, utilize o cmdlet Invoke-Command .
Por exemplo, o seguinte comando executa o perfil "Utilizador atual, Anfitrião Atual" a partir do computador local na sessão em $s
.
Invoke-Command -Session $s -FilePath $PROFILE
O seguinte comando executa o perfil "Utilizador atual, Anfitrião Atual" a partir do computador remoto na sessão em $s
. Uma vez que a $PROFILE
variável não está preenchida, o comando utiliza o caminho explícito para o perfil. Utilizamos o operador de origem de pontos para que o perfil seja executado no âmbito atual no computador remoto e não no seu próprio âmbito.
Invoke-Command -Session $s -ScriptBlock {
. "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"
}
Depois de executar este comando, os comandos que o perfil adiciona à sessão estão disponíveis em $s
.