Compartilhar via


Sobre perfis

Descrição curta

Descreve como criar e usar 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 que iniciar.

Um perfil do PowerShell é um script que é executado quando o 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 PowerShell. 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 dá suporte a vários perfis para usuários e programas de host. No entanto, ele não cria os perfis para você. Este tópico descreve os perfis e descreve como criar e manter perfis em seu computador.

Ele explica como usar o parâmetro NoProfile do console do PowerShell (PowerShell.exe) para iniciar o PowerShell sem nenhum perfil. E explica o efeito da política de execução do PowerShell nos perfis.

Os arquivos de perfil

O PowerShell dá suporte a vários arquivos de perfil. Além disso, os programas host do PowerShell podem dar suporte a seus próprios perfis específicos do host.

Por exemplo, o console do PowerShell dá suporte aos seguintes arquivos de perfil básicos. Os perfis são listados em ordem de precedência. O primeiro perfil tem a precedência mais alta.

Descrição Caminho
Todos os usuários, todos os hosts $PSHOME\Profile.ps1
Todos os usuários, host atual $PSHOME\Microsoft.PowerShell_profile.ps1
Usuário atual, todos os hosts $Home\[My ]Documents\WindowsPowerShell\Profile.ps1
Usuário atual, host atual $Home\[Meu]Documentos\WindowsPowerShell\
Microsoft.PowerShell_profile.ps1

Os caminhos de perfil incluem as seguintes variáveis:

  • A $PSHOME variável, que armazena o diretório de instalação do PowerShell
  • A $Home variável, que armazena o diretório inicial do usuário atual

Além disso, outros programas que hospedam o PowerShell podem dar suporte a seus próprios perfis. Por exemplo, o ISE (Ambiente de Script Integrado) do PowerShell dá suporte aos seguintes perfis específicos do host.

Descrição Caminho
Todos os usuários, Host atual $PSHOME\Microsoft.PowerShellISE_profile.ps1
Usuário atual, host atual $Home\[Meu]Documentos\WindowsPowerShell\
Microsoft.PowerShellISE_profile.ps1

Na Ajuda do PowerShell, o perfil "CurrentUser, Current Host" é o perfil mais frequentemente referido como "seu perfil do PowerShell".

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.

Descrição Nome
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 | 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 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
}

Nesse comando, a instrução If impede 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 "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 de um aplicativo host, como um comando que define a cor da tela de fundo de um aplicativo host, em um perfil específico desse 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.AllUsersCurrentHost especí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, variáveis de preferência, aliases, funções, comandos (exceto Set-ExecutionPolicy) 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.

Adicione comandos que facilitam a abertura do seu perfil

Isso é especialmente útil se você usar um perfil diferente do perfil "Usuário atual, host atual". Por exemplo, adicione o seguinte comando:

function Pro {notepad $PROFILE.CurrentUserAllHosts}

Adicionar uma função que lista os aliases de qualquer cmdlet

function Get-CmdletAlias ($cmdletname) {
  Get-Alias |
    Where-Object -FilterScript {$_.Definition -like "$cmdletname"} |
      Format-Table -Property Definition, Name -AutoSize
}

Personalizar seu console

function Color-Console {
  $Host.ui.rawui.backgroundcolor = "white"
  $Host.ui.rawui.foregroundcolor = "black"
  $hosttime = (Get-ChildItem -Path $PSHOME\PowerShell.exe).CreationTime
  $hostversion="$($Host.Version.Major)`.$($Host.Version.Minor)"
  $Host.UI.RawUI.WindowTitle = "PowerShell $hostversion ($hosttime)"
  Clear-Host
}
Color-Console

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.

O parâmetro NoProfile

Para iniciar o PowerShell sem perfis, use o parâmetro NoProfile de PowerShell.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:

PowerShell -NoProfile

Para obter uma lista completa dos parâmetros de PowerShell.exe, digite:

PowerShell -?

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 configurá-lo ao abrir 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 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 "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.

Consulte Também

about_Automatic_Variables

about_Functions

about_Prompts

about_Execution_Policies

about_Signing

about_Remote

about_Scopes

Set-ExecutionPolicy