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-Command
ou 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
- about_Preference_Variables
- about_PSSessions
- about_Remote
- about_Session_Configuration_Files
- New-PSSession
- Configuração de Disable-PSSession
- Ativar-PSSessionConfiguration
- Get-PSSessionConfiguration
- Register-PSSessionConfiguration
- Configuração de Set-PSSession
- Não-registro-PSSessionConfiguration
- Novo PSSessionConfigurationFile
- Test-PSSessionConfigurationFile