Explicando o Profile do PowerShell

Oi Galera! Se você vem do ambiente UNIX/Linux já deve estar acostumado a utilizar o bash_profile, no entanto para quem vem de um ambiente Windows Server e não se habitou com o “Shell”  (PowerShell, zsh, bash, …) está informação poderá tornar seu trabalho mais fácil e elegante. 

O profile é utilizado para customizar o ambiente de cada sessão do PowerShell, o script de profile irá rodar a cada sessão aberta, logo se você nunca criou um arquivo de profile  o PowerShell inicializou sem customizações para o seu ambiente.

Diferentemente de alguns outros ambientes de Shell, o PowerShell permite diversos arquivos de profile. Por exemplo, podemos ter um profile para o prompt de comando e outro para VSCode.

Para compreender melhor, primeiramente vou introduzir três variáveis de sistema:

  • $PSHOME: indica o diretório de instalação do PowerShell;
  • $HOME: indica o diretório Home do usuário;
  • $PROFILE: indica o caminho onde o profile.

Nos exemplos abaixo, vou utilizar o PowerShell Core versão 6.2.3 no MacOS X e o Windows PowerShell versão 5.1.18362.145 em um Windows 10.

Com as informações sobre estas variáveis, ficará fácil compreender como funciona para criarmos profiles para cada ambientes ou aplicativo.

Quando precisarmos associar um perfil para todos os usuários (AllUsers), devemos colocar em $PSHome e quando for para o usuário local em $Home. Veja os exemplos abaixo:

Para o PowerShell ISE do usuário SQLCrespi (apenas no Windows):

No caso de você nunca ter personalizado um perfil, será necessário criar o diretório WindowsPowerShell dentro de Documents.

$Home\SQLCrespi Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1

Para o VSCode do usuário SQLCrespi (multi-platform):

Minha recomendação é utilizar a área de terminal do VSCode para encontrar o arquivo de profile. Veja o exemplo (MacOsX):

Para o prompt em meu usuário:

Sendo DBA, a maior parte das vezes que eu abro o prompt do PowerShell é para executar comandos de acesso ao SQL Server. Logo no meu caso, é interessante abrir o prompt e já importar o módulo do SQL Server. Para isso, eu vou salvar o arquivo Profile.ps1 no WindowsPowershell do Documents e neste arquivo conterá o cmdlet import-module SQLServer -Force.

Ao carregar o prompt de comando, o módulo será importado e receberei a mensagem de Bem-Vindo.

No caso do PowerShell Core usando o MacOsX o arquivo será localizado em /Users/sqlcrespi/.config/powershell/

Sugestões de Uso

Pessoalmente, utilizo muito em todos os ambientes que costumo acessar com frequência. Por exemplo, no meu Surface Book e MacBook quando eu abro o prompt há uma série de comandos relacionados para carregar ou não módulos do Azure, SQL Server, etc.

Ainda falando dos ambientes no SurfaceBook, quando abro como administrator o prompt, fica com uma cor diferente do usuário local de acesso. Faço o mesmo em alguns ambientes de clientes, que conecto diretamente por PowerShell.

Em meu usuário no servidor de SQL Server da @crespidb é importado sem questionar o módulo da CrespiDB “cdb.ps1”, mssqlserver e o DBATools.

Era isso pessoal! Espero que este post ajude a criar ambientes personalizados.

Abraço, Rodrigo

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.