TÓPICO
about_Session_Configurations
DESCRIÇÃO RESUMIDA
Descreve as configurações de sessão, que determinam os usuários que podem se
conectar remotamente ao computador e os comandos que eles podem executar.
DESCRIÇÃO LONGA
Uma configuração de sessão é um grupo de configurações no
computador local que define o ambiente para as sessões do Windows
PowerShell criadas quando usuários remotos se conectam ao
computador local.
Os administradores podem usar as configurações de sessão para
proteger o computador e definir ambientes personalizados para os
usuários que se conectam a ele.
Os administradores também podem usar as configurações de sessão
para determinar as permissões exigidas para se conectar
remotamente ao computador. Por padrão, somente 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
então usuários selecionados, se conectem remotamente ao seu
computador.
As configurações de sessão constituem um recurso de comunicação
remota do Windows PowerShell baseado no WS-Management (Web Services
for Management). Elas são utilizadas somente quando você
usa 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 em um
computador executando o Windows Vista, o Windows Server 2008 ou
uma versão posterior do Windows, inicie o Windows PowerShell com
a opção "Executar como administrador".
Sobre as configurações de sessão
Toda sessão do Windows PowerShell usa uma configuração de sessão.
Isso inclui as sessões persistentes que você cria usando os
cmdlets New-PSSession ou Enter-PSSession e as sessões temporárias
que o 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 as configurações de sessão para
proteger os recursos do computador e criar ambientes
personalizados para os usuários que se conectam a ele. Por
exemplo, você pode usar uma configuração de sessão para limitar o
tamanho de objetos recebidos pelo computador durante a sessão,
definir o modo de linguagem da sessão e especificar os cmdlets,
os provedores e as funções disponíveis.
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 precisam ter a
permissão Execute de 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, não
poderá se conectar remotamente a ele.
Por padrão, só 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 seu computador.
Configurações de sessão padrão
O Windows PowerShell inclui uma configuração de sessão interna
denominada Microsoft.PowerShell. Em computadores que executam
versões de 64 bits do Windows, o Windows PowerShell fornece também
Microsoft.PowerShell32, uma configuração de sessão de 32 bits.
Essas configurações de sessão são usadas nas sessões por padrão,
ou seja, quando um comando para criar uma sessão não inclui o
parâmetro ConfigurationName dos cmdlets New-PSSession,
Enter-PSSession ou Invoke-Command.
Os descritores de segurança para as configurações de sessão
padrão só permitem que os membros do grupo Administradores do
computador local os utilizem. Assim, somente os membros do grupo
Administradores podem se conectar remotamente ao computador, 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 preferencial $PSSessionConfigurationName. Para obter
mais informações, consulte about_Preference_Variables.
Exibindo configurações de sessão do computador local
Para obter as configurações de sessão do seu computador local, use o
cmdlet Get-PSSessionConfiguration.
Por exemplo, digite:
C:\PS> get-pssessionconfiguration | format-list -property
name, permission
Name : microsoft.powershell
Permission : BUILTIN\Administrators AccessAllowed
Name : microsoft.powershell32
Permission : BUILTIN\Administrators AccessAllowed
Você também pode usar o provedor de WS-Management no Windows
PowerShell para exibir as configurações de sessão. O provedor de
WS-Management cria uma unidade WSMAN: na sua sessão.
Na unidade WSMAN:, 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 exibir as configurações de sessão do computador
local, digite:
C:\PS> dir wsman:\localhost\plugin\microsoft*
WSManConfig: Microsoft.WSMan.Management\WSMan::localhost\Plugin
Name Type Keys
---- ---- ----
microsoft.powershell Container
{Name=microsoft.powershell}
microsoft.powershell32 Container {Name=microsoft.powershell}
Exibindo configurações de sessão de um computador remoto
Para exibir as configurações de sessão de um computador remoto, use o
cmdlet Connect-WSMan para acrescentar uma nota para o computador
remoto à unidade WSMAN: no seu computador local, e depois use a
unidade WSMAN: para exibir as configurações de sessão.
Por exemplo, o comando a seguir acrescenta um nó para o
computador remoto Server01 à unidade WSMAN: no computador local.
C:\PS> connect-wsman server01.corp.fabrikam.com
Quando o comando for concluído, você poderá navegar até o nó para
o computador Server01 para exibir as configurações de sessão.
Por exemplo:
C:\PS> 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
Name Type Keys
---- ---- ----
microsoft.powershell Container {Name=microsoft.powershell}
microsoft.powershell32 Container {Name=microsoft.powershell32}
Alterando o descritor de segurança de uma configuração de sessão
Por padrão, os membros do grupo Administradores do computador têm a
permissão Execute 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 também em qualquer configuração de sessão que você criar.
Para dar a outros usuários permissão para se conectar remotamente
ao computador, use o cmdlet Set-PSSessionConfiguration para
adicionar permissões "Execute" 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 Microsoft.PowerShell.
C:\PS> set-pssessionConfiguration -name Microsoft.PowerShell -showSecurityDescriptorUI
Para negar a todos permissão para todas as configurações de
sessão no computador, use a função Disable-PSRemoting ou o cmdlet
Disable-PSSessionConfiguration. Por exemplo, o comando a seguir
adiciona uma entrada "Negar Todos" a todas as configurações de
sessão do computador.
C:\PS> disable-psremoting
Para adicionar uma entrada "Negar Todos" a uma configuração de
sessão específica, use o cmdlet Disable-PSSessionConfiguration.
Por exemplo, os comandos a seguir adicionam uma entrada "Negar
Todos" à configuração de sessão Microsoft.PowerShell.
C:\PS> disable-pssessionConfiguration -name Microsoft.PowerShell
Para remover a entrada "Negar Todos" de todas as configurações de
sessão, use o cmdlet Enable-PSRemoting ou Enable-PSSessionConfigur
ation. Por exemplo, o comando a seguir remove a entrada "Negar
Todos" das configurações de sessão padrão.
C:\PS> 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 ShowSecurityDescriptorU
I para exibir uma folha de propriedades da interface do usuário,
que o ajudará a criar uma nova SDDL.
Por exemplo:
C:\PS> 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-PSSession
Configuration.
Por exemplo, o comando a seguir cria uma configuração de sessão
idêntica à configuração de sessão Microsoft.PowerShell, exceto
por limitar os dados recebidos de um comando remoto a 20 MB (megabytes).
(O padrão é 50 MB.)
c:\PS> register-psSessionConfiguration -name NewConfig --MaximumReceivedDataSizePerCommandMB 20
Quando você cria uma configuração de sessão, 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.
c:\PS> unregister-psSessionConfiguration -name NewConfig
Para obter mais informações, consulte Unregister-PSSessionConfiguration.
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, o comando a seguir usa o cmdlet New-PSSession para
iniciar uma PSSession no computador Server01. O comando usa o
parâmetro ConfigurationName para selecionar a configuração
WithProfile no computador Server01.
C:\PS> new-pssession -computername Server01 -configurationName WithProfile
Esse comando só funcionará se o usuário atual tiver permissão
para usar a configuração de sessão WithProfile, ou então fornecer
as credenciais de um usuário com as permissões necessárias.
Você também pode usar a variável preferencial $PSSessionConfigurat
ionName para alterar a configuração de sessão padrão do
computador. Para obter mais informações sobre a variável preferencial
$PSSessionConfigurationName, consulte about_Preference_Variables.
CONSULTE TAMBÉM
about_Preference_Variables
about_PSSession
about_Remote
New-PSSession
Disable-PSSessionConfiguration
Enable-PSSessionConfiguration
Get-PSSessionConfiguration
Register-PSSessionConfiguration
Set-PSSessionConfiguration
Unregister-PSSessionConfiguration