- 11/30/2017
- 7 minutos para ler
-
- S
- s
- x
- q
- Curta Descrição
- Descrição longa
- Os ficheiros de perfil
- A variável $PROFILE
- Como criar um perfil
- Como editar um perfil
- Como escolher um perfil
- Como usar um perfil
- Como iniciar um perfil
- Adicionar comandos que facilitam a abertura do seu perfil
- Adicionar uma função que lista os apelidos para qualquer cmdlet
- Personalizar o seu console
- Adicionar um prompt PowerShell personalizado
- O parâmetro NoProfile
- Perfis e Política de Execução
- Perfis e sessões remotas
- Veja também
Curta Descrição
Descrifica como criar e usar um perfil PowerShell.
Descrição longa
Pode criar um perfil PowerShell para personalizar o seu ambiente e adicionar elementos específicos a cada sessão PowerShell que inicia.
Um perfil PowerShell é um script que corre quando o PowerShell arranca. Você pode usar o perfil como um script de logon para customizar o ambiente. Você pode adicionar comandos, aliases, funções, variáveis, snap-ins, módulos e PowerShelldrives. Você também pode adicionar outros elementos específicos da sessão ao seu perfil que estão disponíveis em cada sessão sem ter que importá-los ou recriá-los.
PowerShell suporta vários perfis para usuários e programas host. No entanto, ele não cria os perfis para você. Este tópico descreve os perfis, e descreve como criar e manter perfis no seu computador.
Explica como usar o parâmetro NoProfile do console 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 ficheiros de perfil
PowerShell suporta vários ficheiros de perfil. Além disso, os programas da máquina PowerShell podem suportar os seus próprios perfis específicos de máquina.
Por exemplo, a consola PowerShell suporta os seguintes ficheiros de perfil básicos. Os perfis são listados em ordem de precedência. O primeiro perfil tem a maior precedência.
Descrição | Caminho |
---|---|
Todos os utilizadores, todos os anfitriões | $PSHOME\Profile.ps1 |
Todos os usuários, Anfitrião atual | $PSHOME\Microsoft.PowerShell_profile.ps1 |
Usuário atual, Todos os Hosts | $Home\Documentos\PowerShell\Profile.ps1 |
Usuário actual, Anfitrião actual | $Home\Documentos\PowerShell\ Microsoft.PowerShell_profile.ps1 |
Os caminhos do perfil incluem as seguintes variáveis:
- A variável
$PSHOME
, que armazena o diretório de instalação do PowerShell - A variável
$Home
, que armazena o diretório home do usuário atual
Além disso, outros programas que hospedam o PowerShell podem suportar seus próprios perfis. Por exemplo, o Visual Studio Code suporta os seguintes perfis específicos.
Descrição | Caminho |
---|---|
Todos os utilizadores, Anfitrião Actual | $PSHOME\Microsoft.VSCode_profile.ps1 |
Usuário actual, Current Host | $Home\Documents\PowerShell\ Microsoft.VSCode_profile.ps1 |
Na Ajuda PowerShell, o perfil “CurrentUser, Current Host” é o perfil mais frequentemente referido como “seu perfil PowerShell”.
A variável $PROFILE
A variável automática $PROFILE
armazena os caminhos para os perfis PowerShell que estão disponíveis na sessão actual.
Para ver um caminho de perfil, mostre o valor da variável $PROFILE
. Você canalso usa a variável $PROFILE
num comando para representar um caminho.
A variável $PROFILE
armazena o caminho para o perfil “Current User, Current Host”. Os outros perfis são guardados nas propriedades de nota da variável $PROFILE
variavel.
Por exemplo, a variável $PROFILE
tem os seguintes valores no console do WindowsPowerShell.
Descrição | Nome |
---|---|
Usuário actual, Anfitrião actual | $PROFILE |
Usuário actual, Anfitrião atual | >$PROFILE.CurrentUserCurrentHost > |
Usuário atual, Todos os Anfitriões | $PROFILE.CurrentUserAllHosts |
Todos os usuários, Current Host | $PROFILE.AllUsersCurrentHost |
All Users, All Hosts | $PROFILE.AllUsersAllHosts |
Porque os valores da variável $PROFILE
mudam para cada utilizador e em cada aplicação de alojamento, certifique-se de que exibe os valores das variáveis de perfil em cada aplicação de alojamento PowerShell que utiliza.
Para ver os valores actuais da variável $PROFILE
, digite:
$PROFILE | Get-Member -Type NoteProperty
Pode usar a variável $PROFILE
em muitos comandos. Por exemplo, o seguinte comando abre o perfil “Current User, Current Host” no Notepad:
notepad $PROFILE
O seguinte comando determina se foi criado um perfil “All Users, All Hosts” no computador local:
Test-Path -Path $PROFILE.AllUsersAllHosts
Como criar um perfil
Para criar um perfil 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 utilizador actual na aplicação anfitriã PowerShell actual, use o seguinte comando:
if (!(Test-Path -Path $PROFILE)) { New-Item -ItemType File -Path $PROFILE -Force}
Neste comando, a instrução If
previne que você escreva por cima de um perfil existente. Substitua o valor de <profile-path> placeholder pelo caminho para o ficheiro de perfil que pretende criar.
Note
Para criar perfis “Todos os Utilizadores” no Windows Vista e versões posteriores do Windows, inicie o PowerShell com a opção Run as administrator.
Como editar um perfil
Pode abrir qualquer perfil PowerShell num editor de texto, tal como o Notepad.
Para abrir o perfil do utilizador actual na aplicação PowerShell actual no Notepad, digite:
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, digite:
notepad $PROFILE.AllUsersAllHosts
Para aplicar as alterações, guarde o ficheiro de perfil e depois reinicie o PowerShell.
Como escolher um perfil
Se utiliza várias aplicações anfitriãs, coloque os itens que utiliza em todas as aplicações anfitriãs no seu perfil $PROFILE.CurrentUserAllHosts
. Coloque os itens que são específicos para um aplicativo host, como um comando que define a cor de fundo para um aplicativo host, em um perfil que seja específico para aquele aplicativo host.
Se você é um administrador que está customizando o PowerShell para muitos usuários, siga estas diretrizes:
- Armazene os itens comuns no
$PROFILE.AllUsersAllHosts
perfil - Armazene itens que são específicos para um aplicativo host em
$PROFILE.AllUsersCurrentHost
perfis que são específicos para a aplicação hostapplication - Armazene itens para usuários particulares nos perfis específicos do usuário
Certifique-se de verificar a documentação do aplicativo host para qualquer implementação especial dos 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 termina a sessão, os itens são eliminados.
Os comandos e itens específicos da sessão incluem variáveis, variáveis de preferências, alias, funções, comandos (excepto para aPolítica de Execução de Definições),e módulos PowerShell que adiciona à sessão.
Para guardar estes itens e torná-los disponíveis em todas as sessões futuras, adicione-os a um perfil PowerShell.
Outro uso comum para perfis é guardar funções, alias e variáveis utilizadas 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 fica em branco. No entanto, você pode preenchê-lo com as variáveis, apelidos e comandos que você usa frequentemente.
Aqui estão algumas sugestões para começar.
Adicionar comandos que facilitam a abertura do 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}
Adicionar uma função que lista os apelidos para qualquer cmdlet
function Get-CmdletAlias ($cmdletname) { Get-Alias | Where-Object -FilterScript {$_.Definition -like "$cmdletname"} | Format-Table -Property Definition, Name -AutoSize}
Personalizar o 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 PowerShell personalizado
function Prompt{$env:COMPUTERNAME + "\" + (Get-Location) + "> "}
Para mais informações sobre o prompt PowerShell, veja sobre os projetos_.
O parâmetro NoProfile
Para iniciar o PowerShell sem perfis, use o parâmetro NoProfile do PowerShell.exe, o programa que inicia o PowerShell.
Para iniciar, abra um programa que possa iniciar o PowerShell, como o Cmd.exe ou o próprio PowerShell. Também pode usar a caixa de diálogo Executar no Windows.
Type:
PowerShell -NoProfile
Para 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 PowerShell determina, em parte, se pode executar scripts e carregar ficheiros de configuração, incluindo os perfis. A política de execução Restrictedex é o padrão. Ela impede que todos os scripts sejam executados, incluindo os perfis. Se você usar a política “Restricted”, o perfil não é executado, e seu conteúdo não é aplicado.
A Set-ExecutionPolicy
conjuntos de comandos e altera a sua política de execução. É um dos poucos comandos que se aplicam em todas as sessões 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
no seu perfil.
Perfis e sessões remotas
Perfis PowerShell não são executados automaticamente em sessões remotas, portanto os comandos que os perfis adicionados não estão presentes na sessão remota. Além disso, a variável automática $PROFILE
não é preenchida nas sessões remotas.
Para executar um perfil em uma sessão, use o Invoke-Commandcmdlet.
Por exemplo, o seguinte comando executa o perfil “Current user, Current Host “do computador local na sessão em $s
.
Invoke-Command -Session $s -FilePath $PROFILE
O seguinte comando executa o perfil “Current user, Current Host” do computador local na sessão em $s
. Como a variável $PROFILE
não está povoada, o comando usa o caminho explícito para o perfil. Usamos o operador dotsourcing para que o perfil seja executado no escopo atual no computador theremote e não em seu próprio escopo.
Invoke-Command -Session $s -ScriptBlock { . "$HOME\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
Após executar este comando, os comandos que o perfil adiciona à sessão estão disponíveis em $s
.
>
Veja também
sobre_Variáveis_automáticas
>
sobre_Funções
>
sobre_Prompts
>
sobre_Execução_Políticas
>
sobre_Assinatura
>
sobre_Remote
>
sobre_Escopos
>
Set-ExecuçãoPolítica