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 "ponto de extremidade", é um grupo de configurações no computador local que define o ambiente para as sessões do PowerShell que são criadas quando usuários remotos ou locais se conectam ao PowerShell no computador local.
Os administradores do computador podem usar configurações de sessão para proteger o computador e definir 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 se conectar ao computador remotamente. Por padrão, somente os membros do grupo Administradores têm permissão para usar a configuração de sessão para se conectar remotamente, mas você pode alterar as configurações padrão para permitir que todos os usuários, ou usuários selecionados, se conectem remotamente ao seu computador.
A partir do 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 a personalização de sessões sem escrever código e a descoberta das 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 como criar arquivos de configuração, confira about_Session_Configuration_Files.
As configurações de sessão são um recurso da comunicação remota do PowerShell baseada em WSMAN. Eles são usados somente quando você usa os New-PSSession
cmdlets , Invoke-Command
ou Enter-PSSession
para se conectar a um computador Windows remoto.
Para gerenciar as configurações de sessão em um computador Windows, inicie o PowerShell com a opção Executar como administrador .
Sobre as configurações de sessão
Cada sessão do 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 o 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 criar 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, para definir o modo de idioma da sessão e para especificar os cmdlets, provedores e funções 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 de sessão para se conectar ao computador. Os usuários devem ter permissão Executar 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 poderá 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. No entanto, você pode alterar os descritores de segurança para permitir que todos, ninguém ou apenas usuários selecionados usem as configurações de sessão em seu computador.
Configurações de sessão integradas
O PowerShell 3.0 inclui configurações de sessão internas chamadas Microsoft.PowerShell e Microsoft.PowerShell.Workflow. Em computadores que executam versões de 64 bits do Windows, o PowerShell também fornece Microsoft.PowerShell32, uma configuração de sessão de 32 bits.
A configuração de sessão do Microsoft.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 New-PSSession, Enter-PSSession ou Invoke-Command.
Os descritores de segurança para as configurações de sessão padrão permitem que apenas membros do grupo Administradores no computador local os usem. Dessa forma, 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 em seu 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 PowerShell 3.0 para exibir as propriedades da configuração de sessã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 PowerShell para exibir as configurações de sessão. O provedor WSMan cria uma unidade WSMAN: em sua sessão.
Na unidade WSMAN:, as configurações de sessão estão no nó Plug-in. (Todas as configurações de sessão estão no nó Plug-in, mas há itens no nó 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:
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
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 para o computador remoto à unidade WSMAN: em seu 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 à unidade WSMAN: no computador local.
PS C:> Connect-WSMan server01.corp.fabrikam.com
Quando o comando for concluído, você poderá navegar até o nó do computador Server01 para exibir 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
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 às configurações de sessão no computador, use o cmdlet Enable-PSRemoting. Esse cmdlet cria duas configurações de sessão:
- com o nome definido como: "PowerShell." + "versão atual do PowerShell"
- com o nome "PowerShell.6", desvinculado de qualquer versão específica do PowerShell.
Além disso, por padrão, somente os membros do grupo Administradores no computador têm permissão Executar 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 em qualquer configuração de sessão que você criar.
Para dar a outros usuários permissão para se conectar ao computador remotamente, use o cmdlet Set-PSSessionConfiguration para adicionar permissões "Executar" para esses usuários aos descritores de segurança das configurações de sessão Microsoft.PowerShell e Microsoft.PowerShell32.
Por exemplo, o comando a seguir abre uma página de propriedades que permite alterar o descritor de segurança para a configuração de sessão padrão do Microsoft.PowerShell.
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, mas permitir que usuários locais se conectem, use o cmdlet Disable-PSRemoting. 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 usuários remotos usem todas as configurações de sessão no computador, use o cmdlet Enable-PSRemoting ou Enable-PSSessionConfiguration. Por exemplo, o comando a seguir habilita o acesso remoto às configurações de sessão integradas.
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 da interface do usuário que ajuda você a criar um novo SDDL.
Por exemplo:
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 PowerShell e os parâmetros do cmdlet Register-PSSessionConfiguration.
Por exemplo, o comando a seguir cria uma configuração de sessão idêntica à configuração de sessão do Microsoft.PowerShell, exceto que limita os dados recebidos de um comando remoto a 20 megabytes (MB). (O padrão é 50 MB).
Register-PSSessionConfiguration -Name NewConfig `
-MaximumReceivedDataSizePerCommandMB 20
Ao criar uma configuração de sessão, você pode gerenciá-la usando os 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 a configuração 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 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 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, esse 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 só terá êxito 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.
KEYWORDS
about_Endpoints about_SessionConfigurations
Confira também
- about_Preference_Variables
- about_PSSessions
- about_Remote
- about_Session_Configuration_Files
- New-PSSession
- Disable-PSSessionConfiguration
- Enable-PSSessionConfiguration
- Get-PSSessionConfiguration
- Register-PSSessionConfiguration
- Set-PSSessionConfiguration
- Unregister-PSSessionConfiguration
- New-PSSessionConfigurationFile
- Test-PSSessionConfigurationFile