New-PSSessionOption
Cria um objeto que contém opções avançadas para uma PSSession.
Syntax
New-PSSessionOption
[-MaximumRedirection <Int32>]
[-NoCompression]
[-NoMachineProfile]
[-Culture <CultureInfo>]
[-UICulture <CultureInfo>]
[-MaximumReceivedDataSizePerCommand <Int32>]
[-MaximumReceivedObjectSize <Int32>]
[-OutputBufferingMode <OutputBufferingMode>]
[-MaxConnectionRetryCount <Int32>]
[-ApplicationArguments <PSPrimitiveDictionary>]
[-OpenTimeout <Int32>]
[-CancelTimeout <Int32>]
[-IdleTimeout <Int32>]
[-ProxyAccessType <ProxyAccessType>]
[-ProxyAuthentication <AuthenticationMechanism>]
[-ProxyCredential <PSCredential>]
[-SkipCACheck]
[-SkipCNCheck]
[-SkipRevocationCheck]
[-OperationTimeout <Int32>]
[-NoEncryption]
[-UseUTF16]
[-IncludePortInSPN]
[<CommonParameters>]
Description
O New-PSSessionOption
cmdlet cria um objeto que contém opções avançadas para uma sessão gerida pelo utilizador (PSSession). Pode utilizar o objeto como o valor do parâmetro SessionOption dos cmdlets que criam uma PSSession, como New-PSSession
, Enter-PSSession
e Invoke-Command
.
Sem parâmetros, New-PSSessionOption
gera um objeto que contém os valores predefinidos para todas as opções. Uma vez que cada propriedade pode ser editada, pode utilizar o objeto resultante como modelo e criar objetos de opção padrão para a sua empresa.
Também pode guardar um objeto SessionOption na $PSSessionOption
variável de preferência. Os valores desta variável estabelecem novos valores predefinidos para as opções de sessão. São eficazes quando não são definidas opções de sessão para a sessão e têm precedência sobre as opções definidas na configuração da sessão, mas pode substitui-las ao especificar opções de sessão ou um objeto SessionOption num cmdlet que cria uma sessão. Para obter mais informações sobre a $PSSessionOption
variável de preferência, veja about_Preference_Variables.
Quando utiliza um objeto SessionOption num cmdlet que cria uma sessão, os valores das opções de sessão têm precedência sobre os valores predefinidos para sessões definidas na $PSSessionOption
variável de preferência e na configuração da sessão. No entanto, não têm precedência sobre os valores máximos, quotas ou limites definidos na configuração da sessão. Para obter mais informações sobre configurações de sessão, consulte about_Session_Configurations.
Exemplos
Exemplo 1: criar uma opção de sessão predefinida
Este comando cria um objeto SessionOption com os valores predefinidos.
New-PSSessionOption
MaximumConnectionRedirectionCount : 5
NoCompression : False
NoMachineProfile : False
ProxyAccessType : IEConfig
ProxyAuthentication : Negotiate
ProxyCredential :
SkipCACheck : False
SkipCNCheck : False
SkipRevocationCheck : False
OperationTimeout : 00:03:00
NoEncryption : False
UseUTF16 : False
Culture :
UICulture :
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize :
ApplicationArguments :
OpenTimeout : 00:03:00
CancelTimeout : 00:01:00
IdleTimeout : 00:04:00
Exemplo 2: Configurar uma sessão com um objeto de opção de sessão
Este exemplo mostra como utilizar um objeto SessionOption para configurar uma sessão.
$pso = New-PSSessionOption -Culture "fr-fr" -MaximumReceivedObjectSize 10MB
New-PSSession -ComputerName Server01 -SessionOption $pso
O primeiro comando cria um novo objeto SessionOption e guarda-o no valor da $pso
variável. O segundo comando utiliza o New-PSSession
cmdlet para criar uma sessão no computador remoto Server01. O comando utiliza o objeto SessionOption no valor da $pso
variável como o valor do parâmetro SessionOption do comando.
Exemplo 3: Iniciar uma sessão interativa
Este comando utiliza o Enter-PSSession
cmdlet para iniciar uma sessão interativa com o computador Server01.
Enter-PSSession -ComputerName Server01 -SessionOption (New-PSSessionOption -NoEncryption -NoCompression)
O valor do parâmetro SessionOption é um New-PSSessionOption
comando que tem os parâmetros NoEncryption e NoCompression .
O New-PSSessionOption
comando está entre parênteses para se certificar de que é executado antes do Enter-PSSession
comando.
Exemplo 4: Modificar um objeto de opção de sessão
Este exemplo demonstra que pode modificar o objeto SessionOption . Todas as propriedades têm valores de leitura/escrita.
$a = New-PSSessionOption
$a.OpenTimeout
Days : 0
Hours : 0
Minutes : 3
Seconds : 0
Milliseconds : 0
Ticks : 1800000000
TotalDays : 0.00208333333333333
TotalHours : 0.05
TotalMinutes : 3
TotalSeconds : 180
TotalMilliseconds : 180000
$a.UICulture = (Get-UICulture)
$a.OpenTimeout = (New-Timespan -Minutes 4)
$a.MaximumConnectionRedirectionCount = 1
$a
MaximumConnectionRedirectionCount : 1
NoCompression : False
NoMachineProfile : False
ProxyAccessType : IEConfig
ProxyAuthentication : Negotiate
ProxyCredential :
SkipCACheck : False
SkipCNCheck : False
SkipRevocationCheck : False
OperationTimeout : 00:03:00
NoEncryption : False
UseUTF16 : False
Culture :
UICulture : en-US
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize :
ApplicationArguments :
OpenTimeout : 00:04:00
CancelTimeout : 00:01:00
IdleTimeout : 00:04:00
Utilize este método para criar um objeto de sessão padrão para a sua empresa e, em seguida, crie versões personalizadas do mesmo para utilizações específicas.
Exemplo 5: Criar uma variável de preferência
Este comando cria uma $PSSessionOption
variável de preferência.
$PSSessionOption = New-PSSessionOption -OpenTimeOut 120000
Quando a $PSSessionOption
variável de preferência é definida na sessão, estabelece valores predefinidos para opções nas sessões que são criadas com os New-PSSession
cmdlets , Enter-PSSession
e Invoke-Command
.
Para disponibilizar a $PSSessionOption
variável em todas as sessões, adicione-a à sua sessão do PowerShell e ao seu perfil do PowerShell.
Para obter mais informações sobre a $PSSessionOption
variável de preferência, veja about_Preference_Variables.
Para obter mais informações sobre perfis, consulte about_Profiles.
Exemplo 6: cumprir os requisitos para uma configuração de sessão remota
Este exemplo mostra como utilizar um objeto SessionOption para cumprir os requisitos de uma configuração de sessão remota.
$skipCN = New-PSSessionOption -SkipCNCheck
New-PSSession -ComputerName 171.09.21.207 -UseSSL -Credential Domain01\User01 -SessionOption $SkipCN
O primeiro comando utiliza o New-PSSessionOption
cmdlet para criar um objeto SessionOption que tem a propriedade SkipCNCheck . O comando guarda o objeto de sessão resultante na $skipCN
variável.
O segundo comando utiliza o New-PSSession
cmdlet para criar uma nova sessão num computador remoto. A $skipCN
variável de verificação é utilizada no valor do parâmetro SessionOption .
Uma vez que o computador é identificado pelo respetivo endereço IP, o valor do parâmetro ComputerName não corresponde a nenhum dos nomes comuns no certificado utilizado para Secure Sockets Layer (SSL). Como resultado, é necessária a opção SkipCNCheck .
Exemplo 7: Disponibilizar argumentos para uma sessão remota
Este exemplo mostra como utilizar o parâmetro ApplicationArguments do New-PSSessionOption
cmdlet para disponibilizar dados adicionais à sessão remota.
$team = @{Team="IT"; Use="Testing"}
$TeamOption = New-PSSessionOption -ApplicationArguments $team
$s = New-PSSession -ComputerName Server01 -SessionOption $TeamOption
Invoke-Command -Session $s {$PSSenderInfo.ApplicationArguments}
Name Value
---- -----
Team IT
Use Testing
PSVersionTable {CLRVersion, BuildVersion, PSVersion, WSManStackVersion...}
Invoke-Command -Session $s {
if ($PSSenderInfo.ApplicationArguments.Use -ne "Testing") {
.\logFiles.ps1
}
else {
"Just testing."
}
}
Just testing.
O primeiro comando cria uma tabela hash com duas chaves, Team e Use. O comando guarda a tabela hash na variável $team
. Para obter mais informações sobre tabelas hash, veja about_Hash_Tables.
Em seguida, o New-PSSessionOption
cmdlet, com o parâmetro ApplicationArguments , cria um objeto SessionOption guardado na $team
variável. Quando New-PSSessionOption
cria o objeto de opção de sessão, converte automaticamente a tabela hash no valor do parâmetro ApplicationArguments num PrimitiveDictionary para que os dados possam ser transmitidos de forma fiável para a sessão remota.
O New-PSSession
cmdlet inicia uma sessão no computador Server01. Utiliza o parâmetro SessionOption para incluir as opções na $teamOption
variável.
O Invoke-Command
cmdlet demonstra que os dados na $team
variável estão disponíveis para comandos na sessão remota. Os dados são apresentados na propriedade ApplicationArguments da $PSSenderInfo
variável automática.
A final Invoke-Command
mostra como os dados podem ser utilizados.
Parâmetros
-ApplicationArguments
Especifica um PrimitiveDictionary que é enviado para a sessão remota. Os comandos e scripts na sessão remota, incluindo scripts de arranque na configuração da sessão, podem encontrar este dicionário na propriedade ApplicationArguments da $PSSenderInfo
variável automática. Pode utilizar este parâmetro para enviar dados para a sessão remota.
Para obter mais informações, veja about_Hash_Tables, about_Session_Configurations e about_Automatic_Variables.
Type: | PSPrimitiveDictionary |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CancelTimeout
Determina quanto tempo o PowerShell aguarda a conclusão de uma operação de cancelamento (CTRL+C) antes de a terminar. Introduza um valor em milissegundos.
O valor predefinido é 60000
(um minuto). Um valor de 0
(zero) significa que não há tempo limite; o comando continua indefinidamente.
Type: | Int32 |
Aliases: | CancelTimeoutMSec |
Position: | Named |
Default value: | 60000 |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Culture
Especifica a cultura a utilizar para a sessão. Introduza um nome de cultura no <languagecode2>-<country/regioncode2>
formato (como ja-JP
), uma variável que contenha um objeto CultureInfo ou um comando que obtenha um objeto CultureInfo .
O valor predefinido é $Null
, e a cultura definida no sistema operativo é utilizada na sessão.
Type: | CultureInfo |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IdleTimeout
Determina quanto tempo a sessão permanece aberta se o computador remoto não receber qualquer comunicação do computador local. Isto inclui o sinal de heartbeat. Quando o intervalo expirar, a sessão é fechada.
O valor de tempo limite inativo é de importância significativa se pretender desligar e voltar a ligar a uma sessão. Só pode voltar a ligar se a sessão não tiver excedido o tempo limite.
Introduza um valor em milissegundos. O valor mínimo é 60000
(1 minuto). O máximo é o valor da propriedade MaxIdleTimeoutms da configuração da sessão. O valor predefinido, -1
, não define um tempo limite inativo.
A sessão utiliza o tempo limite de inatividade definido nas opções de sessão, se existir. Se nenhum estiver definido (-1
), a sessão utiliza o valor da propriedade IdleTimeoutMs da configuração da sessão ou o valor de tempo limite da shell WSMan (WSMan:\<ComputerName>\Shell\IdleTimeout
), o que for mais curto.
Se o tempo limite de inatividade definido nas opções de sessão exceder o valor da propriedade MaxIdleTimeoutMs da configuração da sessão, o comando para criar uma sessão falhará.
O valor IdleTimeoutMs da Microsoft predefinida. A configuração da sessão do PowerShell é 7200000
milissegundos (2 horas). O valor MaxIdleTimeoutMs é 2147483647
milissegundos (>24 dias). O valor predefinido do tempo limite de inatividade da shell WSMan (WSMan:\<ComputerName>\Shell\IdleTimeout
) é 7200000
milissegundos (2 horas).
O valor de tempo limite de inatividade de uma sessão também pode ser alterado ao desligar-se de uma sessão ou voltar a ligar a uma sessão. Para obter mais informações, consulte Disconnect-PSSession
e Connect-PSSession
.
No Windows PowerShell 2.0, o valor predefinido do parâmetro IdleTimeout é 240000
(4 minutos).
Type: | Int32 |
Aliases: | IdleTimeoutMSec |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-IncludePortInSPN
Inclui o número de porta no Nome principal de serviço (SPN) utilizado para a autenticação Kerberos, por exemplo, HTTP://<ComputerName>:5985
. Esta opção permite que um cliente que utilize um SPN não predefinido se autentique num computador remoto que utilize a autenticação Kerberos.
A opção foi concebida para empresas onde estão em execução vários serviços que suportam a autenticação Kerberos em contas de utilizador diferentes. Por exemplo, uma aplicação IIS que permita a autenticação Kerberos pode exigir que o SPN predefinido seja registado numa conta de utilizador diferente da conta do computador. Nestes casos, a comunicação remota do PowerShell não pode utilizar o Kerberos para autenticar porque requer um SPN registado na conta do computador. Para resolver este problema, os administradores podem criar SPNs diferentes, como, por exemplo, através Setspn.exe
do , que estão registados em contas de utilizador diferentes e podem distinguir entre eles ao incluir o número de porta no SPN.
Para obter mais informações, veja Descrição Geral do Setspn.
Este parâmetro foi introduzido no Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaxConnectionRetryCount
Especifica o número de vezes que o PowerShell tenta fazer uma ligação a um computador de destino se a tentativa atual falhar devido a problemas de rede. O valor predefinido é 5
.
Este parâmetro foi adicionado para a versão 5.0 do PowerShell.
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaximumReceivedDataSizePerCommand
Especifica o número máximo de bytes que o computador local pode receber do computador remoto num único comando. Introduza um valor em bytes. Por predefinição, não existe um limite de tamanho de dados.
Esta opção foi concebida para proteger os recursos no computador cliente.
Type: | Int32 |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaximumReceivedObjectSize
Especifica o tamanho máximo de um objeto que o computador local pode receber do computador remoto. Esta opção foi concebida para proteger os recursos no computador cliente. Introduza um valor em bytes.
No Windows PowerShell 2.0, se omitir este parâmetro, não existe um limite de tamanho de objeto. A partir de Windows PowerShell 3.0, se omitir este parâmetro, o valor predefinido é 209715200
bytes (ou 200MB
).
Type: | Int32 |
Position: | Named |
Default value: | 209715200 |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-MaximumRedirection
Determina quantas vezes o PowerShell redireciona uma ligação para um URI (Uniform Resource Identifier) alternativo antes de a ligação falhar. O valor predefinido é 5
. Um valor de 0
(zero) impede todo o redirecionamento.
Esta opção só é utilizada na sessão quando o parâmetro AllowRedirection é utilizado no comando que cria a sessão.
Type: | Int32 |
Position: | Named |
Default value: | 5 |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoCompression
Desativa a compressão de pacotes na sessão. A compressão utiliza mais ciclos de processador, mas torna a transmissão mais rápida.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoEncryption
Desativa a encriptação de dados.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NoMachineProfile
Impede o carregamento do perfil de utilizador do Windows do utilizador. Como resultado, a sessão pode ser criada mais rapidamente, mas as definições de registo específicas do utilizador, itens como variáveis de ambiente e certificados não estão disponíveis na sessão.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OpenTimeout
Determina quanto tempo o computador cliente aguarda que a ligação de sessão seja estabelecida. Quando o intervalo expirar, o comando para estabelecer a ligação falha. Introduza um valor em milissegundos.
O valor predefinido é 180000
(3 minutos). Um valor de 0
(zero) significa que não há tempo limite; o comando continua indefinidamente.
Type: | Int32 |
Aliases: | OpenTimeoutMSec |
Position: | Named |
Default value: | 180000 (3 minutes) |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OperationTimeout
Determina o tempo máximo em que o WinRM aguarda testes de ligação positivos a partir de uma ligação em direto antes de iniciar um tempo limite de ligação. Para obter mais informações sobre o WinRM, consulte a Documentação de Gestão Remota do Windows.
OperationTimeoutnão impõe um limite de tempo aos comandos ou processos em execução numa sessão remota e não afeta outros protocolos de remoagem, como o SSH.
O valor predefinido é 180000
(3 minutos). Um valor de 0
(zero) significa que não há tempo limite.
Type: | Int32 |
Aliases: | OperationTimeoutMSec |
Position: | Named |
Default value: | 180000 (3 minutes) |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OutputBufferingMode
Determina como a saída do comando é gerida em sessões desligadas quando a memória intermédia de saída fica cheia.
Se o modo de memória intermédia de saída não estiver definido na sessão ou na configuração da sessão, o valor predefinido é Block
. Os utilizadores também podem alterar o modo de memória intermédia de saída ao desligar a sessão.
Se omitir este parâmetro, o valor de OutputBufferingMode do objeto SessionOption é None
. Um valor de Block
ou Drop
substitui a opção de transporte do modo de memória intermédia de saída definida na configuração da sessão. Os valores aceitáveis para este parâmetro são:
Block
. Quando a memória intermédia de saída estiver cheia, a execução é suspensa até a memória intermédia estar limpa.Drop
. Quando a memória intermédia de saída estiver cheia, a execução continua. À medida que a nova saída é guardada, a saída mais antiga é eliminada.None
. Não é especificado nenhum modo de memória intermédia de saída.
Para obter mais informações sobre a opção de transporte do modo de memória intermédia de saída, consulte New-PSTransportOption
.
Este parâmetro foi introduzido no Windows PowerShell 3.0.
Type: | OutputBufferingMode |
Accepted values: | None, Drop, Block |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ProxyAccessType
Determina que mecanismo é utilizado para resolver o nome do anfitrião. Os valores aceitáveis para este parâmetro são:
IEConfig
WinHttpConfig
AutoDetect
NoProxyServer
None
O valor predefinido é None
.
Para obter informações sobre os valores deste parâmetro, veja Enumeração ProxyAccessType.
Type: | ProxyAccessType |
Accepted values: | None, IEConfig, WinHttpConfig, AutoDetect, NoProxyServer |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ProxyAuthentication
Especifica o método de autenticação utilizado para a resolução de proxy. Os valores aceitáveis para este parâmetro são:
Basic
Digest
Negotiate
O valor predefinido é Negotiate
.
Para obter mais informações sobre os valores deste parâmetro, veja AuthenticationMechanism Enumeration (Enumeração AuthenticationMechanism).
Type: | AuthenticationMechanism |
Accepted values: | Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos |
Position: | Named |
Default value: | Negotiate |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ProxyCredential
Especifica as credenciais a utilizar para autenticação proxy. Introduza uma variável que contenha um objeto PSCredential ou um comando que obtenha um objeto PSCredential , como um Get-Credential
comando. Se esta opção não estiver definida, não serão especificadas credenciais.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipCACheck
Especifica que, quando liga através de HTTPS, o cliente não valida que o certificado de servidor é assinado por uma autoridade de certificação (AC) fidedigna.
Utilize esta opção apenas quando o computador remoto é fidedigno através de outro mecanismo, como quando o computador remoto faz parte de uma rede fisicamente segura e isolada ou quando o computador remoto é listado como um anfitrião fidedigno numa configuração winRM.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipCNCheck
Especifica que o nome comum do certificado (CN) do servidor não tem de corresponder ao nome do anfitrião do servidor. Esta opção é utilizada apenas em operações remotas que utilizam o protocolo HTTPS.
Utilize esta opção apenas para computadores fidedignos.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SkipRevocationCheck
Não valida o estado de revogação do certificado de servidor.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UICulture
Especifica a cultura de IU a utilizar para a sessão.
Os valores válidos incluem:
- Um nome de cultura em
<languagecode2>-<country/regioncode2>
formato, comoja-JP
- Uma variável que contém um objeto CultureInfo
- Um comando que obtém um objeto CultureInfo , como
Get-Culture
O valor predefinido é $null
e a cultura de IU que é definida no sistema operativo quando a sessão é criada.
Type: | CultureInfo |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseUTF16
Indica que este cmdlet codifica o pedido no formato UTF16 em vez do formato UTF8.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
None
Não pode encaminhar objetos para este cmdlet.
Saídas
Notas
Se o parâmetro SessionOption não for utilizado num comando para criar uma PSSession, as opções de sessão são determinadas pelos valores de propriedade da variável de $PSSessionOption
preferência, se estiver definida. Para obter mais informações sobre a $PSSessionOption
variável, veja about_Preference_Variables.
As propriedades de um objeto de configuração de sessão variam consoante as opções definidas para a configuração da sessão e os valores dessas opções. Além disso, as configurações de sessão que utilizam um ficheiro de configuração de sessão têm propriedades adicionais.
Ligações Relacionadas
Comentários
Submeter e ver comentários