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