about_Profiles

Aplica-se a: Windows PowerShell 2.0, Windows PowerShell 3.0

TÓPICO

about_Profiles

DESCRIÇÃO BREVE

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 da sessão para cada sessão do Windows PowerShell que você inicia.

O perfil do Windows PowerShell é um script que é executado quando o Windows 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 Windows PowerShell. Você também pode adicionar outros elementos específicos da sessão ao seu perfil para que fiquem disponíveis em cada sessão sem precisar importar ou recriá-los.

O Windows PowerShell dá suporte a vários perfis de usuários e programas de host. No entanto, ele não criará os perfis para você. Este tópico descreve os perfis e descreve como criar e manter perfis em seu computador.

Explica como usar o parâmetro NoProfile do console do Windows PowerShell (PowerShell.exe) para iniciar o console do Windows PowerShell sem qualquer perfil. E, além disso, explica o efeito da política de execução do Windows PowerShell nos perfis.

OS ARQUIVOS DE PERFIL

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

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

        Description                Path
        -----------                ----
        Current User, Current Host $Home\[My ]Documents\WindowsPowerShell\Profile.ps1
        Current User, All Hosts    $Home\[My ]Documents\Profile.ps1
        All Users, Current Host    $PsHome\Microsoft.PowerShell_profile.ps1
        All Users, All Hosts       $PsHome\Profile.ps1

Os caminhos dos perfis incluem as seguintes variáveis:

- A variável $PsHome, que armazena o diretório de instalação para 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 pode dar suporte a seus próprios perfis. Por exemplo, ISE (Ambiente de Script Integrado) do Windows PowerShell dá suporte aos seguintes perfis de host específico.

        Description                Path
        -----------                -----
        Current user, Current Host $Home\[My ]Documents\WindowsPowerShell\Microsoft.PowerShellISE_profile.ps1
        All users, Current Host    $PsHome\Microsoft.PowerShellISE_profile.ps1

Na ajuda do Windows PowerShell, o perfil "CurrentUser, Current Host" é o perfil mais conhecido como "seu perfil do Windows PowerShell".

A VARIÁVEL $PROFILE

A variável automática $Profile armazena os caminhos para os perfis do Windows 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 de "Current User, Current Host". Os outros perfis são salvos nas propriedades de observação da variável $profile.

Por exemplo, a variável $Profile tem os seguintes valores no console do Windows PowerShell.

        Name                               Description                
        -----------                        -----------
        $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       
 

Como os valores da variável $Profile alteram para cada usuário e cada aplicativo host, certifique-se de que você exiba os valores das variáveis de perfil em cada aplicativo host do Windows 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 comando a seguir abre o perfil "Current User, Current Host" no Bloco de notas:

notepad $profile 

O comando a seguir determina se um perfil de "All Users, All 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 <profile-name>)) 
           {new-item -type file -path <profile-name> -force}

Por exemplo, para criar um perfil do usuário atual no aplicativo host do Windows PowerShell atual, use o seguinte comando:

        if (!(test-path $profile)) 
           {new-item -type file -path $profile -force}

Neste comando, a instrução If evita 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 "All Users" no Windows Vista e versões posteriores do Windows, inicie 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 do Windows PowerShell atual 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, em seguida, reinicie Windows PowerShell.

COMO ESCOLHER UM PERFIL

Se você usar vários aplicativos host, coloque os itens que você usa em todos os aplicativos host em seu perfil $Profile.CurrentUserAllHosts. Coloque itens que são específicos de um aplicativo host, como um comando que define a cor da tela de fundo para um aplicativo host, em um perfil específico ao 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 os itens que são específicos de um aplicativo host em $profile.AllUsersCurrentHost que são específicos para o aplicativo host.

-- Armazene itens para usuários específicos nos perfis de usuário específicos.

Verifique a documentação do aplicativo host para qualquer implementação especial de 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 afetam apenas a sessão atual. Quando você termina a sessão, os itens são excluídos.

Os comandos específicos da sessão e os itens incluem variáveis, variáveis de preferências, aliases, funções, comandos (exceto para 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 futuras sessões, adicione-os a um perfil do Windows PowerShell.

Outro uso comum de perfis é salvar variáveis, aliases e funções usadas 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 está em branco. No entanto, você pode preenchê-lo com os comandos, aliases e variáveis usados com frequência.

Aqui estão algumas sugestões para você começar.

-- Adicione comandos que facilitam abrir 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}

-- Adicione uma função que abre a ajuda do Windows PowerShell em um arquivo de ajuda em HTML compilado (.chm).

           function 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 lista os aliases para qualquer cmdlet.

           function Get-CmdletAlias ($cmdletname)
           {
              get-alias | Where {$_.definition -like "*$cmdletname*"} | ft Definition, Name -auto
           }

-- Adicione um comando Add-PsSnapin para adicionar quaisquer snap-ins do Windows PowerShell que você usa.

-- Personalize seu console.

           function Color-Console 
           {
        $host.ui.rawui.backgroundcolor = "white"
        $host.ui.rawui.foregroundcolor = "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 inclui 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 Cmd.exe ou Windows PowerShell em si. Você também pode usar a caixa de diálogo Executar no Windows.

Digite:

PowerShell -noprofile

Para obter 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 Windows 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. Ela impede a execução de todos os scripts, incluindo os perfis. Se você usar a política restrita, o perfil não é executado e seu conteúdo não é aplicado.

Um comando Set-ExecutionPolicy define e altera sua política de execução. Ele é um dos comandos que se aplica a todos as sessões do Windows PowerShell porque o valor é salvo no Registro. Você não precisa defini-lo ao abrir o console e você não precisa armazenar um comando Set-ExecutionPolicy no seu perfil.

PERFIS E SESSÕES REMOTAS

Os perfis do Windows PowerShell não são executados automaticamente em sessões remotas para que os comandos que o perfil adiciona não estejam 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 CurrentUserCurrentHost 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. Como a variável $profile não é preenchida, o comando usa o caminho explícito para o perfil.

        invoke-command -session $s {invoke-command "$home\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1"}

Depois de executar esse comando, os comandos que o perfil adiciona à sessão são disponibilizados em $s.

CONSULTE TAMBÉM

about_Automatic_Variables

about_Functions

about_Prompts

about_Execution_Policies

about_Signing

about_Remote

Set-ExecutionPolicy