Freigeben über


Disconnect-PSSession

Trennt sich von einer Sitzung.

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 cmdlet Disconnect-PSSession trennt eine PowerShell-Sitzung (PSSession), z. B. eines, das mit dem Cmdlet New-PSSession gestartet wurde, von der aktuellen Sitzung. Daher befindet sich die PSSession- in einem getrennten Zustand. Sie können eine Verbindung mit der getrennten PSSession von der aktuellen Sitzung oder von einer anderen Sitzung auf dem lokalen Computer oder einem anderen Computer herstellen.

Das cmdlet Disconnect-PSSession trennt nur PSSessions, die mit der aktuellen Sitzung verbunden sind. Disconnect-PSSession kann nicht unterbrochene oder geschlossene PSSessionsoder interaktive PSSessions, die mit dem Cmdlet Enter-PSSession gestartet wurden, getrennt werden, und es kann nicht PSSessions- getrennt werden, die mit anderen Sitzungen verbunden sind.

Um die Verbindung mit einer getrennten PSSession-wiederherzustellen, verwenden Sie die Cmdlets Connect-PSSession oder Receive-PSSession.

Wenn eine PSSession- getrennt ist, werden die Befehle in der PSSession weiterhin ausgeführt, bis sie abgeschlossen sind, es sei denn, die PSSession zeitüberschreitungen oder die Befehle in der PSSession werden durch einen vollständigen Ausgabepuffer blockiert. Verwenden Sie zum Ändern des Leerlauftimeouts den parameter IdleTimeoutSec. Verwenden Sie zum Ändern des Ausgabepuffermodus den parameter OutputBufferingMode Sie können auch den parameter InDisconnectedSession Parameter des cmdlets Invoke-Command 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 anhand des Namens

Mit diesem Befehl wird die UpdateSessionPSSession- auf dem Server01-Computer von der aktuellen Sitzung getrennt. 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 Versuch, die Verbindung zu trennen, erfolgreich war. Der Sitzungszustand ist Disconnected und die Verfügbarkeit ist None, was angibt, dass die Sitzung nicht ausgelastet ist und erneut verbunden werden kann.

Beispiel 2: Trennen einer Sitzung von einem bestimmten Computer

Mit diesem Befehl wird die ITTaskPSSession auf dem Server12-Computer von der aktuellen Sitzung getrennt. Die ITTask Sitzung wurde in der aktuellen Sitzung erstellt und stellt eine Verbindung mit dem Server12-Computer herstellt. Der Befehl verwendet das Cmdlet Get-PSSession, um die Sitzung abzurufen, und das cmdlet Disconnect-PSSession, um die Verbindung 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 befehl Disconnect-PSSession verwendet den parameter OutputBufferingMode, um den Ausgabemodus auf Dropfestzulegen. Diese Einstellung stellt sicher, dass das skript, das in der Sitzung ausgeführt wird, auch dann weiterhin ausgeführt werden kann, wenn der Sitzungsausgabepuffer voll ist. Da das Skript seine Ausgabe in einen Bericht in einer Dateifreigabe schreibt, kann eine andere Ausgabe ohne Folge verloren gehen.

Der Befehl verwendet außerdem den parameter IdleTimeoutSec, um das Leerlauftimeout der Sitzung auf 24 Stunden zu erweitern. Diese Einstellung ermöglicht es diesem Administrator oder anderen Administratoren, eine erneute Verbindung mit der Sitzung herzustellen, um sicherzustellen, dass das Skript bei Bedarf ausgeführt wurde, und Problembehandlung.

Beispiel 3: Verwenden mehrerer PSSessions auf mehreren Computern

Diese Reihe von Befehlen zeigt, wie das cmdlet Disconnect-PSSession in einem Unternehmensszenario verwendet werden kann. In diesem Fall startet ein neuer Techniker ein Skript in einer Sitzung auf einem Remotecomputer und tritt in ein Problem auf. Der Techniker trennt sich von der Sitzung, sodass ein erfahrenerer Manager 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 damit, Sitzungen auf mehreren Remotecomputern zu erstellen und in jeder Sitzung ein Skript auszuführen. Der erste Befehl verwendet das Cmdlet New-PSSession, um die ITTask Sitzung auf drei Remotecomputern zu erstellen. Der Befehl speichert die Sitzungen in der variablen $s. Der zweite Befehl verwendet den FilePath Parameter des cmdlets Invoke-Command, um ein Skript in den Sitzungen in der $s Variablen auszuführen.

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

Der dritte Befehl verwendet das cmdlet Get-PSSession, um die ITTask Sitzungen abzurufen. Die Ausgabe zeigt, dass die ITTask Sitzungen auf den Computern Srv2 und Srv30 vom Befehl zum Trennen nicht betroffen waren.

Der Manager meldet sich an seinem Heimcomputer an, stellt eine Verbindung mit seinem Unternehmensnetzwerk bereit, startet PowerShell und verwendet das cmdlet Get-PSSession, 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 Cmdlet Connect-PSSession, 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 Cmdlet Invoke-Command, um einige Diagnosebefehle in der Sitzung in der $s Variablen auszuführen. Er erkennt, dass das Skript fehlgeschlagen ist, weil es kein erforderliches Verzeichnis gefunden hat. Der Vorgesetzte verwendet die MkDir-Funktion, um das Verzeichnis zu erstellen, und startet dann das Get-PatchStatus.ps1 Skript neu und trennt sich von der Sitzung. Der Manager meldet seine Ergebnisse an den Techniker, schlägt vor, dass er die Verbindung zur Sitzung erneut herstellen kann, um die Aufgaben abzuschließen, und fordert ihn auf, dem skript Get-PatchStatus.ps1 einen Befehl hinzuzufügen, der das erforderliche Verzeichnis erstellt, wenn es nicht vorhanden ist.

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

In diesem Beispiel wird veranschaulicht, wie der Wert der IdleTimeout- Eigenschaft einer Sitzung korrigiert wird, damit sie getrennt werden kann.

Die Timeouteigenschaft im Leerlauf einer Sitzung ist wichtig für getrennte Sitzungen, da sie bestimmt, wie lange eine getrennte Sitzung beibehalten wird, bevor sie gelöscht wird. Sie können die Leerlauftimeoutoption festlegen, wenn Sie eine Sitzung erstellen und die Verbindung trennen. Die Standardwerte für das Leerlauftimeout einer Sitzung werden in der Einstellungsvariable $PSSessionOption auf dem lokalen Computer und in der Sitzungskonfiguration auf dem Remotecomputer festgelegt. Werte, die für die Sitzung festgelegt wurden, haben Vorrang vor werten, die in der Sitzungskonfiguration festgelegt wurden, aber Sitzungswerte dürfen in der Sitzungskonfiguration festgelegte Kontingente nicht überschreiten, z. B. die MaxIdleTimeoutMs Wert.

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 Cmdlet New-PSSessionOption zum Erstellen eines Sitzungsoptionsobjekts. Es verwendet den IdleTimeout Parameter zum Festlegen eines Leerlauftimeouts von 48 Stunden (172800000 Millisekunden). Der Befehl speichert das Sitzungsoptionsobjekt in der variablen $Timeout.

Der zweite Befehl verwendet das cmdlet New-PSSession zum Erstellen der ITTask Sitzung auf dem Server01-Computer. Der Befehl speichert die Sitzung in der variablen $s. Der Wert des SessionOption-Parameters ist das 48-Stunden-Leerlauftimeout in der $Timeout Variablen.

Der dritte Befehl trennt die ITTask Sitzung in der variablen $s. Der Befehl schlägt fehl, da der Leerlauftimeoutwert der Sitzung die MaxIdleTimeoutMs Kontingents in der Sitzungskonfiguration überschreitet. Da das Leerlauftimeout erst verwendet wird, wenn die Sitzung getrennt wurde, kann diese Verletzung während der Verwendung der Sitzung nicht erkannt werden.

Der vierte Befehl verwendet das Cmdlet Invoke-Command, um einen Get-PSSessionConfiguration Befehl für die Konfiguration der Microsoft.PowerShell Sitzung auf dem Server01-Computer auszuführen. Der Befehl verwendet das Cmdlet Format-List, 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, die die Sitzungskonfiguration verwenden, 43200000 Millisekunden (12 Stunden) festlegt.

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

Der sechste Befehl trennt die Sitzung. Es verwendet den IdleTimeoutSec Parameter, um das Leerlauftimeout auf das Maximum von 12 Stunden festzulegen.

Der siebte Befehl ruft den Wert der IdleTimeout Eigenschaft der getrennten Sitzung ab, die in Millisekunden gemessen wird. Die Ausgabe bestätigt, dass der Befehl erfolgreich war.

Parameter

-Confirm

Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Id

Trennt 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.

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

Typ:Int32[]
Position:1
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-IdleTimeoutSec

Ändert den Leerlauftimeoutwert des getrennten PSSession. Geben Sie einen Wert in Sekunden ein. Der Mindestwert ist 60 (1 Minute).

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

Die Verbindung PSSessions- gilt ab dem Zeitpunkt, an dem sie getrennt sind, als im Leerlauf, auch wenn Befehle in der getrennten Sitzung ausgeführt werden.

Der Standardwert für das Leerlauftimeout 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 Standardtimeoutwerts in der Sitzungskonfiguration. Dieser Wert darf jedoch den Wert der MaxIdleTimeoutMs Eigenschaft der Sitzungskonfiguration nicht überschreiten. Der Standardwert von MaxIdleTimeoutMs beträgt 12 Stunden (43200000 Millisekunden).

Typ:Int32
Position:Named
Standardwert:60
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InstanceId

Trennt 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, auch über mehrere Sitzungen auf mehreren Computern.

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

Typ:Guid[]
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Name

Trennt von Sitzungen mit den angegebenen Anzeigenamen. Wildcards sind zulässig.

Verwenden Sie das Cmdlet Get-PSSession, um den Anzeigenamen einer Sitzung abzurufen. Der Anzeigename wird in der eigenschaft Name Sitzung gespeichert.

Typ:String[]
Position:Named
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:True

-OutputBufferingMode

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

Wenn der Befehl in der getrennten Sitzung die Ausgabe zurückgibt und der Ausgabepuffer gefüllt wird, bestimmt der Wert dieses Parameters effektiv, ob der Befehl weiterhin ausgeführt wird, während die Sitzung getrennt wird. Ein Wert von Block hält den Befehl an, bis die Sitzung erneut verbunden ist. Ein Wert von Drop ermöglicht das Abschließen des Befehls, obwohl Daten verloren gehen können. Wenn Sie den wert Drop verwenden, leiten Sie die Befehlsausgabe auf eine Datei auf dem Datenträger um.

Gültige Werte sind:

  • Block: Wenn der Ausgabepuffer voll ist, wird die Ausführung angehalten, bis der Puffer gelöscht ist.
  • Drop: Wenn der Ausgabepuffer voll ist, wird die Ausführung fortgesetzt. Beim Speichern einer neuen Ausgabe 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.
Typ:OutputBufferingMode
Position:Named
Standardwert:Block
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Session

Trennt die Verbindung mit dem angegebenen PSSessions-. Geben Sie PSSession--Objekte ein, z. B. die Objekte, die vom cmdlet New-PSSession zurückgegeben werden. Sie können auch ein PSSession--Objekt an Disconnect-PSSessionsenden.

Das cmdlet Get-PSSession 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-PSSessionweitergeleitet haben, schlägt der befehl Disconnect-PSSession fehl.

Typ:PSSession[]
Position:1
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-ThrottleLimit

Legt den Drosselungsgrenzwert für den Befehl Disconnect-PSSession fest.

Der Drosselungsgrenzwert ist die maximale Anzahl gleichzeitiger Verbindungen, die zum Ausführen dieses Befehls eingerichtet werden können. Wenn Sie diesen Parameter weglassen oder einen Wert von 0eingeben, wird der Standardwert 32verwendet.

Der Drosselungsgrenzwert gilt nur für den aktuellen Befehl, nicht für die Sitzung oder den Computer.

Typ:Int32
Position:Named
Standardwert:32
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WhatIf

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

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

PSSession

Sie können eine Sitzung an dieses Cmdlet weiterleiten.

Ausgaben

PSSession

Dieses Cmdlet gibt ein Objekt zurück, das die Sitzung darstellt, die sie getrennt hat.

Hinweise

PowerShell enthält die folgenden Aliase für Disconnect-PSSession:

  • Fenster:
    • dnsn

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

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

  • Wenn Sie das Cmdlet Disconnect-PSSession für eine getrennte Sitzung verwenden, hat der Befehl keine Auswirkungen auf die Sitzung und generiert keine Fehler.

  • Getrennte Loopbacksitzungen mit interaktiven Sicherheitstoken (die mit dem EnableNetworkAccess Parameter erstellt wurden) können nur von dem Computer, auf dem die Sitzung erstellt wurde, erneut verbunden werden. Diese Einschränkung schützt den Computer vor böswilligem Zugriff.

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

    Der Wert der eigenschaft State ist relativ zur aktuellen Sitzung. Daher bedeutet der Wert Disconnected, dass die PSSession- nicht mit der aktuellen Sitzung verbunden ist. Es bedeutet jedoch nicht, dass die PSSession- von allen Sitzungen getrennt ist. Möglicherweise ist sie mit einer anderen Sitzung verbunden. Um festzustellen, ob Sie eine Verbindung mit der Sitzung herstellen oder erneut herstellen können, verwenden Sie die Eigenschaft Availability.

    Ein Availability Wert 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 Enumeration.

    Weitere Informationen zu den Werten der Availability-Eigenschaft von Sitzungen finden Sie unter RunspaceAvailability Enumeration.