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