Neste tutorial vamos ver sobre PowerShell Profiles e seu uso. Os perfis PowerShell ajudam a personalizar seu ambiente e adicionar elementos para cada sessão PowerShell que você iniciar. O perfil PowerShell é um script que corre sempre que iniciamos o PowerShell. Você é capaz de usar um perfil PowerShell como um script de login para personalizar o ambiente. Ao usar um perfil PowerShell, você pode adicionar comandos, apelidos, funções, variáveis, snap-ins, módulos, PSDrives e quaisquer outros elementos específicos da sessão no seu evnironmet. Você não terá que importá-los ou recriá-los toda vez que você executar o PowerShell. Ele será carregado automaticamente. O PowerShell suporta vários perfis para utilizadores e programas anfitriões. PowerShell não cria nenhum perfil para você.
Se você quiser comandos específicos da sessão, variáveis, variáveis de preferência, apelidos, funções, comandos (exceto para Set-ExecutionPolicy), e módulos PowerShell que você usa freqüentemente, você pode usar perfis para carregar em todas as sessões futuras.
Profile Files
Console PowerShell suporta os seguintes perfis:
-
$Home\Documents\PowerShell\Microsoft.PowerShell_profile.ps1
– Usuário atual, Host atual -
$Home\Documents\PowerShell\Profile.ps1
– Usuário atual, Todos os Hosts -
$PsHome\Microsoft.PowerShell_profile.ps1
– Todos os usuários, Host atual -
$PsHome\Profile.ps1
– Todos os usuários, Todos os Hosts
Os perfis acima são mostrados em ordem de precedência. O primeiro perfil da lista tem a maior ordem de precedência. Como você pode ver nos perfis acima, nós temos duas variáveis. As variáveis $PSHome
e $Home
apresentam os seguintes valores.
-
$PSHome
– Armazena o directório de instalação do PowerShell -
$Home
– Armazena o directório home do utilizador actual
Outros programas que hospedam o PowerShell podem suportar os seus próprios perfis. PowerShell Integrated Scripting Environment (ISE) suporta os seguintes perfis específicos do host.
-
$Home\Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
– Current user, Current Host -
$PsHome\Microsoft.PowerShellISE_profile.ps1
– All users, Current Host
As per Microsoft, na Ajuda do PowerShell, o perfil “CurrentUser, Current Host” é o perfil mais frequentemente referido como “seu perfil PowerShell”.
Variável Perfil
No PowerShell temos uma variável automática chamada $Profile
. Todos os caminhos de perfil PowerShell que estão disponíveis na sessão actual são guardados em $Profile
variável. Ao visualizar a variável $Profile
, você verá o caminho do perfil.
>A variável $Profile
armazena o caminho para o perfil “Current User, Current Host”. Os outros perfis são guardados nas propriedades da variável $Profile
> variável.
>
Pode especificar um perfil usando as propriedades da variável. No Windows PowerShell Console, nós temos os seguintes valores na variável $Profile
.
-
$Profile
– Current User, Current Host -
$Profile.CurrentUserCurrentHost
– Current User, Current Host -
$Profile.CurrentUserAllHosts
– Current User, All Hosts -
$Profile.AllUsersCurrentHost
– All Users, Current Host -
$Profile.AllUsersAllHosts
– All Users, All Hosts
Você é capaz de usar a variável $Profile
nos seus comandos.
Código:
Test-Path -Path $PROFILETest-Path -Path $PROFILE.CurrentUserCurrentHostTest-Path -Path $PROFILE.CurrentUserAllHostsTest-Path -Path $PROFILE.AllUsersCurrentHostTest-Path -Path $PROFILE.AllUsersAllHosts
Saída:
O teste dos comandos acima se o perfil especificado tiver sido criado. Como você pode ver, a resposta é falsa para todos eles. Como você já mencionamos anteriormente, os perfis não são criados por padrão. Você terá que criá-los.
Criar um perfil
Para criar um perfil você precisa usar o seguinte comando.
Código:
New-Item -ItemType File -Path $profile -Force
O comando acima irá criar um perfil para “Current User, Current Host”.
Note que o acima irá substituir qualquer perfil existente. Se quiser assegurar que não irá substituir nenhum perfil que já exista e perder as alterações que já aplicou, pode tentar o abaixo.
Code:
if (-not (Test-Path -Path $profile.AllUsersAllHosts)){ New-Item -ItemType File -Path $profile.AllUsersAllHosts -Force}
O comando acima irá verificar se existe um perfil para “All Users, All Hosts” e se não existir irá criar o perfil.
Para criar um perfil terá de correr a consola PowerShell como administrador. Isto aplica-se a partir do Windows Vista e versões posteriores.
Editar um perfil
Se um perfil existe e você precisa aplicar algumas alterações ou adições, você precisa usar um editor de texto para editar o perfil. Usando o notepad é uma maneira fácil de editar o perfil.
Código:
notepad $profile
Como você pode ver abaixo meu perfil atual está configurado para fornecer uma mensagem de boas-vindas quando eu abro meu console.
Agora eu vou usar o comando acima para aplicar algumas alterações no meu perfil.
>Below são as alterações que eu tenho aplicado.
>
Então quando eu reiniciar o console PowerShell, como você pode ver as alterações foram aplicadas.
Diretivas do perfil
Below Eu vou fornecer algumas diretrizes para a configuração de seus perfis, como fornecido pela Microsoft.
Se você usa vários aplicativos host, coloque os itens que você usa em todos os aplicativos host no seu
$Profile.CurrentUserAllHosts
profile. Coloque os itens específicos de um aplicativo host, como um comando que define a cor de fundo para um aplicativo host, em um perfil específico para esse aplicativo host.Se você é um administrador que está personalizando 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 o aplicativo host- 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.
Sem perfil
Even se tiver criado perfis para carregar cada vez que abrir o seu console, você tem permissão para executar o PowerShell sem qualquer perfil a ser carregado. Pode fazer isto executando o PowerShell com o parâmetro -NoProfile
. Isto pode ser feito a partir de cmd.exe, caixa de diálogo Executar ou o próprio PowerShell.
Código:
PowerShell -NoProfile
Política de execução
A política de execução do PowerShell determina se pode executar scripts e carregar ficheiros de configuração, incluindo os perfis. A política de execução “Restrita” é o padrão. Você pode encontrar mais informações sobre a política de execução do PowerShell aqui. Se você usar a política “Restrita”, ela impede que todos os scripts sejam executados, incluindo os perfis. O conteúdo do perfil não é aplicado. Um comando Set-ExecutionPolicy
muda sua política de execução em todas as sessões do PowerShell porque o valor é salvo no registro. Não é necessário defini-lo quando abre o console, ou armazenar um comando Set-ExecutionPolicy
no seu perfil.
Perfil na sessão remota
Perfis PowerShell não são executados automaticamente nas 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.
Se quisermos executar o perfil a partir do nosso computador local, para uma sessão remota, precisamos usar Invoke-Command
cmdlet.
O exemplo abaixo irá executar o perfil local para uma sessão remota.
Código:
$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -FilePath $profile
Eliminar:
Como o perfil não será preenchido em sessão remota, também podemos carregar o perfil remoto para a sessão. Verifique o exemplo abaixo.
Código:
$MySession = New-PSSession -ComputerName RemoteComputerInvoke-Command -Session $MySession -ScriptBlock {. "$env:USERPROFILE\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}
Eliminar:
>
Espero que o tutorial sobre PowerShell Profiles seja útil.
Por favor, deixe-me saber seus comentários e pensamentos.
O seu feedback é apreciado.
>
Links Relacionados
- >
- Tutoriais PowerShell
- Escripts PowerShell
- Sobre_Perfis | Microsoft Docs
- Variáveis Automáticas PowerShell
- Operadores Lógicos PowerShell
- Política de Execução PowerShell
- TesteCaminho – Microsoft Docs
- Novo-Item – Microsoft Docs
- Saída de escrita – Microsoft Docs
- Set-ExecutionPolicy – Microsoft Docs
- Invoque…Comando – Microsoft Docs
>
>
>
>
>
>