TÓPICO about_Profiles DESCRIÇÃO RESUMIDA Descreve como criar e usar um perfil do Windows PowerShell. DESCRIÇÃO LONGA Você pode criar um perfil do Windows PowerShell para personalizar seu ambiente e adicionar elementos específicos de sessão a todas as sessões do Windows PowerShell que você inicia. Um perfil do Windows PowerShell é um script que é executado durante a inicialização do Windows PowerShell. 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 Windows PowerShell. Também é possível adicionar outros elementos específicos de sessão ao seu perfil, para que eles estejam disponíveis em todas as sessões sem que seja preciso importá-los ou recriá-los. O Windows PowerShell oferece suporte a vários perfis para usuários e programas host. Porém, ele não cria os perfis para você. Este tópico descreve os perfis e explica como criá-los e mantê-los em seu computador. Explica também como usar o parâmetro NoProfile do console do Windows PowerShell (PowerShell.exe) para iniciar o Windows PowerShell sem qualquer perfil. Além disso, descreve o efeito da diretiva de execução do Windows PowerShell nos perfis. OS ARQUIVOS DE PERFIL O Windows PowerShell oferece suporte a vários arquivos de perfil. Além disso, os programas host do Windows PowerShell possuem suporte para os próprios perfis específicos ao host. Por exemplo, o console do Windows PowerShell oferece suporte aos arquivos de perfil básicos listados a seguir. Os perfis estão em ordem de precedência. O primeiro perfil tem a precedência mais alta. Descrição Caminho ----------- ---- Usuário atual, Host atual $Home\[My ]Documents\WindowsPowerShell\Profile.ps1 Usuário atual, Todos os hosts $Home\[My ]Documents\Profile.ps1 Todos os usuários, Host atual $PsHome\Microsoft.PowerShell_profile.ps1 Todos os usuários, Todos os hosts $PsHome\Profile.ps1 Os caminhos de perfil incluem as seguintes variáveis: - A variável $PsHome, que armazena o diretório de instalação do Windows PowerShell. - A variável $Home, que armazena o diretório base do usuário atual. Além disso, outros programas que hospedam o Windows PowerShell podem suportar seus próprios perfis. Por exemplo, o ISE (Ambiente de Script Integrado) do Windows PowerShell dá suporte os perfis específicos de host a seguir. Descrição Caminho ----------- ----- Usuário atual, Host atual $Home\[My ]Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1 Todos os usuários, Host atual $PsHome\Microsoft.PowerShellISE_profile.ps1 Na Ajuda do Windows PowerShell, o perfil "Usuário atual, Host atual" é o perfil geralmente chamado de "seu perfil do Windows PowerShell". A VARIÁVEL $PROFILE A variável automática $Profile armazena os caminhos para os perfis do Windows PowerShell que estão 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 nas propriedades de observação da variável $profile. Por exemplo, a variável $Profile tem os valores a seguir no console do Windows PowerShell. Nome Descrição ----------- ----------- $Profile Usuário atual, Host atual $Profile.CurrentUserCurrentHost Usuário atual, Host atual $Profile.CurrentUserAllHosts Usuário atual, Todos os hosts $Profile.AllUsersCurrentHost Todos os usuários, Host atual $Profile.AllUsersAllHosts Todos os usuários, Todos os hosts Pelo fato de os valores da variável $Profile serem diferentes 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 Windows PowerShell que você usar. 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 seguinte comando determina se um perfil "Todos os usuários, Todos os hosts" foi criado no computador local: test-path $profile.AllUsersAllHosts COMO CRIAR UM PERFIL Para criar um perfil do Windows PowerShell, use o seguinte formato de comando: if (!(test-path <nome_do_perfil>)) {new-item -type file -path <nome_do_perfil> -force} Por exemplo, para criar um perfil para o usuário atual no aplicativo host atual do Windows PowerShell, use o seguinte comando: if (!(test-path $profile)) {new-item -type file -path $profile -force} Nesse comando, a instrução If impede a substituição de um espaço reservado existente pelo caminho. 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 "All Users" no Windows Vista e nas versões posteriores do Windows, inicie o Windows PowerShell com a opção "Executar como administrador". COMO EDITAR UM PERFIL Você pode abrir qualquer perfil do Windows PowerShell em um editor de texto, como o Bloco de Notas. Para abrir o perfil do usuário atual no aplicativo host atual do Windows PowerShell 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 Windows PowerShell. COMO ESCOLHER UM PERFIL Se você usar vários aplicativos host, coloque os itens que usa em todos os aplicativos host no seu perfil $Profile.CurrentUserAllHosts. Coloque os itens que são específicos a um aplicativo host, como um comando que define a cor do plano de fundo do aplicativo, em um perfil que seja específico àquele aplicativo host. Se você for um administrador que está personalizando o Windows PowerShell para muitos usuários, siga estas diretrizes: -- Armazene os itens comuns no perfil $profile.AllUsersAllHosts. -- Armazene itens que sejam específicos a um aplicativo host nos perfis $profile.AllUsersCurrentHost específicos ao aplicativo host. -- Armazene itens para determinados usuários nos perfis específicos ao usuário. Verifique a documentação do aplicativo host para qualquer implementação especial dos perfis do Windows PowerShell. COMO USAR UM PERFIL Muitos dos itens que você cria no Windows PowerShell e a maioria dos comandos que você executa só afetam a sessão atual. Quando você terminar a sessão, os itens serão excluídos. Os comandos e itens específicos de sessão incluem variáveis, variáveis de preferência, aliases, funções, comandos (exceto Set-ExecutionPolicy) e snap-ins do Windows PowerShell que você adiciona à sessão. Para salvar esses itens e torná-los disponíveis em todas as sessões futuras, adicione-os a um perfil do Windows PowerShell. Outro uso comum dos perfis é para salvar funções, aliases e variáveis usados com frequência. Quando você salva os itens em um perfil, pode usá-los em qualquer sessão aplicável sem que seja necessário recriá-los. COMO INICIAR UM PERFIL Quando você abrir o arquivo de perfil, ele estará em branco. Porém, você pode preenchê-lo com as variáveis, os aliases e os comandos usados com frequência. Aqui estão algumas sugestões iniciais. -- Adicione comandos que facilitem a abertura do seu perfil. Essa recomendação é particularmente útil quando você usa um perfil diferente de "Usuário atual, Host atual". Por exemplo, adicione o seguinte comando: function pro {notepad $profile.CurrentUserAllHosts} -- Adicione uma função que abra a Ajuda do Windows PowerShell em um arquivo de Ajuda HTML compilado (.chm). função Get-CHM { (invoke-item $env:windir\help\mui\0409\WindowsPowerShellHelp.chm) } Essa função abre a versão em inglês do arquivo .chm. No entanto, você pode substituir o código de idioma (0409) para abrir outras versões do arquivo .chm. -- Adicione uma função que liste os aliases para qualquer cmdlet. função Get-CmdletAlias ($cmdletname) { get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Definition, Name -auto } -- Adicione um comando Add-PsSnapin para adicionar qualquer snap-in do Windows PowerShell que você usa. -- Personalize seu console. função Color-Console { $host.ui.rawui.backgroundcolor = "white" $host.ui.rawui.foreg roundcolor = "black" $hosttime = (dir $pshome\powershell.exe) .creationtime $Host.UI.RawUI.WindowTitle = "Windows PowerShell $hostversion ($hosttime)" clear-host } Color-console -- Adicione um prompt do Windows PowerShell personalizado que inclua o nome do computador e o caminho atual. function prompt { $env:computername + "\" + (get-location) + "> " } Para obter mais informações sobre o prompt do Windows PowerShell, consulte about_Prompts. O PARÂMETRO NOPROFILE Para iniciar o Windows PowerShell sem perfis, use o parâmetro NoProfile do PowerShell.exe, o programa que inicia o Windows PowerShell. Para começar, abra um programa que pode iniciar o Windows PowerShell, como o Cmd.exe ou o próprio Windows PowerShell. Você também pode usar a caixa de diálogo Executar do Windows. Digite: powershell -noprofile Para obter uma lista completa dos parâmetros do PowerShell.exe, digite: powershell -? PERFIS E DIRETIVA DE EXECUÇÃO A diretiva de execução do Windows PowerShell determina, em parte, se você pode executar scripts e carregar arquivos de configuração, incluindo os perfis. A diretiva de execução Restricted é o padrão. Ela impede a execução de todos os scripts, inclusive os perfis. Se você usar a diretiva Restricted, o perfil não será executado e seus conteúdos não serão aplicados. Um comando Set-ExecutionPolicy define e altera sua diretiva de execução. É um dos poucos comandos que se aplica a todas as sessões do Windows PowerShell porque o valor é salvo no Registro. Você não precisa defini-lo quando abre o console e nem precisa armazenar um comando Set-ExecutionPolicy em seu perfil. PERFIS E SESSÕES REMOTAS Os perfis do Windows PowerShell não são executados automaticamente em sessões remotas, assim 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 é populada 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 CurrentUserCurren tHost do computador local na sessão em $s. invoke-command -session $s -filepath $profile O comando a seguir executa o perfil CurrentUserCurrentHost do computador remoto na sessão em $s. Devido ao fato de a variável $profile não ser populada, o comando usa o caminho explícito para o perfil. invoke-command -session $s {invoke-expression "$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 Set-ExecutionPolicy