about_Session_Configurations

Breve descrição

Descreve configurações de sessão, que determinam os utilizadores que podem ligar-se ao computador remotamente e os comandos que podem executar.

Longa descrição

Uma configuração de sessão, também conhecida como "ponto final" é um grupo de configurações no computador local que definem o ambiente para as sessões PowerShell que são criadas quando utilizadores remotos ou locais se ligam ao PowerShell no computador local.

Os administradores do computador podem utilizar configurações de sessão para proteger o computador e definir ambientes personalizados para os utilizadores que se ligam ao computador.

Os administradores também podem usar configurações de sessão para determinar as permissões necessárias para se ligarem remotamente ao computador. Por predefinição, apenas membros do grupo Administradores têm permissão para utilizar a configuração da sessão para se ligarem remotamente, mas pode alterar as definições padrão para permitir que todos os utilizadores, ou utilizadores selecionados, se conectem remotamente ao seu computador.

A partir de PowerShell 3.0, pode utilizar um ficheiro de configuração de sessão para definir os elementos de uma configuração de sessão. Esta funcionalidade facilita a personalização de sessões sem código de escrita e a descoberta das propriedades de uma configuração de sessão. Para criar um ficheiro de configuração de sessão, utilize o New-PSSessionConfiguration cmdlet. Para obter mais informações sobre ficheiros de configuração de sessão, consulte about_Session_Configuration_Files.

As configurações de sessão são uma característica da remoting PowerShell baseada em WSMAN. Só são utilizados quando se utiliza o New-PSSession, Invoke-Commandou Enter-PSSession cmdlets para ligar a um computador Windows remoto.

Para gerir as configurações de sessão num computador Windows, inicie o PowerShell com a opção de administrador .

Sobre configurações de sessão

Cada sessão PowerShell utiliza uma configuração de sessão. Isto inclui sessões persistentes que cria utilizando os cmdlets New-PSSession ou Enter-PSSession, e as sessões temporárias que o PowerShell cria quando utiliza o parâmetro ComputerName de um cmdlet que utiliza tecnologia de remoagem baseada na WS-Management, como o Invoke-Command.

Os administradores podem usar configurações de sessão para proteger os recursos do computador e criar ambientes personalizados para os utilizadores que se ligam ao computador. Por exemplo, pode utilizar uma configuração de sessão para limitar o tamanho dos objetos que o computador recebe na sessão, para definir o modo linguístico da sessão e especificar os cmdlets, fornecedores 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, determina quem pode utilizar a configuração da sessão para ligar ao computador. Os utilizadores devem ter permissão de Executar para uma configuração de sessão para usá-la numa sessão. Se um utilizador não tiver as permissões necessárias para utilizar qualquer uma das configurações de sessão num computador, o utilizador não pode ligar-se remotamente ao computador.

Por predefinição, apenas os administradores do computador têm permissão para utilizar as configurações de sessão predefinidos. Mas, pode alterar os descritores de segurança para permitir que todos, ninguém, ou apenas utilizadores selecionados utilizem as configurações de sessão no seu computador.

Configurações de sessão incorporadas

O PowerShell 3.0 inclui configurações de sessão incorporadas chamadas Microsoft.PowerShell e Microsoft.PowerShell.Workflow. Nos computadores que executam versões de 64 bits do Windows, o PowerShell também fornece ao Microsoft.PowerShell32, uma configuração de sessão de 32 bits.

A configuração da sessão Microsoft.PowerShell é utilizada para sessões por predefinição, isto é, quando um comando para criar uma sessão não inclui o parâmetro ConfigurationName da Nova Sessão PSSsion, Enter-PSSssion ou Invoke-Command cmdlet.

Os descritores de segurança para as configurações de sessão predefinidos permitem que apenas membros do grupo de Administradores no computador local os utilizem. Como tal, apenas os membros do grupo Administradores podem ligar-se remotamente ao computador a menos que altere as definições predefinidos.

Pode alterar as configurações de sessão predefinidos utilizando a variável de preferência $PSSessionConfigurationName. Para mais informações, consulte about_Preference_Variables.

Configurações de sessão de visualização no computador local

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

Por exemplo, escreva:

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 da sessão é expandido no PowerShell 3.0 para exibir as propriedades da configuração da sessão que são configuradas utilizando um ficheiro de configuração de sessão.

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

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

Também pode utilizar o fornecedor WSMan no PowerShell para visualizar as configurações da sessão. O provedor WSMan cria um WSMAN: conduza na sua sessão.

No WSMAN: unidade, as configurações de sessão estão no nó plugin. (Todas as configurações de sessão estão no nó plugin, mas há itens no nó plugin que não são configurações de sessão.)

Por exemplo, para visualizar as configurações da sessão no computador local, escreva:

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.wor... microsoft.powershell.workflow
Container  {Name=microsoft.powershell32}     microsoft.powershell32

Visualização de configurações de sessão num computador remoto

Para visualizar as configurações da sessão num computador remoto, utilize o Connect-WSMan cmdlet para adicionar uma nota para o computador remoto ao WSMAN: conduza no computador local e, em seguida, utilize o WSMAN: dirija para visualizar as configurações da sessão.

Por exemplo, o seguinte comando adiciona um nó para o computador remoto Server01 ao WSMAN: conduzir no computador local.

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

Quando o comando estiver completo, pode navegar para o nó para o computador Server01 visualizar as configurações da 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\Pl
ugin

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

Alterar o descritor de segurança de uma configuração de sessão

Em Windows Server 2012 e mais recentes versões do Windows Server, as configurações de sessão incorporada são ativadas por padrão para utilizadores remotos. Noutras versões suportadas do Windows, tem de alterar os descritores de segurança das configurações da sessão para permitir o acesso remoto.

Para permitir o acesso remoto às configurações da sessão no computador, utilize o Enable-PSRemoting cmdlet. Este cmdlet cria duas configurações de sessão:

  • com o nome definido como: "PowerShell." + "versão atual do PowerShell"
  • com o nome "PowerShell.6", desatado a qualquer versão específica do PowerShell.

Além disso, por padrão, apenas membros do grupo de Administradores no computador têm permissão executar para as configurações de sessão predefinidos, mas pode alterar os descritores de segurança nas configurações de sessão predefinidos e em quaisquer configurações de sessão que crie.

Para dar permissão a outros utilizadores para se ligarem remotamente ao computador, utilize o cmdlet Set-PSSessionConfiguration para adicionar permissões "Executar" para esses utilizadores aos descritores de segurança das configurações de sessão Microsoft.PowerShell e Microsoft.PowerShell32.

Por exemplo, o seguinte comando abre uma página de propriedade que permite alterar o descritor de segurança para a configuração da sessão padrão Microsoft.PowerShell.

Set-PSSessionConfiguration -name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Para negar a permissão de todos a todas as configurações de sessão no computador, utilize o Disable-PSSessionConfiguration cmdlet. Por exemplo, o seguinte comando desativa as configurações de sessão predefinidos no computador.

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

Para evitar que os utilizadores remotos se conectem ao computador, mas permita que os utilizadores locais se conectem, utilize o Disable-PSRemoting cmdlet. Disable-PSRemoting adiciona uma entrada "Network_Deny_All" a todas as configurações de sessão no computador.

PS C:> Disable-PSRemoting

Para permitir que os utilizadores remotos utilizem todas as configurações de sessão no computador, utilize o Enable-PSRemoting ou Enable-PSSessionConfiguration cmdlet. Por exemplo, o seguinte comando permite o acesso remoto às configurações de sessão incorporada.

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

Para escamar outras alterações no descritor de segurança de uma configuração de sessão, utilize o cmdlet Set-PSSessionConfiguration. Utilize o parâmetro SecurityDescriptorSDDL para submeter um valor de cadeia SDDL. Utilize o parâmetro ShowSecurityDescriptorUI para exibir uma folha de propriedade de interface de utilizador que o ajuda a criar um novo SDDL.

Por exemplo:

Set-PSSessionConfiguration -Name Microsoft.PowerShell `
  -ShowSecurityDescriptorUI

Criar uma nova configuração de sessão

Para criar uma nova configuração de sessão no computador local, utilize o Register-PSSessionConfiguration cmdlet. Para definir a nova configuração da sessão, pode utilizar um conjunto C#, um script PowerShell e os parâmetros do Register-PSSessionConfiguration cmdlet.

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

Register-PSSessionConfiguration -Name NewConfig `
  -MaximumReceivedDataSizePerCommandMB 20

Quando criar uma configuração de sessão, pode geri-la utilizando os cmdlets de configuração de outra sessão, e aparece no WSMAN: unidade.

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

Remoção de uma configuração de sessão

Para remover uma configuração de sessão do computador local, utilize o Unregister-PSSessionConfiguration cmdlet. Por exemplo, o seguinte comando remove a configuração da sessão NewConfig do computador.

PS C:> Unregister-PSSessionConfiguration -Name NewConfig

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

Restaurar uma configuração de sessão

Para restaurar uma configuração de sessão predefinida que foi eliminada (não registada) acidentalmente, utilize o Enable-PSRemoting cmdlet.

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

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

Selecionando uma configuração de sessão

Para selecionar uma configuração de sessão específica para uma sessão, utilize o parâmetro ConfiguraçãoName de Nova Sessão PSSessão, Enter-PSSession ou Invoke-Command.

Por exemplo, este comando utiliza o New-PSSession cmdlet para iniciar uma sessão de PSSsion no computador Server01. O comando utiliza o parâmetro ConfigurationName para selecionar a configuração WithProfile no computador Server01.

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

Este comando só será bem sucedido se o utilizador atual tiver permissão para utilizar a configuração da sessão WithProfile ou puder fornecer as credenciais de um utilizador que tenha as permissões necessárias.

Também pode utilizar a variável de preferência $PSSessionConfigurationName para alterar a configuração de sessão predefinida 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

Ver também