about_Remote_Disconnected_Sessions

Korte beschrijving

Hierin wordt uitgelegd hoe u de verbinding met een PowerShell-sessie (PSSession) verbreekt en opnieuw verbinding maakt.

Lange beschrijving

Vanaf PowerShell 3.0 kunt u de verbinding met een PSSession verbreken en opnieuw verbinding maken met de PSSession vanaf dezelfde computer of een andere computer. De sessiestatus wordt gehandhaafd en opdrachten in de PSSession blijven worden uitgevoerd terwijl de verbinding met de sessie wordt verbroken.

Met de functie Niet-verbonden sessies kunt u de sessie sluiten waarin een PSSession is gemaakt en de computer afsluiten zonder dat er opdrachten worden onderbroken die in de externe PSSession worden uitgevoerd. Niet-verbonden sessies zijn handig voor het uitvoeren van opdrachten die een langere tijd in beslag nemen.

U kunt geen verbinding maken met een interactieve sessie die is gestart met de Enter-PSSession cmdlet.

U kunt niet-verbonden sessies gebruiken om PSSessions te beheren die onbedoeld zijn verbroken als gevolg van een computer- of netwerkstoring.

Sessie-cmdlets verbroken

De volgende cmdlets ondersteunen de functie Niet-verbonden sessies:

  • Connect-PSSession: Verbinding maken naar een niet-verbonden PSSession.
  • Disconnect-PSSession: Hiermee wordt een PSSession verbroken.
  • Get-PSSession: Haalt PSSessions op de lokale computer of op externe computers.
  • Receive-PSSession: Haalt de resultaten op van opdrachten die zijn uitgevoerd in niet-verbonden sessies.
  • Invoke-Command: Met de parameter InDisconnectedSession wordt een PSSession gemaakt en wordt de verbinding onmiddellijk verbroken.

Hoe de functie Niet-verbonden sessies werkt

Vanaf PowerShell 3.0 zijn PSSessions onafhankelijk van de sessies waarin ze worden gemaakt. Actieve PSSessions worden onderhouden op de externe computer of serverzijde van de verbinding, zelfs als de computer aan de clientzijde wordt afgesloten of losgekoppeld van het netwerk.

In PowerShell 2.0 wordt de PSSession verwijderd van de externe computer wanneer de verbinding is verbroken met de oorspronkelijke sessie of de sessie waarin deze is gemaakt, eindigt.

Wanneer u een PSSession loskoppelt, blijft de PSSession actief en wordt deze op de externe computer onderhouden. De sessiestatus verandert van Actief in Verbroken. U kunt opnieuw verbinding maken met een niet-verbonden PSSession vanuit

  • De huidige sessie op dezelfde computer
  • Een andere sessie op dezelfde computer
  • Vanuit een sessie op een andere computer

De externe computer die de sessie onderhoudt, moet actief zijn en verbonden zijn met het netwerk.

Opdrachten in een niet-verbonden PSSession blijven ononderbroken worden uitgevoerd op de externe computer totdat de opdracht is voltooid of de uitvoerbuffer wordt gevuld. Als u wilt voorkomen dat een volledige uitvoerbuffer een opdracht onderbreekt, gebruikt u de parameter OutputBufferingMode van de Disconnect-PSSession, New-PSSessionOptionof New-PSTransportOption cmdlets.

Niet-verbonden sessies worden onderhouden met de status Verbroken op de externe computer. Ze zijn beschikbaar om opnieuw verbinding te maken totdat u de PSSession verwijdert, zoals met behulp van de Remove-PSSession cmdlet, of totdat de time-out voor inactiviteit van de PSSession verloopt. U kunt de time-out voor inactiviteit van een PSSession aanpassen met behulp van de parameters IdleTimeoutSec of IdleTimeout van de Disconnect-PSSession, New-PSSessionOptionof New-PSTransportOption cmdlets.

Een andere gebruiker kan verbinding maken met PSSessions die u hebt gemaakt, maar alleen als ze de referenties kunnen opgeven die zijn gebruikt om de sessie te maken of de RunAs referenties van de sessieconfiguratie te gebruiken.

PSSessions verkrijgen

Vanaf PowerShell 3.0 krijgt de Get-PSSession cmdlet PSSessions op de lokale computer en externe computers. Het kan ook PSSessions ophalen die zijn gemaakt in de huidige sessie.

Gebruik de parameters ComputerName of Verbinding maken ionUri om PSSessions op de lokale computer of externe computers op te halen. Zonder parameters wordt Get-PSSession PSSession opgevraagd die zijn gemaakt in de lokale sessie, ongeacht waar ze worden beƫindigd.

In het volgende voorbeeld ziet u hoe u deze kunt gebruiken Get-PSSession.

New-PSSession maakt een sessie naar de Server01-computer. De sessie bevindt zich op de Server01-computer.

New-PSSession -ComputerName Server01
Id Name      ComputerName  State    ConfigurationName     Availability
-- ----      ------------  -----    -----------------     ------------
 2 Session2  Server01      Opened   Microsoft.PowerShell     Available

Als u de sessie wilt ophalen van Server01, gebruikt u de parameter ComputerName om het doel van Get-PSSession.

Get-PSSession -ComputerName Server01
Id Name      ComputerName  State    ConfigurationName     Availability
-- ----      ------------  -----    -----------------     ------------
 2 Session2  Server01      Opened   Microsoft.PowerShell     Available

Als de waarde van de parameter ComputerName van Get-PSSession localhost is, Get-PSSession worden PSSessions opgehaald die eindigen op en worden onderhouden op de lokale computer. Er worden geen PSSessions op de Server01-computer weergegeven, zelfs niet als ze op de lokale computer zijn gestart.

Get-PSSession -ComputerName localhost

Als u sessies wilt ophalen die in de huidige sessie zijn gemaakt, gebruikt u de Get-PSSession cmdlet zonder parameters. In dit voorbeeld Get-PSSession wordt de PSSession opgehaald die in de huidige sessie is gemaakt en die verbinding maakt met de Server01-computer.

Get-PSSession
Id Name      ComputerName  State    ConfigurationName     Availability
-- ----      ------------  -----    -----------------     ------------
 2 Session2  Server01      Opened   Microsoft.PowerShell     Available

Sessies verbreken

Gebruik de Disconnect-PSSession cmdlet om de verbinding met een sessie te verbreken. Als u de PSSession wilt identificeren, gebruikt u de sessieparameter of sluist u een PSSession-object van de New-PSSession of Get-PSSession cmdlets naar Disconnect-PSSession.

Met de volgende opdracht wordt de PSSession losgekoppeld van de Server01-computer. U ziet dat de waarde van de eigenschap Status is verbroken en dat de beschikbaarheid geen is.

Get-PSSession -ComputerName Server01 | Disconnect-PSSession
Id Name      ComputerName  State         ConfigurationName     Availability
-- ----      ------------  -----         -----------------     ------------
 2 Session2  Server01      Disconnected  Microsoft.PowerShell          None

Als u een niet-verbonden sessie wilt maken, gebruikt u de parameter InDisconnectedSession van de Invoke-Command cmdlet. Er wordt een sessie gemaakt, de opdracht gestart en de verbinding wordt onmiddellijk verbroken voordat de opdracht uitvoer kan retourneren.

Met de volgende opdracht wordt een Get-WinEvent opdracht uitgevoerd in een niet-verbonden sessie op de externe computer Server02.

Invoke-Command -ComputerName Server02 -InDisconnectedSession -ScriptBlock {
   Get-WinEvent -LogName "*PowerShell*" }
Id Name      ComputerName  State         ConfigurationName     Availability
-- ----      ------------  -----         -----------------     ------------
 4 Session3  Server02      Disconnected  Microsoft.PowerShell          None

Verbinding maken met niet-verbonden sessies

Als u verbinding wilt maken met een niet-verbonden sessie, gebruikt u de Connect-PSSession cmdlet met de parameters ComputerName of Verbinding maken ionUri. U kunt ook de uitvoer van Get-PSSession naar Connect-PSSession.

In het volgende voorbeeld worden de sessies op de Server02-computer ophaalt. De uitvoer bevat twee niet-verbonden sessies.

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

Met de volgende opdracht wordt verbinding gemaakt met Session2. De PSSession is nu geopend en beschikbaar.

Connect-PSSession -ComputerName Server02 -Name Session2
Id Name      ComputerName    State    ConfigurationName     Availability
-- ----      ------------    -----    -----------------     ------------
 2 Session2  juneb-srv8320   Opened   Microsoft.PowerShell     Available

De resultaten ophalen

Gebruik de Receive-PSSession cmdlet om de resultaten op te halen van opdrachten die zijn uitgevoerd in een niet-verbonden PSSession.

U kunt deze gebruiken in plaats van de Connect-PSSession cmdlet te gebruikenReceive-PSSession. Als de sessie al opnieuw is verbonden, Receive-PSSession worden de resultaten opgehaald van opdrachten die zijn uitgevoerd toen de sessie werd verbroken. Als de VERBINDING met PSSession nog steeds is verbroken, Receive-PSSession maakt u er verbinding mee en haalt u vervolgens de resultaten op van opdrachten die zijn uitgevoerd terwijl de verbinding is verbroken.

Receive-PSSession kan de resultaten in een taak (asynchroon) of naar het hostprogramma (synchroon) retourneren. Gebruik de outTarget-parameter om Taak of Host te selecteren. De standaardwaarde is Host. Als de opdracht die wordt ontvangen echter is gestart in de huidige sessie als een taak, wordt deze standaard geretourneerd als een taak .

In het volgende voorbeeld wordt de Receive-PSSession cmdlet gebruikt om opnieuw verbinding te maken met de sessie op Server02 en de resultaten van de Get-WinEvent opdracht op te halen. De parameter OutTarget wordt gebruikt om de resultaten in een taak op te halen.

Receive-PSSession -ComputerName Server02 -Name Session3 -OutTarget Job
Id   Name   PSJobTypeName   State         HasMoreData     Location
--   ----   -------------   -----         -----------     --------
 3   Job3   RemoteJob       Running       True            Server02

Gebruik de cmdlet om de resultaten van de Receive-Job taak op te halen.

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

Status- en beschikbaarheidseigenschappen

De status- en beschikbaarheidseigenschappen van een niet-verbonden PSSession geven aan of de sessie beschikbaar is om er opnieuw verbinding mee te maken.

Wanneer een PSSession is verbonden met de huidige sessie, wordt de status geopend en is de beschikbaarheid beschikbaar. Wanneer u de verbinding met de PSSession verbreekt, wordt de PSSession-status Verbroken en is de beschikbaarheid geen.

De waarde van de eigenschap State is relatief ten opzichte van de huidige sessie. Een waarde van Verbinding verbroken betekent dat de PSSession niet is verbonden met de huidige sessie. Maar het betekent niet dat de PSSession is losgekoppeld van alle sessies. Het kan zijn dat deze is verbonden met een andere sessie.

Gebruik de eigenschap Beschikbaarheid om te bepalen of u verbinding kunt maken met de PSSession of opnieuw verbinding kunt maken. De waarde None geeft aan dat u verbinding kunt maken met de sessie. Een waarde van Bezet geeft aan dat u geen verbinding kunt maken met de PSSession omdat deze is verbonden met een andere sessie.

Het volgende voorbeeld wordt uitgevoerd in twee PowerShell-sessies op dezelfde computer. Let op de veranderende waarden van de eigenschappen Status en Beschikbaarheid in elke sessie omdat de PSSession is verbroken en opnieuw is verbonden.

# Session 1
New-PSSession -ComputerName Server30 -Name Test
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1  Test   Server30        Opened        Microsoft.PowerShell     Available
# Session 2
Get-PSSession -ComputerName Server30 -Name Test
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          Busy
# Session 1
Get-PSSession -ComputerName Server30 -Name Test | Disconnect-PSSession
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          None
# Session 2
Get-PSSession -ComputerName Server30
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          None
# Session 2
Connect-PSSession -ComputerName Server30 -Name Test
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
3 Test    Server30        Opened        Microsoft.PowerShell     Available
# Session 1
Get-PSSession -ComputerName Server30
Id Name   ComputerName    State         ConfigurationName     Availability
-- ----   ------------    -----         -----------------     ------------
1 Test    Server30        Disconnected  Microsoft.PowerShell          Busy

Verbroken sessies worden op de externe computer onderhouden totdat u ze verwijdert, zoals met behulp van de Remove-PSSession cmdlet, of er is een time-out opgetreden. De eigenschap IdleTimeout van een PSSession bepaalt hoe lang een niet-verbonden sessie wordt onderhouden voordat deze wordt verwijderd.

Time-outwaarden voor inactiviteit

PSSessions zijn niet actief wanneer de heartbeat-thread geen antwoord ontvangt. Als u de verbinding met een sessie verbreekt, wordt deze inactief en wordt de klok Inactiviteit gestart, zelfs als opdrachten nog steeds worden uitgevoerd in de niet-verbonden sessie. PowerShell beschouwt niet-verbonden sessies als actief, maar niet actief.

Wanneer u sessies maakt en de verbinding verbreekt, controleert u of de time-out voor inactiviteit in de PSSession lang genoeg is om de sessie te onderhouden voor uw behoeften, maar niet zo lang dat deze onnodige resources op de externe computer verbruikt.

De eigenschap IdleTimeoutMs van de sessieconfiguratie bepaalt de standaard time-out voor inactiviteit van sessies die gebruikmaken van de sessieconfiguratie. U kunt de standaardwaarde overschrijven, maar deze waarde kan de eigenschap MaxIdleTimeoutMs van de sessieconfiguratie niet overschrijden.

Gebruik de volgende opdracht om de waarden van IdleTimeoutMs en MaxIdleTimeoutMs op te halen voor een sessieconfiguratie.

Get-PSSessionConfiguration |
  Format-Table Name, IdleTimeoutMs, MaxIdleTimeoutMs

Als u lid bent van de groep Beheer istrators op de externe computer, kunt u deze waarden instellen wanneer u een sessieconfiguratie maakt. U kunt ook de waarden wijzigen wanneer u de verbinding verbreekt.

De time-outwaarde voor inactiviteit van sessieconfiguraties en sessieopties is in milliseconden. De time-outwaarde voor inactiviteit van sessies en sessieconfiguratieopties is binnen enkele seconden.

U kunt de time-out voor inactiviteit van een PSSession instellen wanneer u de PSSession (New-PSSession, Invoke-Command) maakt en wanneer u de verbinding verbreekt (Disconnect-PSSession). U kunt de waarde IdleTimeout echter niet wijzigen wanneer u verbinding maakt met de PSSession (Connect-PSSession) of resultaten opgeeft (Receive-PSSession).

De Connect-PSSession en Receive-PSSession cmdlets hebben een SessionOption-parameter die een PSSessionOption-object gebruikt, zoals een object dat wordt geretourneerd door de New-PSSessionOption cmdlet.

De waarde IdleTimeout in sessionOption-object en de waarde IdleTimeout in de $PSSessionOption voorkeursvariabele wijzigen niet de waarde van de IdleTimeout in een Connect-PSSession of Receive-PSSession opdracht.

Als u een PSSession wilt maken met een bepaalde time-outwaarde voor inactiviteit, maakt u een $PSSessionOption voorkeursvariabele. Stel de waarde van de eigenschap IdleTimeout in op de gewenste waarde (in milliseconden).

Wanneer u PSSessions maakt, hebben de waarden in $PSSessionOption de variabele voorrang op de waarden in de sessieconfiguratie.

Met de volgende opdracht wordt bijvoorbeeld een time-out voor inactiviteit van 48 uur ingesteld:

$PSSessionOption = New-PSSessionOption -IdleTimeoutMSec 172800000

Als u een PSSession wilt maken met een bepaalde time-outwaarde voor inactiviteit, gebruikt u de parameter IdleTimeoutMSec van de New-PSSessionOption cmdlet. Gebruik vervolgens de sessieoptie in de waarde van de parameter SessionOption van de New-PSSession of Invoke-Command cmdlets.

De waarden die zijn ingesteld bij het maken van de sessie hebben voorrang op de waarden die zijn ingesteld in de $PSSessionOption voorkeursvariabele en de sessieconfiguratie.

Voorbeeld:

$o = New-PSSessionOption -IdleTimeoutMSec 172800000
New-PSSession -SessionOption $o

Als u de time-out voor inactiviteit van een PSSession wilt wijzigen wanneer de verbinding wordt verbroken, gebruikt u de parameter IdleTimeoutSec van de Disconnect-PSSession cmdlet.

Voorbeeld:

Disconnect-PSSession -IdleTimeoutSec 172800

Als u een sessieconfiguratie wilt maken met een bepaalde time-out voor inactiviteit en een maximale time-out voor inactiviteit, gebruikt u de parameters IdleTimeoutSec en MaxIdleTimeoutSec van de New-PSTransportOption cmdlet. Gebruik vervolgens de transportoptie in de waarde van de parameter TransportOption van Register-PSSessionConfiguration.

Voorbeeld:

$o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200
Register-PSSessionConfiguration -Name Test -TransportOption $o

Als u de standaard time-out voor inactiviteit en de maximale time-out voor inactiviteit van een sessieconfiguratie wilt wijzigen, gebruikt u de parameters IdleTimeoutSec en MaxIdleTimeoutSec van de New-PSTransportOption cmdlet. Gebruik vervolgens de transportoptie in de waarde van de parameter TransportOption van Set-PSSessionConfiguration.

Voorbeeld:

$o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200
Set-PSSessionConfiguration -Name Test -TransportOption $o

Uitvoerbuffermodus

De uitvoerbuffermodus van een PSSession bepaalt hoe de uitvoer van de opdracht wordt beheerd wanneer de uitvoerbuffer van de PSSession vol is.

In een niet-verbonden sessie bepaalt de uitvoerbuffermodus effectief of de opdracht blijft worden uitgevoerd terwijl de sessie wordt verbroken.

De geldige waarden als volgt:

  • Block (standaard): wanneer de uitvoerbuffer vol is, wordt de uitvoering onderbroken totdat de buffer leeg is. Block behoudt gegevens, maar kan de opdracht onderbreken.
  • Drop - Wanneer de uitvoerbuffer vol is, wordt de uitvoering voortgezet. Wanneer er nieuwe uitvoer wordt gegenereerd, wordt de oudste uitvoer verwijderd. Wanneer u de Drop waarde gebruikt, moet u de uitvoer omleiden naar een bestand. Deze waarde wordt aanbevolen voor niet-verbonden sessies.

De eigenschap OutputBufferingMode van de sessieconfiguratie bepaalt de standaardbuffermodus van sessies die gebruikmaken van de sessieconfiguratie.

Als u de waarde van een sessieconfiguratie van de OutputBufferingMode wilt vinden, kunt u een van de volgende opdrachtindelingen gebruiken:

(Get-PSSessionConfiguration <ConfigurationName>).OutputBufferingMode
Get-PSSessionConfiguration | Format-Table Name, OutputBufferingMode

U kunt de standaardwaarde in de sessieconfiguratie overschrijven en de uitvoerbuffermodus van een PSSession instellen wanneer u een PSSession maakt, wanneer u de verbinding verbreekt en wanneer u opnieuw verbinding maakt.

Als u lid bent van de groep Beheer istrators op de externe computer, kunt u de uitvoerbuffermodus van sessieconfiguraties maken en wijzigen.

Als u een PSSession wilt maken met een uitvoerbuffermodus van Drop, maakt u een $PSSessionOption voorkeursvariabele waarin de waarde van de eigenschap OutputBufferingMode is Drop.

Wanneer u PSSessions maakt, hebben de waarden in $PSSessionOption de variabele voorrang op de waarden in de sessieconfiguratie.

Voorbeeld:

$PSSessionOption = New-PSSessionOption -OutputBufferingMode Drop

Gebruik de parameter OutputBufferingMode van de New-PSSessionOption cmdlet om een sessieoptie te maken met een waarde van Drop. Gebruik vervolgens het PSSessionOption-object als waarde van de parameter SessionOption van de New-PSSession of Invoke-Command cmdlets.

De waarden die zijn ingesteld bij het maken van de sessie hebben voorrang op de waarden die zijn ingesteld in de $PSSessionOption voorkeursvariabele en de sessieconfiguratie.

Voorbeeld:

$o = New-PSSessionOption -OutputBufferingMode Drop
New-PSSession -SessionOption $o

Als u de uitvoerbuffermodus van een PSSession wilt wijzigen wanneer de verbinding wordt verbroken, gebruikt u de parameter OutputBufferingMode van de Disconnect-PSSession cmdlet.

Voorbeeld:

Disconnect-PSSession -OutputBufferingMode Drop

Als u de uitvoerbuffermodus van een PSSession wilt wijzigen wanneer u opnieuw verbinding maakt, gebruikt u de parameter OutputBufferingMode van de New-PSSessionOption cmdlet. Gebruik vervolgens de sessieoptie in de waarde van de parameter SessionOption van Connect-PSSession of Receive-PSSession.

Voorbeeld:

$o = New-PSSessionOption -OutputBufferingMode Drop
Connect-PSSession -ComputerName Server01 -Name Test -SessionOption $o

Als u een sessieconfiguratie wilt maken met een standaardmodus voor uitvoerbuffering Drop, gebruikt u de parameter OutputBufferingMode van de New-PSTransportOption cmdlet om een transportoptieobject met de waarde van Drop. Gebruik vervolgens de transportoptie in de waarde van de parameter TransportOption van Register-PSSessionConfiguration.

Voorbeeld:

$o = New-PSTransportOption -OutputBufferingMode Drop
Register-PSSessionConfiguration -Name Test -TransportOption $o

Als u de standaardmodus voor uitvoerbuffering van een sessieconfiguratie wilt wijzigen, gebruikt u de parameter OutputBufferingMode van de New-PSTransportOption cmdlet om een transportoptie te maken met een waarde van Drop. Gebruik vervolgens de optie Transport in de waarde van de parameter SessionOption van Set-PSSessionConfiguration.

Voorbeeld:

$o = New-PSTransportOption -OutputBufferingMode Drop
Set-PSSessionConfiguration -Name Test -TransportOption $o

De verbinding met loopbacksessies verbreken

Loopbacksessies, of lokale sessies, zijn PSSessions die afkomstig zijn en beƫindigen op dezelfde computer. Net als andere PSSessions worden actieve loopbacksessies onderhouden op de computer aan het externe uiteinde van de verbinding (de lokale computer), zodat u de verbinding met loopbacksessies kunt verbreken en opnieuw kunt verbinden.

Loopback-sessies worden standaard gemaakt met een netwerkbeveiligingstoken dat niet toestaat dat opdrachten in de sessie worden uitgevoerd voor toegang tot andere computers. U kunt opnieuw verbinding maken met loopbacksessies met een netwerkbeveiligingstoken vanaf elke sessie op de lokale computer of een externe computer.

Als u echter de parameter EnableNetworkAccess van de New-PSSession, Enter-PSSessionof Invoke-Command cmdlet gebruikt, wordt de loopbacksessie gemaakt met een interactief beveiligingstoken. Met het interactieve token kunnen opdrachten die in de loopbacksessie worden uitgevoerd, gegevens ophalen van andere computers.

U kunt loopbacksessies met interactieve tokens loskoppelen en vervolgens opnieuw verbinding maken vanuit dezelfde sessie of een andere sessie op dezelfde computer. Als u echter schadelijke toegang wilt voorkomen, kunt u opnieuw verbinding maken met loopbacksessies met interactieve tokens vanaf de computer waarop ze zijn gemaakt.

Wachten op taken in niet-verbonden sessies

De Wait-Job cmdlet wacht totdat een taak is voltooid en keert vervolgens terug naar de opdrachtprompt of de volgende opdracht. Retourneert standaard als de sessie waarin een taak wordt uitgevoerd, Wait-Job wordt verbroken. Als u de Wait-Job cmdlet wilt laten wachten totdat de sessie opnieuw is verbonden, gebruikt u de parameter Force in de status Geopend. Zie Wachttaak voor meer informatie.

Robuuste sessies en onbedoelde verbroken verbinding

Een PSSession is mogelijk onbedoeld verbroken vanwege een computerfout of netwerkstoring. PowerShell probeert de PSSession te herstellen, maar het succes ervan is afhankelijk van de ernst en duur van de oorzaak.

De status van een onbedoeld verbroken PSSession is mogelijk verbroken of gesloten, maar kan ook worden verbroken. Als de waarde van Status is verbroken, kunt u dezelfde technieken gebruiken om de PSSession te beheren zoals u zou doen als de sessie opzettelijk is verbroken. U kunt bijvoorbeeld de Connect-PSSession cmdlet gebruiken om opnieuw verbinding te maken met de sessie en de Receive-PSSession cmdlet om resultaten op te halen van opdrachten die zijn uitgevoerd terwijl de sessie is verbroken.

Als u de sessie sluit waarin een PSSession is gemaakt terwijl opdrachten worden uitgevoerd in de PSSession, onderhoudt PowerShell de PSSession in de status Verbinding verbroken op de externe computer. Als u de sessie waarin een PSSession is gemaakt, sluit (afsluit), maar er geen opdrachten worden uitgevoerd in de PSSession, probeert PowerShell de PSSession niet te onderhouden.

Zie ook