about_Session_Configurations

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

TÓPICO

about_Session_Configurations

DESCRIÇÃO BREVE

Descreve as configurações de sessão, que determinam os usuários que podem se conectar ao computador remotamente e os comandos que eles podem executar.

DESCRIÇÃO LONGA

Uma configuração de sessão, também conhecida como um "ponto de extremidade", é um grupo de configurações no computador local que define o ambiente para as sessões de Windows PowerShell® que são criadas quando os usuários locais ou remotos se conectam ao Windows PowerShell no computador local.

Os administradores do computador podem usar configurações de sessão para proteger o computador e para definir os ambientes personalizados para usuários que se conectam ao computador.

Os administradores também podem usar configurações de sessão para determinar as permissões necessárias para conexão remota ao computador. Por padrão, somente os membros do grupo Administradores têm permissão para usar a configuração da sessão para conexão remota, mas você pode alterar as configurações padrão para permitir que todos os usuários, ou usuários selecionados, se conectem remotamente ao computador.

A partir de Windows PowerShell 3.0, você pode usar um arquivo de configuração de sessão para definir os elementos de uma configuração de sessão. Esse recurso facilita personalizar sessões sem escrever código e descobrir as propriedades de uma configuração de sessão. Para criar um arquivo de configuração de sessão, use o cmdlet New-PSSessionConfiguration. Para obter mais informações sobre arquivos de configurações de sessão, consulte about_Session_Configuration_Files (https://go.microsoft.com/fwlink/?LinkId=236023.

Configurações de sessão são um recurso do WS-Management (Web Services for Management) com base em Windows PowerShell com comunicação remota. Elas são usadas somente quando você usar os cmdlets New-PSSession, Invoke-Command ou Enter-PSSession para se conectar a um computador remoto.

Observação: Para gerenciar as configurações de sessão, inicie Windows PowerShell com a opção "Executar como administrador".

SOBRE CONFIGURAÇÕES DE SESSÃO

Cada sessão do Windows PowerShell usa uma configuração de sessão. Isso inclui sessões persistentes que você cria usando os cmdlets New-PSSession ou Enter-PSSession e as sessões temporárias que Windows PowerShell cria quando você usa o parâmetro ComputerName de um cmdlet que usa a tecnologia de comunicação remota baseada em WS-Management, como Invoke-Command.

Os administradores podem usar configurações de sessão para proteger os recursos do computador e para criar os ambientes personalizados para usuários que se conectam ao computador. Por exemplo, você pode usar uma configuração de sessão para limitar o tamanho dos objetos que o computador recebe na sessão, definir o modo de idioma da sessão e especificar os cmdlets, provedores e funções que estão disponíveis na sessão.

Ao configurar o descritor de segurança de uma configuração de sessão, você determina quem pode usar a configuração da sessão para se conectar ao computador. Os usuários devem ter permissão de execução para uma configuração de sessão para usá-la em uma sessão. Se um usuário não tiver as permissões necessárias para usar qualquer uma das configurações de sessão em um computador, o usuário não pode se conectar ao computador remotamente.

Por padrão, somente os administradores do computador têm permissão para usar as configurações de sessão padrão. Mas você pode alterar os descritores de segurança para permitir que todos, ninguém, ou apenas os usuários selecionados usem as configurações de sessão no computador. Insira o corpo da subseção aqui.

CONFIGURAÇÕES DE SESSÃO INTERNA

O Windows PowerShell 3.0 inclui configurações de sessão interna chamadas Microsoft.PowerShell e Microsoft.PowerShell.Workflow. Em computadores executando versões de 64 bits do Windows, o Windows PowerShell também fornece o Microsoft.PowerShell32, uma configuração de sessão de 32 bits.

A configuração de sessão do Windows PowerShell é usada para sessões por padrão, ou seja, quando um comando para criar uma sessão não inclui o parâmetro ConfigurationName do cmdlet Invoke-Command, Enter-PSSession ou New-PSSession.

Os descritores de segurança para as configurações de sessão padrão permitem que somente os membros do grupo Administradores no computador local usem as configurações. Assim, somente os membros do grupo Administradores podem se conectar ao computador remotamente, a menos que você altere as configurações padrão.

Você pode alterar as configurações de sessão padrão usando a variável de preferência $PSSessionConfigurationName. Para obter mais informações, consulte about_preference_variables.

EXIBINDO CONFIGURAÇÕES DE SESSÃO NO COMPUTADOR LOCAL

Para obter as configurações de sessão no computador local, use o cmdlet Get-PSSessionConfiguration.

Por exemplo, digite:

        PS C:\> Get-PSSessionConfiguration | Format-List -Property Name, Permission

        Name       : microsoft.powershell
        Permission : BUILTIN\Administrators AccessAllowed

        Name       : microsoft.powershell.workflow
        Permission : BUILTIN\Administrators AccessAllowed

        Name       : microsoft.powershell32
        Permission : BUILTIN\Administrators AccessAllowed

O objeto de configuração de sessão é expandido no Windows PowerShell 3.0 para exibir as propriedades da configuração de sessão que são configuradas usando um arquivo de configuração de sessão.

Por exemplo, para ver todas as propriedades de um objeto de configuração de sessão, digite:

        PS C:\> Get-PSSessionConfiguration | Format-List -Property *

Você também pode usar o provedor WSMan no Windows PowerShell para exibir configurações de sessão. O provedor de WSMan cria uma unidade WSMAN: em sua sessão.

Na unidade WSMAN: , as configurações de sessão ficam no nó de plug-in. (Todas as configurações de sessão ficam no nó de plug-in, mas há itens no nó de plug-in que não são configurações de sessão).

Por exemplo, para exibir as configurações de sessão no computador local, digite: Inserir corpo da subseção aqui.

         PS C:\> dir wsman:\localhost\plugin\microsoft*
      
            WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin

         Type            Keys                                Name
         ----            ----                                ----
         Container       {Name=microsoft.powershell}         microsoft.powershell
         Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
         Container       {Name=microsoft.powershell32}       microsoft.powershell32

EXIBINDO CONFIGURAÇÕES DE SESSÃO EM UM COMPUTADOR REMOTO

Para exibir as configurações de sessão em um computador remoto, use o cmdlet Connect-WSMan para adicionar uma observação no computador remoto para a unidade WSMAN: no computador local e, em seguida, use a unidade WSMAN: para exibir as configurações de sessão.

Por exemplo, o comando a seguir adiciona um nó para o computador remoto Server01 na unidade WSMAN: no computador local.

        PS C:\> Connect-WSMan server01.corp.fabrikam.com

Quando o comando é concluído, você pode navegar até o nó para o computador Server01 para exibir as configurações de sessão.

Por exemplo:

        PS C:\> cd wsman:
        
        PS WSMan:\> dir 

        ComputerName                                  Type
        ------------                                  ----
        localhost                                     Container
        server01.corp.fabrikam.com                    Container

        PS WSMan:\> dir server01*\plugin\*


               WSManConfig: Microsoft.WSMan.Management\WSMan::server01.corp.fabrikam.com\Plugin


        Type            Keys                                Name
        ----            ----                                ----
        Container       {Name=microsoft.powershell}         microsoft.powershell
        Container       {Name=microsoft.powershell.workf... microsoft.powershell.workflow
        Container       {Name=microsoft.powershell32}       microsoft.powershell32

ALTERANDO O DESCRITOR DE SEGURANÇA DE UMA CONFIGURAÇÃO DE SESSÃO

No Windows Server 2012 e versões mais recentes do Windows Server, as configurações de sessão internas são habilitadas para usuários remotos por padrão. Em outras versões com suporte do Windows, você deve alterar os descritores de segurança das configurações de sessão para permitir o acesso remoto.

Para habilitar o acesso remoto para as configurações de sessão no computador, use o cmdlet Enable-PSRemoting. Insira o corpo da subseção aqui.

Além disso, por padrão, somente os membros do grupo Administradores no computador têm permissão de execução para as configurações de sessão padrão, mas você pode alterar os descritores de segurança nas configurações de sessão padrão e quaisquer configurações de sessão criadas por você.

Para fornecer a outros usuários permissão para conexão ao computador remotamente, use o cmdlet Set-PSSessionConfiguration para adicionar permissões de execução aos usuários para os descritores de segurança das configurações de sessão do Microsoft.PowerShell e Microsoft.PowerShell32.

Por exemplo, o comando a seguir abre uma página de propriedades que permite que você altere o descritor de segurança para a configuração de sessão padrão do Microsoft.PowerShell.

        PS C:\> Set-PSSessionConfiguration -name Microsoft.PowerShell -ShowSecurityDescriptorUI

Para negar a todos permissão para todas as configurações de sessão no computador, use o cmdlet Disable-PSSessionConfiguration. Por exemplo, o comando a seguir desabilita as configurações de sessão padrão no computador.

        PS C:\> Disable-PSSessionConfiguration -Name Microsoft.PowerShell

Para impedir que usuários remotos se conectem ao computador, e permitir que os usuários locais se conectem, use o cmdlet Disable-PSRemoting. Disable-PSRemoting adiciona uma entrada de "Network_Deny_All" para todas as configurações de sessão no computador.

        PS C:\> Disable-PSRemoting

Para permitir que os usuários remotos usem todas as configurações de sessão no computador, use o cmdlet Enable-PSRemoting ou Enable-PSSessionConfiguration. Por exemplo, o seguinte comando habilita o acesso remoto para as configurações de sessão internas.

        PS C:\> Enable-PSSessionConfiguration -name Microsoft.Power*

Para fazer outras alterações no descritor de segurança de uma configuração de sessão, use o cmdlet Set-PSSessionConfiguration. Use o parâmetro SecurityDescriptorSDDL para enviar um valor de cadeia de caracteres SDDL. Use o parâmetro ShowSecurityDescriptorUI para exibir uma folha de propriedades de interface do usuário que ajuda a criar um novo SDDL.

Por exemplo:

        PS C:\> Set-PSSessionConfiguration -Name Microsoft.PowerShell -ShowSecurityDescriptorUI

CRIANDO UMA NOVA CONFIGURAÇÃO DE SESSÃO

Para criar uma nova configuração de sessão no computador local, use o cmdlet Register-PSSessionConfiguration. Para definir a nova configuração de sessão, você pode usar um assembly C#, um script do Windows PowerShell e os parâmetros do cmdlet Register-PSSessionConfiguration.

Por exemplo, o comando a seguir cria uma configuração de sessão que é idêntica à configuração de sessão do Microsoft.PowerShell, exceto que ela limita os dados recebidos de um comando remoto para 20 megabytes (MB). (O padrão é 50 MB). Insira o corpo da subseção aqui.

        PS C:\> Register-PSSessionConfiguration -Name NewConfig --MaximumReceivedDataSizePerCommandMB                    20

Quando você cria uma configuração de sessão, você pode gerenciá-la usando outros cmdlets de configuração de sessão e ela aparece na unidade WSMAN: .

Para obter mais informações, consulte Register-PSSessionConfiguration.

REMOVENDO UMA CONFIGURAÇÃO DE SESSÃO

Para remover uma configuração de sessão do computador local, use o cmdlet Unregister-PSSessionConfiguration. Por exemplo, o comando a seguir remove as configurações de sessão NewConfig do computador.

        PS C:\> Unregister-PSSessionConfiguration -Name NewConfig

Para obter mais informações, consulte Unregister-PSSessionConfiguration.

RESTAURANDO UMA CONFIGURAÇÃO DE SESSÃO

Para restaurar uma configuração de sessão padrão que foi excluída (não registrada) acidentalmente, use o cmdlet Enable-PSRemoting.

O cmdlet Enable-PSRemoting recria todas as configurações de sessões padrão que não existem no computador. Ele não substitui ou altera os valores de propriedade das configurações de sessão existentes.

Para restaurar os valores originais de propriedade de uma configuração de sessão padrão, use o Unregister-PSSessionConfiguration para excluir a configuração da sessão e, em seguida, use o cmdlet Enable-PSRemoting para recriá-la.

SELECIONANDO UMA CONFIGURAÇÃO DE SESSÃO

Para selecionar uma configuração de sessão específica para uma sessão, use o parâmetro ConfigurationName de New-PSSession, Enter-PSSession ou Invoke-Command.

Por exemplo, este comando usa o cmdlet New-PSSession para iniciar um PSSession no computador Server01. O comando usa o parâmetro ConfigurationName para selecionar a configuração WithProfile no computador Server01.

        PS C:\> New-PSSession -ComputerName Server01 -ConfigurationName WithProfile

Esse comando terá êxito apenas se o usuário atual tiver permissão para usar a configuração de sessão WithProfile ou puder fornecer as credenciais de um usuário que tenha as permissões necessárias.

Você também pode usar a variável de preferência $PSSessionConfigurationName para alterar a configuração de sessão padrão no computador. Para obter mais informações sobre a variável de preferência $PSSessionConfigurationName, consulte about_Preference_Variables.

PALAVRAS-CHAVE

about_Endpoints

about_SessionConfigurations

CONSULTE TAMBÉM

about_Preference_Variables

about_PSSession

about_Remote

about_Session_Configuration_Files

New-PSSession

Disable-PSSessionConfiguration

Enable-PSSessionConfiguration

Get-PSSessionConfiguration

New-PSSessionConfigurationFile

Register-PSSessionConfiguration

Set-PSSessionConfiguration

Test-PSSessionConfigurationFile

Unregister-PSSessionConfiguration