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, 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 Disconnect-PSSession
Cmdlet trennt nur geöffnete PSSessions , die mit der aktuellen Sitzung verbunden sind. Disconnect-PSSession
Es können keine fehlerhaften oder geschlossenen PSSessions oder interaktiven PSSessions getrennt werden, die mit dem Enter-PSSession
Cmdlet gestartet wurden, und es können keine PSSessions getrennt werden, die mit anderen Sitzungen verbunden sind.
Um die Verbindung mit einer getrennten PSSession wiederherzustellen, verwenden Sie die Connect-PSSession
Oder-Cmdlets Receive-PSSession
.
Wenn eine PSSession getrennt wird, werden die Befehle in der PSSession weiterhin ausgeführt, bis sie abgeschlossen sind, es sei denn, die PSSession-Zeitüberschreitung oder die Befehle in der PSSession werden durch einen vollständigen Ausgabepuffer blockiert. Verwenden Sie zum Ändern des Leerlauftimeouts den Parameter "IdleTimeoutSec ". Verwenden Sie den Parameter OutputBufferingMode , um den Ausgabepuffermodus zu ändern. Sie können auch den Parameter "InDisconnectedSession " 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 anhand des Namens
Mit diesem Befehl wird die UpdateSession
PSSession 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 Trennungsversuch erfolgreich war. Der Sitzungsstatus ist Disconnected
und die Verfügbarkeit None
ist , 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 ITTask
PSSession 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 Get-PSSession
Cmdlet, um die Sitzung und das Disconnect-PSSession
Cmdlet abzurufen, 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 Disconnect-PSSession
Befehl verwendet den Parameter OutputBufferingMode, um den 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.
Der Befehl verwendet auch den Parameter IdleTimeoutSec , um das Leerlauftimeout 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 damit, Sitzungen auf mehreren Remotecomputern zu erstellen und in jeder Sitzung ein Skript auszuführen. Der erste Befehl verwendet das New-PSSession
Cmdlet, um die ITTask
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
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 Get-PSSession
Cmdlet, um die ITTask
Sitzung auf dem Srv1-Computer und das Disconnect-PSSession
Cmdlet abzurufen, um sie zu trennen. Dieser Befehl wirkt sich nicht auf die ITTask
Sitzungen auf den anderen Computern aus.
Der dritte Befehl verwendet das Get-PSSession
Cmdlet zum Abrufen der ITTask
Sitzungen. 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 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 das Skript fehlgeschlagen ist, weil es kein erforderliches Verzeichnis gefunden hat.
Der Manager verwendet die MkDir
Funktion, um das Verzeichnis zu erstellen, und dann startet er das Get-PatchStatus.ps1
Skript neu und trennt sich von der Sitzung. Der Vorgesetzte 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 einen Befehl hinzuzufügen, der Get-PatchStatus.ps1
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 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 Leerlauftimeout einer Sitzung werden in der $PSSessionOption
Einstellungsvariable 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. den Wert "MaxIdleTimeoutMs ".
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. Er verwendet den Parameter IdleTimeout , um ein Leerlauftimeout von 48 Stunden (172800000
Millisekunden) festzulegen. Der Befehl speichert das Sitzungsoptionsobjekt in der $Timeout
Variablen.
Der zweite Befehl verwendet das New-PSSession
Cmdlet zum Erstellen der ITTask
Sitzung auf dem Server01-Computer. Der Befehl speichert die Sitzung in der $s
Variablen. Der Wert des SessionOption-Parameters ist das 48-Stunden-Leerlauftimeout in der $Timeout
Variablen.
Der dritte Befehl trennt die ITTask
Sitzung in der $s
Variablen. Der Befehl schlägt fehl, da der Leerlauftimeoutwert der Sitzung das MaxIdleTimeoutMs-Kontingent 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 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, Millisekunden ( 43200000
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
, was gegen das MaxIdleTimeoutMs-Kontingent von 12 Stunden in der Sitzungskonfiguration verstößt. 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 Leerlauftimeout der Sitzung zu reduzieren.
Der sechste Befehl trennt die Sitzung. Er verwendet den Parameter IdleTimeoutSec , 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
Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | 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.
Verwenden Sie das Get-PSSession
Cmdlet, 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 der getrennten PSSession. Geben Sie einen Wert in Sekunden ein. Der Mindestwert ist 60
(1 Minute).
Das Leerlauftimeout bestimmt, wie lange die getrennte PSSession auf dem Remotecomputer verwaltet wird. Wenn das Timeout abläuft, wird die PSSession gelöscht.
Getrennte PSSessions gelten als im Leerlauf ab dem Moment, in dem sie getrennt sind, 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 Standardtimeout-Timeoutwerts 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 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.
Verwenden Sie das Get-PSSession
Cmdlet, 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 die Verbindung von Sitzungen mit den angegebenen Anzeigenamen. Platzhalter sind zulässig.
Verwenden Sie das Get-PSSession
Cmdlet, um den Anzeigenamen einer Sitzung abzurufen. Der Anzeigename wird in der Name-Eigenschaft der 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 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, Block
mit dem der Befehl angehalten wird, 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 voll ist, wird die Ausführung angehalten, bis der Puffer gelöscht ist.Drop
: Wenn der Ausgabepuffer voll 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.
Typ: | OutputBufferingMode |
Position: | Named |
Standardwert: | Block |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Session
Trennt die Verbindung mit den angegebenen PSSessions. Geben Sie PSSession-Objekte ein, z. B. diejenigen, 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-PSSession
pipen, schlägt der Disconnect-PSSession
Befehl fehl.
Typ: | PSSession[] |
Position: | 1 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-ThrottleLimit
Legt den Drosselungsgrenzwert 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 weglassen oder einen Wert des 0
Standardwerts eingeben, 32
wird der Standardwert verwendet.
Die Drosselungsgrenze gilt nur für den aktuellen Befehl und 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 geschieht, 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
Sie können eine Sitzung an dieses Cmdlet weiterleiten.
Ausgaben
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
:
- Windows:
dnsn
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
Disconnect-PSSession
Cmdlet in einer getrennten 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 erneut verbunden 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 " None".Der Wert der State-Eigenschaft 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. Sie kann mit einer anderen Sitzung verbunden sein. Um festzustellen, ob Sie eine Verbindung mit der Sitzung herstellen oder erneut herstellen 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 vonBusy
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 Verfügbarkeitseigenschaft von Sitzungen finden Sie unter RunspaceAvailability Enumeration.