about_Remote_Disconnected_Sessions
Krótki opis
W tym artykule wyjaśniono, jak rozłączyć sesję programu PowerShell i ponownie nawiązać połączenie z sesją programu PowerShell (PSSession).
Długi opis
Począwszy od programu PowerShell 3.0, można odłączyć się od programu PSSession i ponownie nawiązać połączenie z programem PSSession z tego samego komputera lub innego komputera. Stan sesji jest utrzymywany, a polecenia w sesji PSSession nadal działają, gdy sesja jest rozłączona.
Funkcja Rozłączone sesje umożliwia zamknięcie sesji, w której utworzono program PSSession i zamknięcie komputera bez zakłócania działania poleceń uruchomionych w zdalnym programie PSSession. Sesje rozłączone są przydatne w przypadku uruchamiania poleceń, które trwają przez dłuższy czas.
Nie można odłączyć się od sesji interaktywnej, która została uruchomiona przy użyciu Enter-PSSession
polecenia cmdlet .
Sesje rozłączone można użyć do zarządzania sesjami PSSessions, które zostały rozłączone przypadkowo w wyniku awarii komputera lub sieci.
Polecenia cmdlet rozłączonej sesji
Następujące polecenia cmdlet obsługują funkcję Rozłączone sesje:
-
Connect-PSSession
: nawiązuje połączenie z odłączonym programem PSSession. -
Disconnect-PSSession
: rozłącza pssession. -
Get-PSSession
: pobiera pssessions na komputerze lokalnym lub na komputerach zdalnych. -
Receive-PSSession
: pobiera wyniki poleceń uruchamianych w rozłączonych sesjach. -
Invoke-Command
: Parametr InDisconnectedSession tworzy plik PSSession i natychmiast się rozłącza.
Jak działa funkcja Rozłączone sesje
Począwszy od programu PowerShell 3.0, sesje PSSessions są niezależne od sesji, w których są tworzone. Aktywne psSessions są utrzymywane po stronie komputera zdalnego lub serwera połączenia, nawet jeśli komputer po stronie klienta jest wyłączony lub odłączony od sieci.
W programie PowerShell 2.0 sesja PSSession jest usuwana z komputera zdalnego, gdy zostanie odłączona od sesji źródłowej lub sesji, w której została utworzona.
Po rozłączeniu programu PSSession program PSSession pozostaje aktywny i jest utrzymywany na komputerze zdalnym. Stan sesji zmienia się z Uruchomiono na Rozłączone. Możesz ponownie nawiązać połączenie z odłączoną sesją PSSession z:
- Bieżąca sesja na tym samym komputerze
- Inna sesja na tym samym komputerze
- Z poziomu sesji na innym komputerze
Komputer zdalny, który utrzymuje sesję, musi być uruchomiony i być połączony z siecią.
Polecenia w rozłączonej sesji PSSession nadal działają nieprzerwanie na komputerze zdalnym, dopóki polecenie nie zostanie zakończone lub bufor wyjściowy wypełni. Aby zapobiec wstrzymaniu polecenia przez pełny bufor wyjściowy, użyj parametru poleceń cmdlet , Disconnect-PSSession
lub New-PSSessionOption
.
Rozłączone sesje są utrzymywane w stanie rozłączenia na komputerze zdalnym. Są one dostępne do ponownego nawiązania połączenia do momentu usunięcia programu PSSession, takiego jak użycie Remove-PSSession
polecenia cmdlet, lub do momentu wygaśnięcia limitu czasu bezczynności sesji PSSession. Limit czasu bezczynności usługi PSSession można dostosować przy użyciu parametrów IdleTimeoutSec lub Disconnect-PSSession
poleceń cmdlet , New-PSSessionOption
lub New-PSTransportOption
.
Inny użytkownik może nawiązać połączenie z utworzonymi sesjami PSSessions, ale tylko wtedy, gdy może podać poświadczenia użyte do utworzenia sesji lub użyć RunAs
poświadczeń konfiguracji sesji.
Jak uzyskać usługi PSSessions
Począwszy od programu PowerShell 3.0, Get-PSSession
polecenie cmdlet pobiera psSessions na komputerze lokalnym i komputerach zdalnych. Może również pobrać sesje PSSessions, które zostały utworzone w bieżącej sesji.
Aby uzyskać psSessions na komputerze lokalnym lub komputerach zdalnych, użyj parametrów ComputerName lub ConnectionUri . Bez parametrów Get-PSSession
program pobiera sesję PSSession, która została utworzona w sesji lokalnej, niezależnie od tego, gdzie kończą działanie.
W poniższym przykładzie pokazano, jak używać polecenia Get-PSSession
.
New-PSSession
Tworzy sesję na komputerze Server01. Sesja znajduje się na komputerze Server01.
New-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session2 Server01 Opened Microsoft.PowerShell Available
Aby pobrać sesję z serwera Server01, użyj parametru ComputerName, aby określić element docelowy .Get-PSSession
Get-PSSession -ComputerName Server01
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session2 Server01 Opened Microsoft.PowerShell Available
Jeśli wartość parametru ComputerName parametru Get-PSSession
jest localhost, pobiera psSessions, Get-PSSession
które kończą się i są utrzymywane na komputerze lokalnym. Nie pobiera pssessions na komputerze Server01, nawet jeśli zostały uruchomione na komputerze lokalnym.
Get-PSSession -ComputerName localhost
Aby uzyskać sesje utworzone w bieżącej sesji, użyj Get-PSSession
polecenia cmdlet bez parametrów. W tym przykładzie Get-PSSession
program pobiera sesję PSSession utworzoną w bieżącej sesji i nawiązuje połączenie z komputerem Server01.
Get-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session2 Server01 Opened Microsoft.PowerShell Available
Jak rozłączyć sesje
Disconnect-PSSession
Użyj polecenia cmdlet , aby rozłączyć sesję. Aby zidentyfikować psSession, użyj parametru Sesja lub potoku obiektu PSSession z New-PSSession
poleceń cmdlet lub Get-PSSession
do Disconnect-PSSession
.
Następujące polecenie powoduje rozłączenie programu PSSession z komputerem Server01. Zwróć uwagę, że wartość właściwości State jest rozłączona, a wartość Availability (Dostępność) to None (Brak).
Get-PSSession -ComputerName Server01 | Disconnect-PSSession
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session2 Server01 Disconnected Microsoft.PowerShell None
Aby utworzyć sesję odłączoną, użyj parametru InDisconnectedSession polecenia Invoke-Command
cmdlet. Tworzy sesję, uruchamia polecenie i rozłącza się natychmiast, zanim polecenie może zwrócić dowolne dane wyjściowe.
Następujące polecenie uruchamia Get-WinEvent
polecenie w rozłączonej sesji na komputerze zdalnym Server02.
Invoke-Command -ComputerName Server02 -InDisconnectedSession -ScriptBlock {
Get-WinEvent -LogName "*PowerShell*" }
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
4 Session3 Server02 Disconnected Microsoft.PowerShell None
Jak nawiązać połączenie z rozłączonymi sesjami
Aby połączyć sesję rozłączoną, użyj Connect-PSSession
polecenia cmdlet z parametrami ComputerName lub ConnectionUri . Alternatywnie można przekazać dane wyjściowe Get-PSSession
polecenia do Connect-PSSession
.
Poniższy przykład pobiera sesje na komputerze Server02. Dane wyjściowe obejmują dwie rozłączone sesje.
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
Następujące polecenie łączy się z sesją 2. Usługa PSSession jest teraz otwarta i dostępna.
Connect-PSSession -ComputerName Server02 -Name Session2
Id Name ComputerName State ConfigurationName Availability
-- ---- ------------ ----- ----------------- ------------
2 Session2 juneb-srv8320 Opened Microsoft.PowerShell Available
Jak uzyskać wyniki
Aby uzyskać wyniki poleceń uruchomionych w rozłączonym programie PSSession, użyj Receive-PSSession
polecenia cmdlet .
Zamiast używać polecenia cmdlet , można użyć Receive-PSSession
polecenia Connect-PSSession
cmdlet . Jeśli sesja jest już ponownie połączona, Receive-PSSession
pobiera wyniki poleceń, które były uruchamiane po rozłączeniu sesji. Jeśli serwer PSSession jest nadal odłączony, nawiązuje z nim połączenie, Receive-PSSession
a następnie pobiera wyniki poleceń, które zostały uruchomione, gdy został odłączony.
Receive-PSSession
może zwrócić wyniki w zadaniu (asynchronicznie) lub do programu hosta (synchronicznie). Użyj parametru OutTarget , aby wybrać pozycję Zadanie lub Host. Wartość domyślna to Host. Jeśli jednak odebrane polecenie zostało uruchomione w bieżącej sesji jako zadanie, zostanie ono domyślnie zwrócone jako zadanie .
W poniższym przykładzie użyto Receive-PSSession
polecenia cmdlet , aby ponownie nawiązać połączenie z sesją na serwerze Server02 i uzyskać wyniki Get-WinEvent
polecenia . Parametr OutTarget służy do pobierania wyników w zadaniu.
Receive-PSSession -ComputerName Server02 -Name Session3 -OutTarget Job
Id Name PSJobTypeName State HasMoreData Location
-- ---- ------------- ----- ----------- --------
3 Job3 RemoteJob Running True Server02
Aby uzyskać wyniki zadania, użyj Receive-Job
polecenia cmdlet .
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
Właściwości stanu i dostępności
Właściwości State and Availability odłączonego programu PSSession informują o tym, czy sesja jest dostępna do ponownego nawiązania z nim połączenia.
Gdy sesja PSSession jest połączona z bieżącą sesją, jego stan jest otwarty , a jego dostępność jest dostępna. Po odłączeniu od programu PSSession stan PSSession jest odłączony , a jego dostępność to Brak.
Wartość właściwości State jest względna względem bieżącej sesji. Wartość Rozłączone oznacza, że sesja PSSession nie jest połączona z bieżącą sesją. Nie oznacza to jednak, że sesja PSSession jest odłączona od wszystkich sesji. Może być połączony z inną sesją.
Aby określić, czy można nawiązać połączenie, czy ponownie nawiązać połączenie z programem PSSession, użyj właściwości Availability . Wartość None wskazuje, że można nawiązać połączenie z sesją. Wartość Busy wskazuje, że nie można nawiązać połączenia z usługą PSSession, ponieważ jest ona połączona z inną sesją.
Poniższy przykład jest uruchamiany w dwóch sesjach programu PowerShell na tym samym komputerze. Zanotuj zmieniające się wartości właściwości Stan i Dostępność w każdej sesji, ponieważ sesja PSSession jest odłączona i ponownie połączona.
# 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
Rozłączone sesje są utrzymywane na komputerze zdalnym do momentu ich usunięcia, na przykład za pomocą polecenia cmdlet lub przekroczenia limitu Remove-PSSession
czasu. Właściwość IdleTimeout sesji PSSession określa, jak długo jest utrzymywana rozłączona sesja przed usunięciem.
Wartości limitu czasu bezczynności
PsSessions są bezczynne, gdy wątek pulsu nie otrzymuje odpowiedzi. Rozłączenie sesji sprawia, że jest w stanie bezczynności i uruchamia zegar IdleTimeout , nawet jeśli polecenia są nadal uruchomione w rozłączonej sesji. Program PowerShell uważa, że sesje rozłączone są aktywne, ale bezczynne.
Podczas tworzenia i rozłączania sesji sprawdź, czy limit czasu bezczynności w sesji PSSession jest wystarczająco długi, aby utrzymać sesję dla Twoich potrzeb, ale nie tak długo, aby zużywał niepotrzebne zasoby na komputerze zdalnym.
Właściwość IdleTimeoutMs konfiguracji sesji określa domyślny limit czasu bezczynności sesji korzystających z konfiguracji sesji. Można zastąpić wartość domyślną, ale ta wartość nie może przekroczyć właściwości MaxIdleTimeoutMs konfiguracji sesji.
Użyj następującego polecenia, aby uzyskać wartości idleTimeoutMs i MaxIdleTimeoutMs dla konfiguracji sesji.
Get-PSSessionConfiguration |
Format-Table Name, IdleTimeoutMs, MaxIdleTimeoutMs
Jeśli jesteś członkiem grupy Administratorzy na komputerze zdalnym, możesz ustawić te wartości podczas tworzenia konfiguracji sesji. Ponadto można zmienić wartości po rozłączeniu.
Wartość limitu czasu bezczynności konfiguracji sesji i opcji sesji jest wyrażona w milisekundach. Wartość limitu czasu bezczynności sesji i opcji konfiguracji sesji wynosi w sekundach.
Limit czasu bezczynności usługi PSSession można ustawić podczas tworzenia sesji PSSession (New-PSSession
, Invoke-Command
) i po rozłączeniu się z nim (Disconnect-PSSession
). Nie można jednak zmienić wartości IdleTimeout podczas nawiązywania połączenia z programem PSSession (Connect-PSSession
) lub uzyskania wyników (Receive-PSSession
).
Polecenia Connect-PSSession
cmdlet i Receive-PSSession
mają parametr SessionOption, który przyjmuje obiekt PSSessionOption, taki jak jeden zwrócony przez New-PSSessionOption
polecenie cmdlet.
Wartość IdleTimeout w obiekcie SessionOption i wartość IdleTimeout w zmiennej preferencji nie zmieniają wartości $PSSessionOption
w poleceniu Connect-PSSession
lubReceive-PSSession
.
Aby utworzyć psSession z określoną wartością limitu czasu bezczynności, utwórz zmienną $PSSessionOption
preferencji. Ustaw wartość właściwości IdleTimeout na żądaną wartość (w milisekundach).
Podczas tworzenia sesji wartości w $PSSessionOption
zmiennej mają pierwszeństwo przed wartościami w konfiguracji sesji.
Na przykład następujące polecenie ustawia limit czasu bezczynności 48 godzin:
$PSSessionOption = New-PSSessionOption -IdleTimeoutMSec 172800000
Aby utworzyć psSession z określoną wartością limitu czasu bezczynności, użyj parametru IdleTimeoutMSec polecenia New-PSSessionOption
cmdlet. Następnie użyj opcji sesji w wartości parametru poleceń cmdlet lub New-PSSession
.
Wartości ustawione podczas tworzenia sesji mają pierwszeństwo przed wartościami ustawionymi w zmiennej $PSSessionOption
preferencji i konfiguracją sesji.
Na przykład:
$o = New-PSSessionOption -IdleTimeoutMSec 172800000
New-PSSession -SessionOption $o
Aby zmienić limit czasu bezczynności sesji PSSession podczas rozłączania, użyj parametru IdleTimeoutSec polecenia Disconnect-PSSession
cmdlet.
Na przykład:
Disconnect-PSSession -IdleTimeoutSec 172800
Aby utworzyć konfigurację sesji z określonym limitem czasu bezczynności i maksymalnym limitem czasu bezczynności, użyj parametrów IdleTimeoutSec i MaxIdleTimeoutSec polecenia New-PSTransportOption
cmdlet. Następnie użyj opcji transportu w wartości parametru TransportOption wartości Register-PSSessionConfiguration
.
Na przykład:
$o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200
Register-PSSessionConfiguration -Name Test -TransportOption $o
Aby zmienić domyślny limit czasu bezczynności i maksymalny limit czasu bezczynności konfiguracji sesji, użyj parametrów IdleTimeoutSec i New-PSTransportOption
polecenia cmdlet. Następnie użyj opcji transportu w wartości parametru TransportOption wartości Set-PSSessionConfiguration
.
Na przykład:
$o = New-PSTransportOption -IdleTimeoutSec 172800 -MaxIdleTimeoutSec 259200
Set-PSSessionConfiguration -Name Test -TransportOption $o
Tryb buforowania danych wyjściowych
Tryb buforowania danych wyjściowych programu PSSession określa sposób zarządzania danymi wyjściowymi poleceń, gdy bufor wyjściowy pliku PSSession jest pełny.
W rozłączonej sesji tryb buforowania danych wyjściowych skutecznie określa, czy polecenie nadal działa, gdy sesja jest rozłączona.
Prawidłowe wartości są następujące:
-
Block
(wartość domyślna) — gdy bufor wyjściowy jest pełny, wykonywanie jest zawieszone do momentu, gdy bufor będzie jasny.Block
zachowuje dane, ale może przerwać polecenie. -
Drop
— Gdy bufor wyjściowy jest pełny, wykonywanie będzie kontynuowane. W miarę generowania nowych danych wyjściowych najstarsze dane wyjściowe są odrzucane. W przypadku użyciaDrop
wartości przekieruj dane wyjściowe do pliku. Ta wartość jest zalecana w przypadku rozłączonych sesji.
Właściwość OutputBufferingMode konfiguracji sesji określa domyślny tryb buforowania sesji korzystających z konfiguracji sesji.
Aby znaleźć wartość konfiguracji sesji w trybie OutputBufferingMode, możesz użyć jednego z następujących formatów poleceń:
(Get-PSSessionConfiguration <ConfigurationName>).OutputBufferingMode
Get-PSSessionConfiguration | Format-Table Name, OutputBufferingMode
Wartość domyślną można zastąpić w konfiguracji sesji i ustawić tryb buforowania danych wyjściowych programu PSSession podczas tworzenia sesji PSSession, podczas rozłączania i ponownego nawiązywania połączenia.
Jeśli jesteś członkiem grupy Administratorzy na komputerze zdalnym, możesz utworzyć i zmienić tryb buforowania danych wyjściowych konfiguracji sesji.
Aby utworzyć psSession z trybem buforowania danych wyjściowych Drop
, utwórz zmienną $PSSessionOption
preferencji, w której wartość właściwości OutputBufferingMode to Drop
.
Podczas tworzenia sesji wartości w $PSSessionOption
zmiennej mają pierwszeństwo przed wartościami w konfiguracji sesji.
Na przykład:
$PSSessionOption = New-PSSessionOption -OutputBufferingMode Drop
Użyj parametru polecenia cmdlet, aby utworzyć opcję sesji z wartością New-PSSessionOption
. Następnie użyj obiektu PSSessionOption jako wartości parametru SessionOption poleceń New-PSSession
cmdlet lub Invoke-Command
.
Wartości ustawione podczas tworzenia sesji mają pierwszeństwo przed wartościami ustawionymi w zmiennej $PSSessionOption
preferencji i konfiguracją sesji.
Na przykład:
$o = New-PSSessionOption -OutputBufferingMode Drop
New-PSSession -SessionOption $o
Aby zmienić tryb buforowania danych wyjściowych programu PSSession podczas rozłączania, użyj polecenia cmdlet.
Na przykład:
Disconnect-PSSession -OutputBufferingMode Drop
Aby zmienić tryb buforowania danych wyjściowych programu PSSession podczas ponownego nawiązywania połączenia, użyj polecenia cmdlet. Następnie użyj opcji sesji w wartości parametru SessionOption parametru Connect-PSSession
lub Receive-PSSession
.
Na przykład:
$o = New-PSSessionOption -OutputBufferingMode Drop
Connect-PSSession -ComputerName Server01 -Name Test -SessionOption $o
Aby utworzyć konfigurację sesji z domyślnym trybem buforowania danych wyjściowych polecenia , użyj parametru Drop
OutputBufferingModeNew-PSTransportOption
Następnie użyj opcji transportu w wartości parametru TransportOption wartości Register-PSSessionConfiguration
.
Na przykład:
$o = New-PSTransportOption -OutputBufferingMode Drop
Register-PSSessionConfiguration -Name Test -TransportOption $o
Aby zmienić domyślny tryb buforowania danych wyjściowych konfiguracji sesji, użyj polecenia cmdlet, aby utworzyć opcję transportu z wartością New-PSTransportOption
. Następnie użyj opcji Transport w wartości parametru SessionOption parametru Set-PSSessionConfiguration
.
Na przykład:
$o = New-PSTransportOption -OutputBufferingMode Drop
Set-PSSessionConfiguration -Name Test -TransportOption $o
Rozłączanie sesji sprzężenia zwrotnego
Sesje sprzężenia zwrotnego (sesje lokalne) to sesje PSSession, które pochodzą i zakończą się na tym samym komputerze. Podobnie jak w przypadku innych sesji PSSession, aktywne sesje sprzężenia zwrotnego są utrzymywane na komputerze na zdalnym końcu połączenia (komputera lokalnego), dzięki czemu można odłączyć się i ponownie nawiązać połączenie z sesjami sprzężenia zwrotnego.
Domyślnie sesje sprzężenia zwrotnego są tworzone przy użyciu tokenu zabezpieczeń sieci, który nie zezwala na uruchamianie poleceń w sesji w celu uzyskania dostępu do innych komputerów. Możesz ponownie nawiązać połączenie z sesjami sprzężenia zwrotnego, które mają token zabezpieczeń sieci z dowolnej sesji na komputerze lokalnym lub komputerze zdalnym.
Jeśli jednak używasz parametru polecenia cmdlet , New-PSSession
lubEnter-PSSession
, sesja sprzężenia zwrotnego zostanie utworzona przy użyciu interakcyjnego tokenu zabezpieczającego. Token interaktywny umożliwia wykonywanie poleceń uruchamianych w sesji sprzężenia zwrotnego w celu pobrania danych z innych komputerów.
Sesje sprzężenia zwrotnego można rozłączyć z tokenami interaktywnymi, a następnie ponownie nawiązać z nimi połączenie z tej samej sesji lub innej sesji na tym samym komputerze. Jednak aby zapobiec złośliwemu dostępowi, można ponownie nawiązać połączenie z sesjami sprzężenia zwrotnego z tokenami interaktywnymi tylko z komputera, na którym zostały utworzone.
Oczekiwanie na zadania w rozłączonych sesjach
Polecenie Wait-Job
cmdlet czeka na zakończenie zadania, a następnie powróci do wiersza polecenia lub następnego polecenia. Domyślnie zwraca wartość , jeśli sesja, Wait-Job
w której uruchomiono zadanie, jest rozłączone. Aby skierować Wait-Job
polecenie cmdlet do momentu ponownego nawiązania połączenia z sesją, w stanie Otwarte użyj parametru Force . Aby uzyskać więcej informacji, zobacz Wait-Job (Zadanie oczekiwania).
Niezawodne sesje i niezamierzone rozłączenie
Awaria sieciowa może zostać przypadkowo odłączona z powodu awarii komputera lub awarii sieci. Program PowerShell próbuje odzyskać pssession, ale jego powodzenie zależy od ważności i czasu trwania przyczyny.
Stan niezamierzonego rozłączenia pssession może być uszkodzony lub zamknięty, ale może być również odłączony. Jeśli wartość stan jest rozłączona, możesz użyć tych samych technik, aby zarządzać pssession, jak w przypadku, gdyby sesja została rozłączona celowo. Na przykład możesz użyć Connect-PSSession
polecenia cmdlet , aby ponownie nawiązać połączenie z sesją i Receive-PSSession
polecenie cmdlet, aby uzyskać wyniki poleceń uruchomionych podczas rozłączenia sesji.
Jeśli zamkniesz (zakończ) sesję, w której utworzono sesję PSSession podczas uruchamiania poleceń w programie PSSession, program PowerShell zachowuje stan PSSession w stanie Odłączony na komputerze zdalnym. Jeśli zamkniesz (zakończ) sesję, w której utworzono sesję PSSession, ale żadne polecenia nie są uruchomione w programie PSSession, program PowerShell nie próbuje zachować sesji PSSession.