about_Remote_Disconnected_Sessions
Aplica-se a: Windows PowerShell 3.0
TÓPICO
about_Remote_Disconnected_Session
DESCRIÇÃO BREVE
Explica como desconectar uma PSSession e reconectar-se a ela
DESCRIÇÃO LONGA
A partir do Windows PowerShell® 3.0, você pode se desconectar de uma PSSession e reconectar-se a ela mais tarde no mesmo computador ou em um computador diferente. O estado de sessão é mantido e os comandos da PSSession continuam em execução enquanto a sessão está desconectada.
O recurso Sessões Desconectadas somente está disponível quando o computador da extremidade remota de uma conexão estiver executando o Windows PowerShell 3.0 ou uma versão posterior do Windows PowerShell.
O recurso de sessões desconectadas permite que você feche a sessão na qual uma PSSession foi criada e até mesmo feche o Windows PowerShell e desligue o computador sem interromper os comandos executados na PSSession. Ele é especialmente útil para executar comandos que demoram para ser concluídos, e fornece a flexibilidade de tempo e dispositivo necessária aos profissionais de TI.
OBSERVAÇÃO: você não poderá se desconectar de uma sessão interativa que é iniciada usando o cmdlet Enter-PSSession.
Você pode usar o recurso Sessões Desconectadas para gerenciar as PSSessions que foram desconectadas inadvertidamente como resultado de uma falha do computador ou da rede.
Em um uso realista, o recurso de Sessões Desconectadas permite que você comece a resolver um problema, volte sua atenção para um problema de prioridade mais alta e, em seguida, continue a trabalhar na solução, mesmo em um computador diferente de um local diferente.
CMDLETS DO RECURSO SESSÕES DESCONECTADAS
Os cmdlets a seguir dão suporte ao recurso Sessões Desconectadas:
Disconnect-PSSession:
desconecta uma PSSession.
Connect-PSSession:
conecta-se a uma PSSession desconectada.
Receive-PSSession:
obtém os resultados dos comandos executados em sessões desconectadas.
Get-PSSession:
obtém a PSSessions no computador local ou em computadores remotos.
Invoke-Command:
o parâmetro InDisconnectedSession cria uma PSSession e a desconecta imediatamente.
COMO FUNCIONA O RECURSO DE SESSÕES DESCONECTADAS
A partir do Windows PowerShell 3.0, as PSSessions são independentes das sessões em que são criadas. A PSSession ativa é mantida no computador remoto ou no "lado de servidor" da conexão, mesmo se a sessão na qual a PSSession foi criada estiver fechada e o computador de origem estiver desligado ou desconectado da rede.
No Windows PowerShell 2.0, a PSSession é excluída do computador remoto quando ele for desconectado da sessão original ou se a sessão na qual ela foi criada for encerrada.
Quando você desconectar um PSSession, ela continuará ativa e será mantida no computador remoto. O estado de sessão muda de Running para Disconnected. Você pode se reconectar a uma PSSession desconectada na sessão atual ou em uma sessão diferente no mesmo computador ou em um computador diferente. O computador remoto que mantém a sessão deve estar em execução e estar conectado à rede.
Os comandos executados em uma PSSession desconectada continuam sendo executados ininterruptamente no computador remoto até que sejam concluídos ou até que o buffer de saída seja preenchido. Para impedir que um buffer de saída completo suspenda um comando, use o parâmetro OutputBufferingMode dos cmdlets Disconnect-PSSession, New-PSSessionOption ou New-PSTransportOption.
As sessões desconectadas são mantidas no estado desconectado do computador remoto. Elas estão disponíveis para que você se reconecte a elas até que você exclua a PSSession, por exemplo, usando o cmdlet Remove-PSSession, ou até que o tempo limite de ociosidade da PSSession expire. Você pode ajustar o tempo limite de ociosidade de uma PSSession usando os parâmetros IdleTimeoutSec ou IdleTimeout dos cmdlets Disconnect-PSSession, New-PSSessionOption ou New-PSTransportOption.
Outro usuário pode se conectar às PSSessions que você criou, mas apenas se eles puderem fornecer as credenciais que foram usadas para criar a sessão ou usar as credenciais RunAs da configuração da sessão.
COMO OBTER PSSESSIONS
A partir do Windows PowerShell 3.0, o cmdlet Get-PSSession obtém PSSessions no computador local e nos computadores remotos. Ele também pode obter PSSessions que foram criadas na sessão atual.
Para obter PSsessions no computador local ou em computadores remotos, use os parâmetros ComputerName ou ConnectionUri. Sem parâmetros, o Get-PSSession obtém a PSSession que foi criada na sessão local, independentemente de onde ela for encerrada.
Ao obter PSSessions, lembre-se de procurá-las no computador no qual elas são mantidas, ou seja, o computador remoto ou "do lado do servidor".
Por exemplo, se você criar uma PSSession no computador Server01, obtenha a sessão do computador Server01. Se você criar uma PSSession de outro computador para o computador local, obtenha a sessão do computador local.
A sequência de comando a seguir mostra como o Get-PSSession funciona.
O primeiro comando cria uma sessão no computador Server01. A sessão reside no computador Server01.
PS C:\ps-test> New-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session2 Server01 Opened Microsoft.PowerShell Available
Para obter a sessão, use o parâmetro ComputerName de Get-PSSession com um valor de Server01.
PS C:\ps-test> Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session2 Server01 Opened Microsoft.PowerShell Available
Se o valor do parâmetro ComputerName do Get-PSSession for localhost, o Get-PSSession obtém as PSSessions que terminam no computador local e são mantidas nele. Ele não obtém PSSessions do computador Server01, mesmo se elas foram iniciadas no computador local.
PS C:\ps-test> Get-PSSession -ComputerName localhost
PS C:\ps-test>
Para obter as sessões que foram criadas na sessão atual, use o cmdlet Get-PSSession sem parâmetros. Esse comando obtém a PSSession que foi criada na sessão atual e se conecta ao computador Server01.
PS C:\ps-test> Get-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session2 Server01 Opened Microsoft.PowerShell Available
COMO DESCONECTAR SESSÕES
Para desconectar uma PSSession, use o cmdlet Disconnect-PSSession. Para identificar a PSSession, use o parâmetro Session ou redirecione uma PSSession dos cmdlets New-PSSession ou Get-PSSession para Disconnect-PSSession.
O comando a seguir desconecta a PSSession do computador Server01. Observe que o valor da propriedade State é Disconnected e que o valor da Availability é None.
PS C:\> Get-PSSession -ComputerName Server01 | Disconnect-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session2 Server01 Disconnected Microsoft.PowerShell None
Para criar uma sessão desconectada, use o parâmetro InDisconnectedSession do cmdlet Invoke-Command. Ele cria uma sessão, inicia o comando e desconecta imediatamente, antes que o comando retorne qualquer saída.
O comando a seguir executa um comando Get-WinEvent em uma sessão desconectada no computador remoto Server02.
PS C:\> Invoke-Command -ComputerName Server02 -InDisconnectedSession `
-ScriptBlock {Get-WinEvent -LogName "Windows PowerShell"}
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
4 Session3 Server02 Disconnected Microsoft.PowerShell None
COMO SE CONECTAR A SESSÕES DESCONECTADAS
Você pode se conectar a qualquer PSSession desconectada disponível na sessão na qual você criou a PSSession ou de outras sessões do computador local ou de outros computadores.
Você pode criar uma PSSession, executar comandos na PSSession, desconectar a PSSession, fechar o Windows PowerShell e desligar o computador. Horas mais tarde, você pode abrir um computador diferente, obter a PSSession, conectar-se a ela e obter os resultados dos comandos executados na PSSession enquanto ela estava desconectada. Em seguida, você pode executar mais comandos na sessão.
Para se conectar a uma PSSession desconectada, use o cmdlet Connect-PSSession. Use os parâmetros ComputerName ou ConnectionUri para identificar a PSSession ou redirecionar uma PSSession do Get-PSSession ao Connect-PSSession.
O comando a seguir obtém as sessões no computador Server02. A saída inclui duas sessões desconectadas, ambas disponíveis.
PS C:\> Get-PSSession -ComputerName Server02
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session2 juneb-srv8320 Disconnected Microsoft.PowerShell None
4 Session3 juneb-srv8320 Disconnected Microsoft.PowerShell None
O comando faz a conexão à Session2. Agora, a PSSession está aberta e disponível.
PS C:> Connect-PSSession -ComputerName Server02 -Name Session2
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session2 juneb-srv8320 Opened Microsoft.PowerShell Available
COMO OBTER OS RESULTADOS
Para obter os resultados dos comandos que foram executados em uma PSSession desconectada, use o cmdlet Receive-PSSession.
Você pode usar o Receive-PSSession além do cmdlet Connect-PSSession ou em vez dele. Se a sessão já estiver reconectada, o Receive-PSSession obterá os resultados dos comandos que foram executados quando a sessão foi desconectada. Se a PSSession ainda estiver desconectada, o Receive-PSSession se conectará a ela e, em seguida, obterá os resultados dos comandos executados enquanto ela estava desconectada.
O Receive-PSSession pode retornar os resultados em um trabalho (de forma assíncrona) ou para o programa host (de forma síncrona). Use o parâmetro OutTarget para selecionar o trabalho ou host. Host é o valor padrão. No entanto, se o comando que estiver sendo recebido foi iniciado na sessão atual como um trabalho, ele é retornado como um trabalho por padrão.
O comando a seguir usa o cmdlet Receive-PSSession para se conectar à PSSession do computador Server02 e obter os resultados do comando Get-WinEvent que foram executados na sessão Session3. O comando usa o parâmetro OutTarget para obter os resultados em um trabalho.
PS C:\> Receive-PSSession -ComputerName Server02 -Name Session3 -OutTarget Job
Id Name PSJobTypeName State HasMoreData Location
-- ---- ------------- ----- ----------- --------
3 Job3 RemoteJob Running True Server02
Para obter os resultados do trabalho, use o cmdlet Receive-Job.
PS C:\ps-test> Get-Job | Receive-Job -Keep
ProviderName: PowerShell
TimeCreated Id LevelDisplayName Message PSComputerName
----------- -- ---------------- ------- --------------
5/14/2012 7:26:04 PM 400 Information Engine stat Server02
5/14/2012 7:26:03 PM 600 Information Provider "W Server02
5/14/2012 7:26:03 PM 600 Information Provider "C Server02
5/14/2012 7:26:03 PM 600 Information Provider "V Server02
ESTADO E DISPONIBILIDADE
As propriedades State e Availability de uma PSSession desconectada informam se a sessão está disponível para que você se reconecte a ela.
Quando uma PSSession é conectada à sessão atual, seu estado é Opened e sua disponibilidade é Available. Quando você se desconecta da PSSession, o estado da PSSession é Disconnected e sua disponibilidade é None.
No entanto, o valor da propriedade State é relativo à sessão atual. Portanto, um valor de Disconnected significa que a PSSession não está conectada à sessão atual. No entanto, isso não significa que a PSSession será desconectada de todas as sessões. Ela pode ser conectada a uma sessão diferente.
Para determinar se é possível conectar-se ou reconectar-se à PSSession, utilize a propriedade Availability. Um valor Availability de None indica que é possível conectar-se à sessão. Um valor de Busy indica que não é possível se conectar à PSSession porque ela está conectada a outra sessão.
O exemplo a seguir é executado em duas sessões (janelas de console do Windows PowerShell) no mesmo computador. Observe os valores alterados das propriedades State e Availability de cada sessão à medida que a PSSession é desconectada e reconectada.
#Session 1:
PS C:\> New-PSSession -ComputerName Server30 -Name Test
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Test Server30 Opened Microsoft.PowerShell Available
#Session 2:
PS C:\> Get-PSSession -ComputerName Server30 -Name Test
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Test Server30 Disconnected Microsoft.PowerShell Busy
#Session 1
PS C:\> Get-PSSession -ComputerName Server30 -Name Test | Disconnect-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Test Server30 Disconnected Microsoft.PowerShell None
#Session 2
PS C:\> Get-PSSession -ComputerName Server30
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Test Server30 Disconnected Microsoft.PowerShell None
#Session 2
PS C:\> Connect-PSSession -ComputerName Server01 -Name Test
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
3 Test Server30 Opened Microsoft.PowerShell Available
#Session 1
PS C:\> Get-PSSession -ComputerName Server30
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
1 Test Server30 Disconnected Microsoft.PowerShell Busy
TEMPO LIMITE DE OCIOSIDADE
As sessões desconectadas são mantidas no computador remoto até que você as exclua, como usando o cmdlet Remove-PSSession ou quando elas atingem o tempo limite. A propriedade IdleTimeout de uma PSSession determina por quanto tempo uma sessão desconectada é mantida antes de ser excluída.
As PSSessions ficam ociosas quando o "thread de pulsação" não recebe uma resposta. Desconectar uma sessão a torna ociosa e inicia o relógio Idle Timeout, mesmo se ainda houver comandos em execução na sessão desconectada. O Windows PowerShell considera que as sessões desconectadas estão ativas, mas ociosas.
Ao criar e desconectar as sessões, verifique se o tempo limite de ociosidade da PSSession é longo o suficiente para manter a sessão para suas necessidades, mas não tão longo para consumir recursos desnecessários do computador remoto.
A propriedade IdleTimeoutMs da configuração da sessão determina o tempo limite ocioso padrão das sessões que usam a configuração de sessão. Você pode substituir o valor padrão, mas o valor usado não pode exceder a propriedade MaxIdleTimeoutMs da configuração de sessão.
Para localizar os valores IdleTimeoutMs e MaxIdleTimeoutMs de uma configuração de sessão, use o seguinte formato de comando.
Get-PSSessionConfiguration | Format-Table Name, IdleTimeoutMs, MaxIdleTimeoutMs
Você pode substituir o valor padrão na configuração da sessão e configurar o tempo limite de ociosidade de uma PSSession ao criar uma PSSession e ao desconectá-la.
Se você for um membro do grupo de Administradores do computador remoto, também poderá criar e alterar as propriedades IdleTimeoutMs e MaxIdleTimeoutMs das configurações de sessão.
OBSERVAÇÕES:
o valor de tempo limite de ociosidade das configurações de sessão e das opções de sessão está em milissegundos. O valor de tempo limite de ociosidade das sessões e das opções de configuração de sessão está em segundos.
Você pode configurar o tempo limite de ociosidade de uma PSSession ao criar a PSSession (New-PSSession, Invoke-Command) e ao desconectar-se dela (Disconnect-PSSession). No entanto, você não pode alterar o valor de IdleTimeout ao se conectar à PSSession (Connect-PSSession) ou obter resultados (Receive-PSSession).
Os cmdlets Connect-PSSession e Receive-PSSession têm um parâmetro SessionOption que usa um objeto SessionOption, como o retornado pelo cmdlet New-PSSessionOption. No entanto, o valor de IdleTimeout no objeto SessionOption e o valor de IdleTimeout na variável preferencial $PSSessionOption não alteram o valor de IdleTimeout da PSSession em um comando Connect-PSSession ou Receive-PSSession.
-- Para criar uma PSSession com um valor de tempo limite de ociosidade específico, crie uma variável preferencial $PSSessionOption. Configure o valor da propriedade IdleTimeout para o valor desejado (em milissegundos).
Quando você cria PSSessions, os valores da variável $PSSessionOption têm precedência sobre os valores da configuração de sessão.
Por exemplo, este comando configura um tempo limite de ociosidade de 48 horas. Insira o corpo da seção aqui.
PS C:\> $PSSessionOption = New-PSSessionOption -IdleTimeoutMSec 172800000
-- Para criar uma PSSession com um valor de tempo limite de ociosidade específico, use o parâmetro IdleTimeoutMSec do cmdlet New-PSSessionOption. Em seguida, use a opção de sessão no valor do parâmetro SessionOption dos cmdlets New-PSSession ou Invoke-Command.
Os valores configurados durante a criação da sessão têm precedência sobre os valores configurados na variável preferencial $PSSessionOption e na configuração de sessão.
Por exemplo:
PS C:\> $o = New-PSSessionOption -IdleTimeoutMSec 172800000
PS C:\> New-PSSession -SessionOption $o
-- Para alterar um tempo limite de ociosidade de uma PSSession ao desconectar, use o parâmetro IdleTimeoutSec do cmdlet Disconnect-PSSession.
Por exemplo:
PS C:\> Disconnect-PSSession -IdleTimeoutSec 172800
-- Para criar uma configuração de sessão com um determinado tempo limite de ociosidade e um tempo limite máximo de ociosidade, use os parâmetros IdleTimeoutSec e MaxIdleTimeoutSec do cmdlet New-PSTransportOption. Em seguida, use a opção de transporte no valor do parâmetro TransportOption do Register-PSSessionConfiguration.
Por exemplo:
PS C:\> $o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200
PS C:\> Register-PSSessionConfiguration -Name Test -TransportOption $o
-- Para alterar o tempo limite de ociosidade padrão e o tempo limite máximo de ociosidade de uma configuração de sessão, use os parâmetros IdleTimeoutSec e MaxIdleTimeoutSec do cmdlet New-PSTransportOption. Em seguida, use a opção de transporte no valor do parâmetro TransportOption do Set-PSSessionConfiguration.
Por exemplo:
PS C:\> $o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200
PS C:\> Set-PSSessionConfiguration -Name Test -TransportOption $o
MODO DE ARMAZENAMENTO EM BUFFER DA SAÍDA
O modo de armazenamento em buffer da saída de uma PSSession determina como a saída do comando é gerenciada quando o buffer de saída da PSSession está cheio.
Em uma sessão desconectada, o modo de armazenamento em buffer da saída determina efetivamente se o comando continuará sendo executado enquanto a sessão está desconectada.
Valores válidos:
-- Block: When the output buffer is full, execution is suspended
until the buffer is clear.
-- Drop: When the output buffer is full, execution continues.
As new output is generated, the oldest output is
discarded.
Block, o valor padrão, preserva os dados, mas pode interromper o comando
Um valor de Drop permite que o comando seja concluído, embora os dados possam ser perdidos. Ao usar o valor Drop, redirecione a saída do comando para um arquivo no disco. Esse valor é recomendado para sessões desconectadas.
A propriedade OutputBufferingMode da configuração de sessão determina o modo padrão de armazenamento em buffer da saída das sessões que usam a configuração de sessão.
Para localizar o valor de OutputBufferingMode de uma configuração de sessão, use os seguintes formatos de comando.
(Get-PSSessionConfiguration <ConfigurationName>).OutputBufferingMode
-or-
Get-PSSessionConfiguration | Format-Table Name, OutputBufferingMode
Você pode substituir o valor padrão na configuração de sessão e configurar o modo de armazenamento em buffer de saída de uma PSSession ao criar uma PSSession, ao se desconectar e ao se reconectar.
Se você for um membro do grupo de Administradores do computador remoto, também poderá criar e alterar o modo de armazenamento em buffer da saída das configurações de sessão.
-- Para criar uma PSSession com um modo de armazenamento em buffer da saída de Drop, crie uma variável preferencial $PSSessionOption na qual o valor da propriedade OutputBufferingMode seja Drop.
Quando você cria PSSessions, os valores da variável $PSSessionOption têm precedência sobre os valores da configuração de sessão.
Por exemplo:
PS C:\> $PSSessionOption = New-PSSessionOption -OutputBufferingMode Drop
-- Para criar uma PSSession com um modo de armazenamento em buffer de saída de Drop, use o parâmetro OutputBufferingMode do cmdlet New-PSSessionOption para criar uma opção de sessão com um valor de Drop. Em seguida, use a opção de sessão no valor do parâmetro SessionOption dos cmdlets New-PSSession ou Invoke-Command.
Os valores configurados durante a criação da sessão têm precedência sobre os valores configurados na variável preferencial $PSSessionOption e na configuração de sessão.
Por exemplo:
PS C:\> $o = New-PSSessionOption -OutputBufferingMode Drop
PS C:\> New-PSSession -SessionOption $o
-- Para alterar o modo de armazenamento em buffer da saída de uma PSSession ao se desconectar, use o parâmetro OutputBufferingMode do cmdlet Disconnect-PSSession.
Por exemplo:
PS C:\> Disconnect-PSSession -OutputBufferingMode Drop
-- Para alterar o modo de armazenamento em buffer de saída de uma PSSession ao se reconectar, use o parâmetro OutputBufferingMode do cmdlet New-PSSessionOption para criar uma opção de sessão com um valor de Drop. Em seguida, use a opção de sessão no valor do parâmetro SessionOption do Connect-PSSession ou Receive-PSSession.
Por exemplo:
PS C:\> $o = New-PSSessionOption -OutputBufferingMode Drop
PS C:\> Connect-PSSession -Cn Server01 -Name Test -SessionOption $o
-- Para criar uma configuração de sessão com um modo de armazenamento em buffer de saída padrão de Drop, use o parâmetro OutputBufferingMode do cmdlet New-PSTransportOption para criar um objeto de opção de transporte com um valor de Drop. Em seguida, use a opção de transporte no valor do parâmetro TransportOption do Register-PSSessionConfiguration.
Por exemplo:
PS C:\> $o = New-PSTransportOption -OutputBufferingMode Drop PS C:\> Register-PSSessionConfiguration -Name Test -TransportOption $o
-- Para alterar o modo de armazenamento em buffer de saída padrão de uma configuração de sessão, use o parâmetro OutputBufferingMode do cmdlet New-PSTransportOption para criar uma opção de transporte com um valor de Drop. Em seguida, use a opção Transport no valor do parâmetro SessionOption do Set-PSSessionConfiguration.
Por exemplo:
PS C:\> $o = New-PSTransportOption -OutputBufferingMode Drop
PS C:\> Set-PSSessionConfiguration -Name Test -TransportOption $o
COMO DESCONECTAR SESSÕES DE LOOPBACK
As "sessões de loopback" ou "sessões locais" são PSSessions que se originam e terminam no mesmo computador. Assim como outras PSSessions, as sessões de loopback ativas são mantidas no computador da extremidade final da conexão (o computador local); portanto, você pode se desconectar e reconectar às sessões de loopback.
Por padrão, as sessões de loopback são criadas com um token de segurança de rede que não permite que os comandos executados na sessão acessem outros computadores. Você pode se reconectar às sessões de loopback que têm um token de segurança de rede de qualquer sessão no computador local ou em um computador remoto.
No entanto, se você usar o parâmetro EnableNetworkAccess do cmdlet New-PSSession, Enter-PSSession ou Invoke-Command, a sessão de loopback é criada com um token de segurança interativo. O token interativo permite que os comandos executados na sessão de loopback obtenham dados de outros computadores.
Você pode desconectar as sessões de loopback com tokens interativos e, em seguida, reconectá-las na mesma sessão ou em uma sessão diferente no mesmo computador. No entanto, para impedir o acesso mal-intencionado, você somente pode se reconectar às sessões de loopback com tokens interativos no computador no qual elas foram criadas.
COMO AGUARDAR TRABALHOS EM SESSÕES DESCONECTADAS
O cmdlet Wait-Job espera até que um trabalho seja concluído e, em seguida, retorna ao prompt de comando ou ao próximo comando. Por padrão, o Wait-Job retorna se a sessão na qual um trabalho está sendo executado está desconectada. Para direcionar o cmdlet Wait-Job a aguardar até que a sessão seja reconectada (no estado Opened), use o parâmetro Force. Para obter mais informações, consulte Wait-Job.
SESSÕES ROBUSTAS E A DESCONEXÃO ACIDENTAL
Ocasionalmente, uma PSSession pode ser desconectada acidentalmente devido a uma falha de computador ou da rede. O Windows PowerShell tenta recuperar a PSSession, mas seu êxito depende da severidade e da duração da causa.
O estado de uma PSSession desconectada acidentalmente pode ser Broken ou Closed, mas também pode ser Disconnected. Se o valor State for Disconnected, você pode usar as mesmas técnicas para gerenciar a PSSession que usaria se a sessão fosse desconectada intencionalmente. Por exemplo, você pode usar o cmdlet Connect-PSSession para reconectar-se à sessão e o cmdlet Receive-PSSession para obter resultados de comandos executados enquanto a sessão estava desconectada.
Se você fechar (sair) da sessão na qual uma PSSession foi criada durante a execução de comandos, o Windows PowerShell mantém a PSSession no estado Disconnected no computador remoto. Se você fechar (sair) da sessão na qual uma PSSession foi criada, mas nenhum comando estiver sendo executado na PSSession, o Windows PowerShell não tenta manter a PSSession.
PALAVRAS-CHAVE
about_Disconnected_Sessions
CONSULTE TAMBÉM
about_Jobs
about_Remote
about_Remote_Variables
about_PSSessions
about_Session_Configurations
Disconnect-PSSession
Connect-PSSession
Get-PSSession
Receive-PSSession
Invoke-Command