Disconnect-PSSession

Trennt eine Verbindung.

Syntax

Disconnect-PSSession
          [-Session] <PSSession[]>
          [-IdleTimeoutSec <Int32>]
          [-OutputBufferingMode <OutputBufferingMode>]
          [-ThrottleLimit <Int32>]
          [-WhatIf]
          [-Confirm]
          [<CommonParameters>]
Disconnect-PSSession
          [-IdleTimeoutSec <Int32>]
          [-OutputBufferingMode <OutputBufferingMode>]
          [-ThrottleLimit <Int32>]
          -Name <String[]>
          [-WhatIf]
          [-Confirm]
          [<CommonParameters>]
Disconnect-PSSession
          [-IdleTimeoutSec <Int32>]
          [-OutputBufferingMode <OutputBufferingMode>]
          [-ThrottleLimit <Int32>]
          -InstanceId <Guid[]>
          [-WhatIf]
          [-Confirm]
          [<CommonParameters>]
Disconnect-PSSession
          [-IdleTimeoutSec <Int32>]
          [-OutputBufferingMode <OutputBufferingMode>]
          [-ThrottleLimit <Int32>]
          [-Id] <Int32[]>
          [-WhatIf]
          [-Confirm]
          [<CommonParameters>]

Beschreibung

Dieses Cmdlet ist nur auf der Windows-Plattform verfügbar.

Das Disconnect-PSSession Cmdlet trennt eine PowerShell-Sitzung (PSSession), z. B. eine, die mit dem New-PSSession Cmdlet gestartet wurde, aus der aktuellen Sitzung. Daher befindet sich die PSSession in einem getrennten Zustand. Sie können eine Verbindung mit der getrennten PSSession aus der aktuellen Sitzung oder einer anderen Sitzung auf dem lokalen Computer oder einem anderen Computer herstellen.

Das Disconnect-PSSession Cmdlet trennt nur PSSessions , die mit der aktuellen Sitzung verbunden sind. Disconnect-PSSession Es kann keine unterbrochene oder geschlossene PSSessions oder interaktive PSSessions trennen, die mit dem Enter-PSSession Cmdlet gestartet wurden, und es kann psSessions nicht trennen, die mit anderen Sitzungen verbunden sind.

Wenn Sie eine Verbindung mit einer getrennten PSSession herstellen möchten, verwenden Sie die Connect-PSSession Oder Receive-PSSession Cmdlets.

Wenn eine PSSession getrennt wird, werden die Befehle in der PSSession weiterhin ausgeführt, bis sie abgeschlossen sind, es sei denn, diePSSession- oder die Befehle in der PSSession werden durch einen vollständigen Ausgabepuffer blockiert. Um die Leerlaufzeitüberschreitung zu ändern, verwenden Sie den IdleTimeoutSec-Parameter. Um den Ausgabepuffermodus zu ändern, verwenden Sie den OutputBufferingMode-Parameter Sie können auch den InDisconnectedSession-Parameter des Invoke-Command Cmdlets verwenden, um einen Befehl in einer getrennten Sitzung auszuführen.

Weitere Informationen zum Feature „Getrennte Sitzungen“ finden Sie unter about_Remote_Disconnected_Sessions.

Dieses Cmdlet wird in Windows PowerShell 3.0 eingeführt.

Beispiele

Beispiel 1 : Trennen einer Sitzung nach Name

Dieser Befehl trennt die UpdateSessionPSSession auf dem Server01-Computer aus der aktuellen Sitzung. Der Befehl verwendet den Parameter "Name ", um die PSSession zu identifizieren.

PS> Disconnect-PSSession -Name UpdateSession
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
1  UpdateSession   Server01        Disconnected  Microsoft.PowerShell          None

Die Ausgabe zeigt, dass der Trennungsversuch erfolgreich war. Der Sitzungsstatus ist Disconnected und die VerfügbarkeitNoneist, was angibt, dass die Sitzung nicht beschäftigt ist und erneut verbunden werden kann.

Beispiel 2 : Trennen einer Sitzung von einem bestimmten Computer

Dieser Befehl trennt die ITTaskPSSession auf dem Server12-Computer aus der aktuellen Sitzung. Die ITTask Sitzung wurde in der aktuellen Sitzung erstellt und verbindet sich mit dem Server12-Computer. Der Befehl verwendet das Get-PSSession Cmdlet, um die Sitzung und das Disconnect-PSSession Cmdlet abzurufen, um es zu trennen.

PS> Get-PSSession -ComputerName Server12 -Name ITTask |
  Disconnect-PSSession -OutputBufferingMode Drop -IdleTimeoutSec 86400
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
1  ITTask          Server12        Disconnected  ITTasks               None

Der Disconnect-PSSession Befehl verwendet den OutputBufferingMode-Parameter zum Festlegen des Ausgabemodus auf Drop. Durch diese Einstellung wird sichergestellt, dass das in der Sitzung ausgeführte Skript auch bei vollem Ausgabepuffer weiter ausgeführt werden kann. Da das Skript seine Ausgabedaten in einen Bericht auf einer Dateifreigabe schreibt, können andere Ausgabedaten verloren gehen, ohne dass dies Konsequenzen hätte.

Außerdem verwendet der Befehl den IdleTimeoutSec-Parameter, um die Leerlaufzeitüberschreitung der Sitzung auf 24 Stunden zu erweitern. Diese Einstellung gibt diesem Administrator oder anderen Administratoren Zeit, die Sitzungsverbindung wiederherzustellen, damit das Skript ausgeführt und Fehler ggf. behoben werden können.

Beispiel 3 : Verwenden mehrerer PSSessions auf mehreren Computern

Diese Reihe von Befehlen zeigt, wie das Disconnect-PSSession Cmdlet in einem Unternehmensszenario verwendet werden kann. In diesem Fall startet ein neuer Techniker ein Skript in einer Sitzung auf einem Remotecomputer und stößt auf ein Problem. Der Techniker trennt die Verbindung mit der Sitzung, damit ein erfahrener Kollege eine Verbindung mit der Sitzung herstellen und das Problem beheben kann.

PS> $s = New-PSSession -ComputerName Srv1, Srv2, Srv30 -Name ITTask
PS> Invoke-Command $s -FilePath \\Server01\Scripts\Get-PatchStatus.ps1
PS> Get-PSSession -Name ITTask -ComputerName Srv1 | Disconnect-PSSession
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
1 ITTask           Srv1            Disconnected  Microsoft.PowerShell          None

PS> Get-PSSession -ComputerName Srv1, Srv2, Srv30 -Name ITTask
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Srv1            Disconnected  Microsoft.PowerShell          None
 2 ITTask          Srv2            Opened        Microsoft.PowerShell     Available
 3 ITTask          Srv30           Opened        Microsoft.PowerShell     Available

PS> Get-PSSession -ComputerName Srv1 -Name ITTask -Credential Domain01\User01
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Srv1            Disconnected  Microsoft.PowerShell          None

PS> $s = Connect-PSSession -ComputerName Srv1 -Name ITTask -Credential Domain01\User01
PS> Invoke-Command -Session $s {dir $home\Scripts\PatchStatusOutput.ps1}
PS> Invoke-Command -Session $s {mkdir $home\Scripts\PatchStatusOutput}
PS> Invoke-Command -Session $s -FilePath \\Server01\Scripts\Get-PatchStatus.ps1
PS> Disconnect-PSSession -Session $s

Der Techniker beginnt, Sitzungen auf mehreren Remotecomputern zu erstellen und in jeder Sitzung ein Skript auszuführen. Der erste Befehl verwendet das Cmdlet, um die New-PSSessionITTask Sitzung auf drei Remotecomputern zu erstellen. Der Befehl speichert die Sitzungen in der $s Variablen. Der zweite Befehl verwendet den FilePath-Parameter des Invoke-Command Cmdlets, um ein Skript in den Sitzungen in der $s Variable auszuführen.

Das Skript, das auf dem Computer Srv1 ausgeführt wird, generiert unerwartete Fehler. Der Techniker wendet sich an seinen Vorgesetzten und bittet ihn um Hilfe. Der Manager leitet den Techniker an, die Verbindung mit der Sitzung zu trennen, damit er untersuchen kann. Der zweite Befehl verwendet das Cmdlet, um die Get-PSSessionITTask Sitzung auf dem Srv1-Computer abzurufen und das Disconnect-PSSession Cmdlet zu trennen. Dieser Befehl wirkt sich nicht auf die ITTask Sitzungen auf den anderen Computern aus.

Der dritte Befehl verwendet das Cmdlet, um die Get-PSSessionITTask Sitzungen abzurufen. Die Ausgabe zeigt, dass die ITTask Sitzungen auf den Srv2- und Srv30-Computern nicht vom Befehl betroffen waren, um die Verbindung zu trennen.

Der Manager meldet sich auf seinem Heimcomputer an, verbindet sich mit seinem Unternehmensnetzwerk, startet PowerShell und verwendet das Get-PSSession Cmdlet, um die ITTask Sitzung auf dem Srv1-Computer abzurufen. Er verwendet die Anmeldeinformationen des Technikers, um auf die Sitzung zuzugreifen.

Als Nächstes verwendet der Manager das Connect-PSSession Cmdlet, um eine Verbindung mit der ITTask Sitzung auf dem Srv1-Computer herzustellen. Der Befehl speichert die Sitzung in der Variablen $s.

Der Manager verwendet das Invoke-Command Cmdlet, um einige Diagnosebefehle in der Sitzung in der $s Variablen auszuführen. Er erkennt, dass der Skriptfehler durch ein nicht gefundenes, erforderliches Verzeichnis verursacht wurde. Der Manager verwendet die MkDir Funktion zum Erstellen des Verzeichnisses, und dann startet er das Get-PatchStatus.ps1 Skript neu und trennt sich von der Sitzung. Der Manager meldet seine Ergebnisse dem Techniker, schlägt vor, dass er eine Verbindung mit der Sitzung zurückgibt, um die Aufgaben abzuschließen, und fordert ihn auf, dem Skript einen Befehl hinzuzufügen, der das Get-PatchStatus.ps1 erforderliche Verzeichnis erstellt, wenn es nicht vorhanden ist.

Beispiel 4 : Ändern des Timeoutwerts für eine PSSession

In diesem Beispiel wird gezeigt, wie der Wert der IdleTimeout-Eigenschaft einer Sitzung korrigiert wird, damit die Verbindung getrennt werden kann.

Die Eigenschaft für die Leerlaufzeitüberschreitung einer Sitzung ist wichtig für getrennte Sitzungen, weil von ihr abhängt, wie lange eine getrennte Sitzung vor dem Löschen beibehalten wird. Sie können die Option für die Leerlaufzeitüberschreitung festlegen, wenn Sie eine Sitzung erstellen und wenn Sie die Verbindung trennen. Die Standardwerte für das Leerlauf-Timeout einer Sitzung werden auf $PSSessionOption dem lokalen Computer und in der Sitzungskonfiguration auf dem Remotecomputer festgelegt. Die für die Sitzung festgelegten Werte haben Vorrang vor den in der Sitzungskonfiguration festgelegten Werten. Die Sitzungswerte dürfen jedoch die in der Sitzungskonfiguration festgelegten Kontingente, z. B. den MaxIdleTimeoutMs-Wert, nicht überschreiten.

PS> $Timeout = New-PSSessionOption -IdleTimeout 172800000
PS> $s = New-PSSession -Computer Server01 -Name ITTask -SessionOption $Timeout
PS> Disconnect-PSSession -Session $s
Disconnect-PSSession : The session ITTask cannot be disconnected because the specified
idle timeout value 172800(seconds) is either greater than the server maximum allowed
43200 (seconds) or less that the minimum allowed60(seconds).  Choose an idle time out
value that is within the allowed range and try again.

PS> Invoke-Command -ComputerName Server01 {Get-PSSessionConfiguration Microsoft.PowerShell} |
 Format-List -Property *

Architecture                  : 64
Filename                      : %windir%\system32\pwrshplugin.dll
ResourceUri                   : http://schemas.microsoft.com/powershell/microsoft.powershell
MaxConcurrentCommandsPerShell : 1000
UseSharedProcess              : false
ProcessIdleTimeoutSec         : 0
xmlns                         : http://schemas.microsoft.com/wbem/wsman/1/config/PluginConfiguration
MaxConcurrentUsers            : 5
lang                          : en-US
SupportsOptions               : true
ExactMatch                    : true
RunAsUser                     :
IdleTimeoutms                 : 7200000
PSVersion                     : 3.0
OutputBufferingMode           : Block
AutoRestart                   : false
SecurityDescriptorSddl        : O:NSG:BAD:P(A;;GA;;;BA)S:P(AU;FA;GA;;;WD)(AU;SA;GXGW;;;WD)
MaxMemoryPerShellMB           : 1024
MaxIdleTimeoutms              : 2147483647
Uri                           : http://schemas.microsoft.com/powershell/microsoft.powershell
SDKVersion                    : 2
Name                          : microsoft.powershell
XmlRenderingType              : text
Capability                    : {Shell}
RunAsPassword                 :
MaxProcessesPerShell          : 15
ParentResourceUri             : http://schemas.microsoft.com/powershell/microsoft.powershell
Enabled                       : true
MaxShells                     : 25
MaxShellsPerUser              : 25
Permission                    : BUILTIN\Administrators AccessAllowed
PSComputerName                : localhost
RunspaceId                    : aea84310-6dbf-4c21-90ac-13980039925a
PSShowComputerName            : True


PS> $s.Runspace.ConnectionInfo
ConnectionUri                     : http://Server01/wsman
ComputerName                      : Server01
Scheme                            : http
Port                              : 80
AppName                           : /wsman
Credential                        :
ShellUri                          : http://schemas.microsoft.com/powershell/Microsoft.PowerShell
AuthenticationMechanism           : Default
CertificateThumbprint             :
MaximumConnectionRedirectionCount : 5
MaximumReceivedDataSizePerCommand :
MaximumReceivedObjectSize         : 209715200
UseCompression                    : True
NoMachineProfile                  : False
ProxyAccessType                   : None
ProxyAuthentication               : Negotiate
ProxyCredential                   :
SkipCACheck                       : False
SkipCNCheck                       : False
SkipRevocationCheck               : False
NoEncryption                      : False
UseUTF16                          : False
OutputBufferingMode               : Drop
IncludePortInSPN                  : False
Culture                           : en-US
UICulture                         : en-US
OpenTimeout                       : 180000
CancelTimeout                     : 60000
OperationTimeout                  : 180000
IdleTimeout                       : 172800000

PS> Disconnect-PSSession $s -IdleTimeoutSec 43200
Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 4 ITTask          Server01        Disconnected  Microsoft.PowerShell          None

PS> $s.Runspace.ConnectionInfo.IdleTimeout
43200000

Der erste Befehl verwendet das New-PSSessionOption Cmdlet zum Erstellen eines Sitzungsoptionsobjekts. Es verwendet den IdleTimeout-Parameter , um ein Leerlaufzeitout von 48 Stunden (172800000 Millisekunden) festzulegen. Der Befehl speichert das Sitzungsoptionsobjekt in der $Timeout Variablen.

Der zweite Befehl verwendet das Cmdlet, um die New-PSSessionITTask Sitzung auf dem Server01-Computer zu erstellen. Der Befehl speichert die Sitzung in der $s Variablen. Der Wert des SessionOption-Parameters ist das 48-Stunden-Leerlauf-Timeout in der $Timeout Variable.

Der dritte Befehl trennt die ITTask Sitzung in der $s Variablen. Der Befehl verursacht einen Fehler, weil der Wert für die Leerlaufzeitüberschreitung der Sitzung das MaxIdleTimeoutMs-Kontingent in der Sitzungskonfiguration überschreitet. Da die Leerlaufzeitüberschreitung erst verwendet wird, wenn die Sitzung getrennt ist, bleibt dieser Verstoß während der laufenden Sitzung unentdeckt.

Der vierte Befehl verwendet das Invoke-Command Cmdlet, um einen Get-PSSessionConfiguration Befehl für die Microsoft.PowerShell Sitzungskonfiguration auf dem Server01-Computer auszuführen. Der Befehl verwendet das Format-List Cmdlet, um alle Eigenschaften der Sitzungskonfiguration in einer Liste anzuzeigen. Die Ausgabe zeigt, dass die MaxIdleTimeoutMS-Eigenschaft , die den maximal zulässigen IdleTimeout-Wert für Sitzungen festlegt, die die Sitzungskonfiguration verwenden, 43200000 Millisekunden (12 Stunden).

Der fünfte Befehl ruft die Sitzungsoptionswerte der Sitzung in der $s Variablen ab. Die Werte vieler Sitzungsoptionen sind Eigenschaften der ConnectionInfo-Eigenschaft der Runspace-Eigenschaft der Sitzung. Die Ausgabe zeigt, dass der Wert der IdleTimeout-Eigenschaft der Sitzung Millisekunden (48 Stunden) ist 172800000 , die das MaxIdleTimeoutMs-Kontingent von 12 Stunden in der Sitzungskonfiguration verletzt. Um diesen Konflikt zu beheben, können Sie den ConfigurationName-Parameter verwenden, um eine andere Sitzungskonfiguration auszuwählen oder den IdleTimeout-Parameter zu verwenden, um das Leerlauf-Timeout der Sitzung zu reduzieren.

Der sechste Befehl trennt die Sitzungsverbindung. Er verwendet den IdleTimeoutSec-Parameter, um die Leerlaufzeitüberschreitung auf den Maximalwert von 12 Stunden festzulegen.

Der siebte Befehl ruft den Wert der IdleTimeout-Eigenschaft der getrennten Sitzung ab, der in Millisekunden gemessen wird. Die Ausgabe bestätigt, dass der Befehl erfolgreich ausgeführt wurde.

Parameter

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-Id

Trennt die Verbindung von Sitzungen mit der angegebenen Sitzungs-ID. Geben Sie eine oder mehrere IDs (durch Kommas getrennt) ein, oder verwenden Sie den Bereichsoperator (..), um einen Bereich von IDs anzugeben.

Um die ID einer Sitzung abzurufen, verwenden Sie das Get-PSSession Cmdlet. Die Instanz-ID wird in der ID-Eigenschaft der Sitzung gespeichert.

Type:Int32[]
Position:1
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-IdleTimeoutSec

Ändert den Leerlauf-Timeoutwert der getrennten PSSession. Geben Sie einen Wert in Sekunden ein. Der Mindestwert ist 60 (1 Minute).

Das Leerlauf-Timeout bestimmt, wie lange die getrennten PSSession auf dem Remotecomputer beibehalten wird. Wenn das Timeout abläuft, wird die PSSession gelöscht.

Getrennte PSSessions werden als Leerlauf betrachtet, wenn sie getrennt werden, auch wenn Befehle in der getrennten Sitzung ausgeführt werden.

Der Standardwert für die Leerlaufzeitüberschreitung einer Sitzung wird durch den Wert der IdleTimeoutMs-Eigenschaft der Sitzungskonfiguration festgelegt. Der Standardwert ist 7200000 Millisekunden (2 Stunden).

Der Wert dieses Parameters hat Vorrang vor dem Wert der IdleTimeout-Eigenschaft der $PSSessionOption Einstellungsvariable und des Standard-Leerlauf-Timeoutwerts in der Sitzungskonfiguration. Allerdings darf dieser Wert nicht den Wert der MaxIdleTimeoutMs-Eigenschaft der Sitzungskonfiguration überschreiten. Der Standardwert von MaxIdleTimeoutMs beträgt 12 Stunden (43200000 Millisekunden).

Type:Int32
Position:Named
Default value:60
Accept pipeline input:False
Accept wildcard characters:False
-InstanceId

Trennt die Verbindung von Sitzungen mit den angegebenen Instanz-IDs.

Die Instanz-ID ist eine GUID, die eine Sitzung auf einem lokalen oder Remotecomputer eindeutig identifiziert. Die Instanz-ID ist eindeutig, sogar über mehrere Sitzungen auf mehreren Computern.

Um die Instanz-ID einer Sitzung abzurufen, verwenden Sie das Get-PSSession Cmdlet. Die Instanz-ID wird in der InstanceID-Eigenschaft der Sitzung gespeichert.

Type:Guid[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-Name

Trennt die Verbindung von Sitzungen mit den angegebenen Anzeigenamen. Platzhalter sind zulässig.

Um den Anzeigenamen einer Sitzung abzurufen, verwenden Sie das Get-PSSession Cmdlet. Der Anzeigename wird in der Name-Eigenschaft der Sitzung gespeichert.

Type:String[]
Position:Named
Default value:None
Accept pipeline input:True
Accept wildcard characters:True
-OutputBufferingMode

Bestimmt, wie die Befehlsausgabe in der getrennten Sitzung verwaltet wird, wenn der Ausgabepuffer voll ist. Standardwert: Block.

Wenn der Befehl in der getrennten Sitzung Ausgabedaten zurückgibt und sich der Ausgabepuffer füllt, legt der Wert dieses Parameters tatsächlich fest, ob der Befehl weiter ausgeführt wird, während die Sitzung getrennt ist. Ein Wert, der Block den Befehl angehalten, bis die Sitzung erneut verbunden ist. Ein Wert, mit Drop dem der Befehl abgeschlossen werden kann, obwohl Daten möglicherweise verloren gehen. Wenn Sie den Drop Wert verwenden, leiten Sie die Befehlsausgabe auf eine Datei auf dem Datenträger um.

Gültige Werte sind:

  • Block: Wenn der Ausgabepuffer vollständig ist, wird die Ausführung angehalten, bis der Puffer gelöscht ist.
  • Drop: Wenn der Ausgabepuffer vollständig ist, wird die Ausführung fortgesetzt. Sobald neue Ausgabedaten gespeichert werden, wird die älteste Ausgabe verworfen.
  • None: Es wird kein Ausgabepuffermodus angegeben. Der Wert der OutputBufferingMode-Eigenschaft der Sitzungskonfiguration wird für die getrennte Sitzung verwendet.
Type:OutputBufferingMode
Position:Named
Default value:Block
Accept pipeline input:False
Accept wildcard characters:False
-Session

Trennen Sie die angegebenen PSSessions. Geben Sie PSSession-Objekte ein, z. B. diese, die das New-PSSession Cmdlet zurückgibt. Sie können auch ein PSSession-Objekt an Disconnect-PSSession.

Das Get-PSSession Cmdlet kann alle PSSessions abrufen, die auf einem Remotecomputer beendet werden, einschließlich PSSessions , die getrennt sind und PSSessions , die mit anderen Sitzungen auf anderen Computern verbunden sind. Disconnect-PSSession trennt nur PSSession , die mit der aktuellen Sitzung verbunden sind. Wenn Sie andere PSSessions an Disconnect-PSSessionpipen, schlägt der Disconnect-PSSession Befehl fehl.

Type:PSSession[]
Position:1
Default value:None
Accept pipeline input:True
Accept wildcard characters:False
-ThrottleLimit

Legt die Drosselungsgrenze für den Disconnect-PSSession Befehl fest.

Die Drosselungsgrenze ist die maximale Anzahl gleichzeitiger Verbindungen, die zum Ausführen dieses Befehls hergestellt werden können. Wenn Sie diesen Parameter auslassen oder einen Wert von 0, dem Standardwert, eingeben, 32wird verwendet.

Die Drosselungsgrenze gilt nur für den aktuellen Befehl und nicht für die Sitzung oder den Computer.

Type:Int32
Position:Named
Default value:32
Accept pipeline input:False
Accept wildcard characters:False
-WhatIf

Zeigt, was geschieht, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

PSSession

Sie können eine Sitzung an Disconnect-PSSession.

Ausgaben

PSSession

Disconnect-PSSession gibt ein Objekt zurück, das die Sitzung darstellt, die sie getrennt hat.

Hinweise

Dieses Cmdlet ist nur auf Windows-Plattformen verfügbar.

  • Das Disconnect-PSSession Cmdlet funktioniert nur, wenn die lokalen und Remotecomputer PowerShell 3.0 oder höher ausführen.

  • Wenn Sie das Cmdlet in einer getrennten Sitzung verwenden, hat der Disconnect-PSSession Befehl keine Auswirkungen auf die Sitzung und generiert keine Fehler.

  • Die Verbindung getrennter Loopbacksitzungen mit interaktiven Sicherheitstoken (die mit dem EnableNetworkAccess-Parameter erstellt werden) kann nur von dem Computer wiederhergestellt werden, auf dem die Sitzung erstellt wurde. Diese Einschränkung schützt den Computer vor böswilligem Zugriff.

  • Wenn Sie eine PSSession trennen, ist Disconnected der Sitzungszustand und die Verfügbarkeit ist Keine.

    Der Wert der State Eigenschaft bezieht sich auf die aktuelle Sitzung. Daher bedeutet ein Wert, Disconnected dass die PSSession nicht mit der aktuellen Sitzung verbunden ist. Es bedeutet jedoch nicht, dass die PSSession von allen Sitzungen getrennt wird. Sie kann mit einer anderen Sitzung verbunden sein. Um festzustellen, ob Sie eine Sitzungsverbindung herstellen bzw. wiederherstellen können, verwenden Sie die Availability-Eigenschaft.

    Ein Verfügbarkeitswert von None gibt an, dass Sie eine Verbindung mit der Sitzung herstellen können. Ein Wert von Busy gibt an, dass Sie keine Verbindung mit der PSSession herstellen können, da sie mit einer anderen Sitzung verbunden ist.

    Weitere Informationen zu den Werten der State-Eigenschaft von Sitzungen finden Sie unter RunspaceState-Aufzählung.

    Weitere Informationen zu den Werten der Verfügbarkeitseigenschaft von Sitzungen finden Sie unter RunspaceAvailability Enumeration.