about_Profiles

Breve descrição

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 da sessão a cada sessão do PowerShell que iniciar.

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 da sessão ao seu perfil para que eles estejam disponíveis em todas as sessões sem precisar importá-los ou recriá-los.

O PowerShell oferece suporte a vários perfis para usuários e programas host. No entanto, ele não cria os perfis para você.

Tipos de perfil e locais

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 no seu computador.

O console do PowerShell oferece suporte aos seguintes arquivos de perfil básicos. Esses caminhos de arquivo são os locais padrão.

  • Todos os Utilizadores, Todos os Anfitriões
    • Windows - $PSHOME\Profile.ps1
    • Linux - /opt/microsoft/powershell/7/profile.ps1
    • macOS - /usr/local/microsoft/powershell/7/profile.ps1
  • 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
  • Usuário atual, todos os hosts
    • Windows - $HOME\Documents\PowerShell\Profile.ps1
    • Linux - ~/.config/powershell/profile.ps1
    • macOS - ~/.config/powershell/profile.ps1
  • 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

Nota

No Windows, o Documents local da pasta pode ser alterado pelo redirecionamento de pasta ou pelo OneDrive. Não recomendamos redirecionar a Documents pasta para um compartilhamento de rede ou incluí-la no OneDrive. Redirecionar a pasta pode fazer com que os módulos não sejam carregados e criem erros nos scripts de perfil. Para obter informações sobre como remover a Documents pasta do gerenciamento do OneDrive, consulte a documentação do OneDrive.

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 frequentemente referido como o seu perfil do PowerShell.

Outros programas que hospedam o PowerShell podem oferecer suporte a seus próprios perfis. Por exemplo, o Visual Studio Code (VS Code) oferece 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 $PSHOME variável armazena o diretório de instalação do PowerShell
  • A $HOME variável armazena o diretório base do usuário atual

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 exibir um caminho de perfil, exiba o $PROFILE valor da variável. Você também pode usar a $PROFILE variável em um comando para representar um caminho.

A $PROFILE variável armazena o caminho para o perfil "Usuário atual, host atual". Os outros perfis são salvos nas propriedades de nota da $PROFILE variável.

Por exemplo, a $PROFILE variável 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 Utilizadores, Todos os Anfitriões - $PROFILE.AllUsersAllHosts

Como os $PROFILE valores da variável mudam 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 PowerShell que você usa.

Para ver os valores atuais da $PROFILE variável, digite:

$PROFILE | Select-Object *

Você pode usar a $PROFILE variável em muitos comandos. Por exemplo, o comando a seguir 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 PowerShell atual, use o seguinte comando:

if (!(Test-Path -Path $PROFILE)) {
  New-Item -ItemType File -Path $PROFILE -Force
}

Neste comando, a instrução impede que você substitua if um perfil existente. Substitua o $PROFILE valor da variável 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 PowerShell atual 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 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 $PROFILE.CurrentUserAllHosts perfil. Coloque itens específicos de um aplicativo host, como um comando que define a cor do plano 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 $PROFILE.AllUsersAllHosts perfil
  • Armazenar itens específicos de um aplicativo host em $PROFILE.AllUsersCurrentHost perfis específicos do aplicativo host
  • Armazenar itens para usuários específicos nos perfis específicos do usuário

Certifique-se de verificar a documentação do aplicativo host para qualquer implementação especial de perfis do PowerShell.

Como usar um perfil

Muitos dos itens que você cria no 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 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 usadas com freqüê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, aliases e comandos que você usa com freqüência.

Aqui estão algumas sugestões para você 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
}

Personalize a sua 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 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 seu ambiente de shell.

O parâmetro NoProfile

Para iniciar o PowerShell sem perfis, use 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 o 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 do 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 "Restrito", o perfil não será executado e seu conteúdo não será aplicado.

Um Set-ExecutionPolicy comando define 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 configurá-lo quando abre o console e não precisa armazenar um Set-ExecutionPolicy comando 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 $PROFILE variável 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 $PROFILE variável 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 no $s.

Consulte também