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