about_Session_Configuration_Files

Aplica-se a: Windows PowerShell 3.0

TÓPICO

about_Session_Configuration_Files

DESCRIÇÃO BREVE

Descreve os arquivos de configuração de sessão, que podem ser usados em uma configuração de sessão ("ponto de extremidade") para definir o ambiente de sessões que usam a configuração de sessão.

DESCRIÇÃO LONGA

Um "arquivo de configuração de sessão" é um arquivo de texto com uma extensão de nome de arquivo .pssc que contém uma tabela de hash de valores e propriedades de configuração de sessão. Você pode usar um arquivo de configuração de sessão para definir as propriedades de uma configuração de sessão e, assim, definir o ambiente das sessões do Windows PowerShell® que usam a configuração de sessão.

Arquivos de configuração de sessão tornam mais fácil criar configurações de sessão personalizadas sem montagens complexas ou scripts de C#.

Uma "configuração de sessão" ou "ponto de extremidade" é uma coleção de configurações no computador local que determina quais usuários podem criar sessões no computador e quais comandos podem ser executados em sessões. Para obter mais informações sobre as configurações de sessão, consulte about_Session_Configurations (https://go.microsoft.com/fwlink/?LinkID=145152).

As configurações de sessão foram introduzidas no Windows PowerShell 2.0. Os arquivos de configurações de sessão foram introduzidos no Windows PowerShell 3.0. Você deve usar o Windows PowerShell 3.0 para incluir um arquivo de configuração de sessão em uma configuração de sessão, mas os usuários do Windows PowerShell 2.0 e posteriores são afetados por todas as configurações na configuração da sessão.

CRIANDO SESSÕES PERSONALIZADAS

Você pode personalizar vários recursos de uma sessão do Windows PowerShell especificando propriedades de sessão em uma configuração de sessão. Você pode personalizar uma sessão escrevendo um programa C# que define um espaço de execução personalizado, ou você pode usar um arquivo de configuração de sessão para definir as propriedades de sessões que são criadas usando a configuração de sessão.

Você pode usar um arquivo de configuração de sessão para criar sessões totalmente funcionais para usuários altamente confiáveis, sessões bloqueadas criadas para acesso mínimo e sessões projetadas para determinadas tarefas que contêm somente os módulos necessários para a tarefa.

Por exemplo, você pode determinar se os usuários da sessão podem usar elementos de linguagem do Windows PowerShell, como blocos de script, ou se podem executar apenas comandos. Você pode determinar qual versão do Windows PowerShell pode executar na sessão, quais módulos são importados na sessão e quais cmdlets, funções e sessão de aliases os usuários podem executar.

CRIANDO UM ARQUIVO DE CONFIGURAÇÃO DE SESSÃO

É a maneira mais fácil de criar um arquivo de configuração de sessão usando o cmdlet New-PSSessionConfiguration. Este cmdlet gera um arquivo com formato e sintaxe corretos e verifica muitos dos valores de propriedade.

Para obter descrições detalhadas das propriedades que você pode definir em um arquivo de configuração de sessão, consulte o tópico de ajuda para o cmdlet New-PSSessionConfigurationFile.

Para criar um arquivo de configuração de sessão com os valores padrão, use o seguinte comando: Inserir corpo da seção aqui.

        PS C:\> New-PSSessionConfigurationFile -Path .\Defaults.pssc

Para abrir e exibir o arquivo em seu editor de texto padrão, use o seguinte comando:

        PS C:\> Invoke-Item -Path .\Defaults.pssc

Para criar uma sessão de configuração para sessões em que o usuário pode executar comandos, mas não usa outros elementos de linguagem do Windows PowerShell, digite:

        PS C:\> New-PSSessionConfigurationFile -LanguageMode NoLanguage -Path .\NoLanguage.pssc

Para criar uma configuração de sessão para sessões em que os usuários podem usar somente cmdlets Get, digite:

        PS C:\> New-PSSessionConfigurationFile -VisibleCmdlets Get-* -Path .\GetSessions.pssc

USANDO UM ARQUIVO DE CONFIGURAÇÃO DE SESSÃO

Você pode incluir um arquivo de configuração de sessão ao criar uma configuração de sessão ou adicioná-lo à configuração de sessão posteriormente.

Para incluir um arquivo de configuração de sessão ao criar uma configuração de sessão, use o parâmetro Path do cmdlet Register-PSSessionConfiguration.

O comando a seguir inclui o arquivo NoLanguage.pssc ao criar a configuração da sessão NoLanguage.

      PS C:\> Register-PSSessionConfiguration -Name NoLanguage -Path .\NoLanguage.pssc

Para adicionar um arquivo de configuração de sessão a uma configuração de sessão existente, use o parâmetro Path do cmdlet Set-PSSessionConfiguration. A alteração afetará todas as novas sessões criadas com a configuração da sessão após a conclusão do comando.

O comando a seguir adiciona o arquivo NoLanguage.pssc à configuração de sessão LockedDown.

      PS C:\> Set-PSSessionConfiguration -Name LockedDown -Path .\NoLanguage.pssc

Quando os usuários usam a configuração de sessão LockedDown para criar uma sessão, eles podem executar cmdlets, mas não podem criar ou usar variáveis, atribuir valores ou usar outros elementos de linguagem do Windows PowerShell.

Por exemplo, o comando a seguir usa o cmdlet New-PSSession para criar uma sessão no computador local que usa a configuração de sessão LockedDown. O comando salva a sessão na variável $s. A ACL de configuração da sessão determina quem pode usá-la para criar uma sessão.

      PS C:\> $s = New-PSSession -ComputerName Srv01 -ConfigurationName LockedDown

O comando a seguir usa o cmdlet Invoke-Command para executar comandos na sessão na variável $s. O primeiro comando, que executa o cmdlet Get-UICulture, terá êxito. No entanto, o segundo comando, que obtém o valor da variável $PSUICulture, falha.

      PS C:\> Invoke-Command -Session $s {Get-UICulture}
      en-US

      PS C:\> Invoke-Command -Session $s {$PSUICulture}
      The syntax is not supported by this runspace. This might be because it is in no-language mode.
        + CategoryInfo          : ParserError: ($PSUICulture:String) [], ParseException
        + FullyQualifiedErrorId : ScriptsNotAllowed

EDITANDO UM ARQUIVO DE CONFIGURAÇÃO DE SESSÃO

Para editar o arquivo de configuração de sessão que está sendo usado por uma configuração de sessão, comece localizando a cópia ativa do arquivo de configuração de sessão.

Quando você usa um arquivo de configuração de sessão em uma configuração de sessão, o Windows PowerShell cria uma cópia ativa do arquivo de configuração de sessão e o armazena no diretório $pshome\SessionConfig no computador local.

O local da cópia ativa de um arquivo de configuração de sessão é armazenado na propriedade ConfigFilePath do objeto de configuração da sessão.

O comando a seguir obtém o local do arquivo de configuração de sessão para a configuração de sessão NoLanguage.

      PS C:\> (Get-PSSessionConfiguration -Name NoLanguage).ConfigFilePath
      C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc

Você pode editar o arquivo em qualquer editor de texto. O arquivo é alterado assim que você o salva e é efetivo para novas sessões que usam a configuração de sessão.

TESTANDO UM ARQUIVO DE CONFIGURAÇÃO DE SESSÃO

Certifique-se de testar todos os arquivos de configuração de sessão editados manualmente. Se a sintaxe do arquivo e os valores não forem válidos, os usuários não poderão usar a configuração de sessão para criar uma sessão.

Por exemplo, o comando a seguir testa o arquivo de configuração de sessão ativa da configuração de sessão NoLanguage.

     PS C:\> Test-PSSessionConfigurationFile -Path C:\WINDOWS\System32\WindowsPowerShell\v1.0\SessionConfig\NoLanguage_0c115179-ff2a-4f66-a5eb-e56e5692ba22.pssc

Você pode usar Test-PSSessionConfigurationFile para testar qualquer arquivo de configuração de sessão, incluindo os arquivos que o New-PSSessionConfiguration cria. Para obter mais informações, consulte o tópico de ajuda para o cmdlet Test-PSSessionConfigurationFile.

REMOVENDO UM ARQUIVO DE CONFIGURAÇÃO DE SESSÃO

Você não pode remover com segurança um arquivo de configuração de sessão de uma configuração de sessão, mas você pode substituí-lo por um que não tenha nenhum efeito. Insira o corpo da seção aqui.

Para remover um arquivo de configuração de sessão, crie um arquivo de configuração de sessão com as configurações padrão e, em seguida, use o cmdlet Set-PSSessionConfiguration para substituir o arquivo de configuração de sessão personalizado por uma versão padrão.

Por exemplo, o comando a seguir cria um arquivo de configuração de sessão padrão e, em seguida, substitui o arquivo de configuração de sessão ativa na configuração de sessão NoLanguage.

     PS C:\> New-PSSessionConfigurationFile -Path .\Default.pssc
     PS C:\> Set-PSSessionConfiguration -Name NoLanguage -Path .\Default.pssc

Como resultado desse comando, a configuração de sessão NoLanguage agora fornece suporte de linguagens completo (padrão) em todas as sessões criadas com a configuração da sessão.

EXIBINDO AS PROPRIEDADES DE UMA CONFIGURAÇÃO DE SESSÃO

Os objetos de configuração de sessão que representam as configurações de sessão que usam arquivos de configuração de sessão têm propriedades adicionais que facilitam identificar e analisar a configuração de sessão. (Observe que o nome do tipo inclui uma definição de exibição formatada.)

      PS C:\> Get-PSSessionConfiguration NoLanguage | Get-Member

        TypeName: Microsoft.PowerShell.Commands.PSSessionConfigurationCommands#PSSessionConfiguration

      Name                          MemberType     Definition
      ----                          ----------     ----------
      Equals                        Method         bool Equals(System.Object obj)
      GetHashCode                   Method         int GetHashCode()
      GetType                       Method         type GetType()
      ToString                      Method         string ToString()
      Architecture                  NoteProperty   System.String Architecture=64
      Author                        NoteProperty   System.String Author=juneb
      AutoRestart                   NoteProperty   System.String AutoRestart=fals
      Capability                    NoteProperty   System.Object[] Capability=Sys
      CompanyName                   NoteProperty   System.String CompanyName=Unkn
      configfilepath                NoteProperty   System.String configfilepath=C
      Copyright                     NoteProperty   System.String Copyright=(c) 20
      Enabled                       NoteProperty   System.String Enabled=True
      ExactMatch                    NoteProperty   System.String ExactMatch=true
      ExecutionPolicy               NoteProperty   System.String ExecutionPolicy=
      Filename                      NoteProperty   System.String Filename=%windir
      GUID                          NoteProperty   System.String GUID=0c115179-ff
      ProcessIdleTimeoutSec         NoteProperty   System.String ProcessIdleTimeo
      IdleTimeoutms                 NoteProperty   System.String IdleTimeoutms=72
      lang                          NoteProperty   System.String lang=en-US
      LanguageMode                  NoteProperty   System.String LanguageMode=NoL
      MaxConcurrentCommandsPerShell NoteProperty   System.String MaxConcurrentCom
      MaxConcurrentUsers            NoteProperty   System.String MaxConcurrentUse
      MaxIdleTimeoutms              NoteProperty   System.String MaxIdleTimeoutms
      MaxMemoryPerShellMB           NoteProperty   System.String MaxMemoryPerShel
      MaxProcessesPerShell          NoteProperty   System.String MaxProcessesPerS
      MaxShells                     NoteProperty   System.String MaxShells=300
      MaxShellsPerUser              NoteProperty   System.String MaxShellsPerUser
      Name                          NoteProperty   System.String Name=NoLanguage
      PSVersion                     NoteProperty   System.String PSVersion=3.0
      ResourceUri                   NoteProperty   System.String ResourceUri=http
      RunAsPassword                 NoteProperty   System.String RunAsPassword=
      RunAsUser                     NoteProperty   System.String RunAsUser=
      SchemaVersion                 NoteProperty   System.String SchemaVersion=1.
      SDKVersion                    NoteProperty   System.String SDKVersion=1
      OutputBufferingMode           NoteProperty   System.String OutputBufferingM
      SessionType                   NoteProperty   System.String SessionType=Defa
      UseSharedProcess              NoteProperty   System.String UseSharedProcess
      SupportsOptions               NoteProperty   System.String SupportsOptions=
      xmlns                         NoteProperty   System.String xmlns=http://sch
      XmlRenderingType              NoteProperty   System.String XmlRenderingType
      Permission                    ScriptProperty System.Object Permission {get=

As novas propriedades facilitam a pesquisa de configurações de sessão. Por exemplo, você pode usar a propriedade ExecutionPolicy para encontrar uma configuração de sessão que dá suporte a sessões com a política de execução RemoteSigned. Como a propriedade ExecutionPolicy existe apenas em sessões que usam arquivos de configuração de sessão, o comando não poderá obter todas as configurações de sessão qualificadas.

      PS C:\> Get-PSSessionConfiguration | where {$_.ExecutionPolicy -eq "RemoteSigned"}

O comando a seguir obtém as configurações de sessão nas quais o RunAsUser é o administrador do Exchange.

      PS C:\>  Get-PSSessionConfiguration | where {$_.RunAsUser -eq "Exchange01\Admin01"}

OBSERVAÇÕES

Uma sessão vazia é projetada para criar sessões personalizadas com comandos selecionados. Se você não adicionar módulos, funções ou scripts a uma sessão vazia, a sessão é limitada a expressões e não pode ser utilizada.

CONSULTE TAMBÉM

about_Session_Configurations

New-PSSession

Disable-PSSessionConfiguration

Enable-PSSessionConfiguration

Get-PSSessionConfiguration

New-PSSessionConfigurationFile

Register-PSSessionConfiguration

Set-PSSessionConfiguration

Test-PSSessionConfigurationFile

Unregister-PSSessionConfiguration