Udostępnij za pośrednictwem


Connect-PSSession

Ponownie łączy się z rozłączone sesje.

Składnia

Connect-PSSession
       -Name <String[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-Session] <PSSession[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       -ComputerName <String[]>
       [-ApplicationName <String>]
       [-ConfigurationName <String>]
       -InstanceId <Guid[]>
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-Port <Int32>]
       [-UseSSL]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       -ComputerName <String[]>
       [-ApplicationName <String>]
       [-ConfigurationName <String>]
       [-Name <String[]>]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-Port <Int32>]
       [-UseSSL]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ConfigurationName <String>]
       [-ConnectionUri] <Uri[]>
       [-AllowRedirection]
       -InstanceId <Guid[]>
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ConfigurationName <String>]
       [-ConnectionUri] <Uri[]>
       [-AllowRedirection]
       [-Name <String[]>]
       [-Credential <PSCredential>]
       [-Authentication <AuthenticationMechanism>]
       [-CertificateThumbprint <String>]
       [-SessionOption <PSSessionOption>]
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       -InstanceId <Guid[]>
       [-ThrottleLimit <Int32>]
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]
Connect-PSSession
       [-ThrottleLimit <Int32>]
       [-Id] <Int32[]>
       [-WhatIf]
       [-Confirm]
       [<CommonParameters>]

Opis

To polecenie cmdlet jest dostępne tylko na platformie Windows.

Polecenie Connect-PSSession cmdlet ponownie łączy się z sesjami programu PowerShell zarządzanymi przez użytkownika (PSSessions), które zostały rozłączone. Działa on w przypadku sesji, które są rozłączane celowo, na przykład za pomocą Disconnect-PSSession polecenia cmdlet lub parametru Invoke-CommandInDisconnectedSession polecenia cmdlet, a te, które zostały rozłączone przypadkowo, takie jak tymczasowa awaria sieci.

Connect-PSSession może nawiązać połączenie z dowolną rozłączną sesją, która została uruchomiona przez tego samego użytkownika. Należą do nich te, które zostały uruchomione przez lub odłączone od innych sesji na innych komputerach.

Connect-PSSession Nie można jednak nawiązać połączenia z przerwaną lub zamkniętą sesją albo sesjami interaktywnymi uruchomionymi przy użyciu Enter-PSSession polecenia cmdlet . Nie można również łączyć sesji z sesjami uruchomionymi przez innych użytkowników, chyba że możesz podać poświadczenia użytkownika, który utworzył sesję.

Aby uzyskać więcej informacji na temat funkcji Rozłączone sesje, zobacz about_Remote_Disconnected_Sessions.

To polecenie cmdlet zostało wprowadzone w Windows PowerShell 3.0.

Przykłady

Przykład 1. Ponowne nawiązywanie połączenia z sesją

Connect-PSSession -ComputerName Server01 -Name ITTask

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 4 ITTask          Server01        Opened        ITTasks                  Available

To polecenie ponownie łączy się z sesją ITTask na komputerze Server01.

Dane wyjściowe pokazują, że polecenie zakończyło się pomyślnie. Stan sesji to Opened , a wartość Dostępność to Available, co wskazuje, że można uruchamiać polecenia w sesji.

Przykład 2. Efekt rozłączania i ponownego nawiązywania połączenia

Get-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Opened        Microsoft.PowerShell     Available

Get-PSSession | Disconnect-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Disconnected  Microsoft.PowerShell          None

Get-PSSession | Connect-PSSession

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 Backups         Localhost       Opened        Microsoft.PowerShell     Available

W tym przykładzie pokazano efekt rozłączenia, a następnie ponowne nawiązywanie połączenia z sesją.

Pierwsze polecenie używa Get-PSSession polecenia cmdlet . Bez parametru ComputerName polecenie pobiera tylko sesje utworzone w bieżącej sesji.

Dane wyjściowe pokazują, że polecenie pobiera sesję Backups na komputerze lokalnym. Stan sesji to Opened , a wartość Dostępność to Available.

Drugie polecenie używa Get-PSSession polecenia cmdlet do pobrania obiektów PSSession utworzonych w bieżącej sesji i Disconnect-PSSession polecenia cmdlet w celu rozłączenia sesji. Dane wyjściowe pokazują, że sesja Backups została rozłączona. Stan sesji to Disconnected , a wartość Dostępność to None.

Trzecie polecenie używa Get-PSSession polecenia cmdlet do pobrania obiektów PSSession utworzonych w bieżącej sesji i Connect-PSSession polecenia cmdlet w celu ponownego połączenia sesji. Dane wyjściowe pokazują, że sesja Backups została ponownie połączona. Stan sesji to Opened , a wartość Dostępność to Available.

Jeśli używasz Connect-PSSession polecenia cmdlet w sesji, która nie jest rozłączona, polecenie nie ma wpływu na sesję i nie generuje żadnych błędów.

Przykład 3. Seria poleceń w scenariuszu przedsiębiorstwa

W tej serii poleceń pokazano, jak Connect-PSSession polecenie cmdlet może być używane w scenariuszu przedsiębiorstwa. W takim przypadku administrator systemu uruchamia długotrwałe zadanie w sesji na komputerze zdalnym. Po uruchomieniu zadania administrator rozłącza się z sesją i wraca do domu. Później tego wieczoru administrator loguje się do komputera macierzystego i sprawdza, czy zadanie zostało uruchomione, dopóki nie zostanie ukończone.

Administrator rozpoczyna się od utworzenia sesji na komputerze zdalnym i uruchomienia skryptu w sesji. Pierwsze polecenie używa New-PSSession polecenia cmdlet do utworzenia ITTask sesji na komputerze zdalnym Server01. Polecenie używa parametru ConfigurationName do określenia ITTasks konfiguracji sesji. Polecenie zapisuje sesje w zmiennej $s .

Drugie polecenie Invoke-Command cmdlet, aby uruchomić zadanie w tle w sesji w zmiennej $s . Używa parametru FilePath do uruchamiania skryptu w zadaniu w tle.

Trzecie polecenie używa Disconnect-PSSession polecenia cmdlet do odłączenia od sesji w zmiennej $s . Polecenie używa parametru OutputBufferingMode z wartością , Drop aby uniemożliwić zablokowanie skryptu przez dostarczenie danych wyjściowych do sesji. Używa parametru IdleTimeoutSec , aby przedłużyć limit czasu sesji do 15 godzin. Po zakończeniu polecenia administrator blokuje swój komputer i wraca do domu na wieczór.

Później tego wieczoru administrator uruchamia komputer główny, loguje się do sieci firmowej i uruchamia program PowerShell. Czwarte polecenie używa Get-PSSession polecenia cmdlet do pobierania sesji na komputerze Server01. Polecenie znajduje sesję ITTask . Piąte polecenie używa Connect-PSSession polecenia cmdlet do nawiązania połączenia z sesją ITTask . Polecenie zapisuje sesję w zmiennej $s .

Szóste polecenie używa Invoke-Command polecenia cmdlet do uruchomienia Get-Job polecenia w sesji w zmiennej $s . Dane wyjściowe pokazują, że zadanie zostało zakończone pomyślnie. Siódme polecenie używa Invoke-Command polecenia cmdlet do uruchomienia Receive-Job polecenia w sesji w $s zmiennej w sesji. Polecenie zapisuje wyniki w zmiennej $BackupSpecs . Ósme polecenie używa Invoke-Command polecenia cmdlet do uruchamiania innego skryptu w sesji. Polecenie używa wartości zmiennej $BackupSpecs w sesji jako danych wejściowych skryptu.

$s = New-PSSession -ComputerName Server01 -Name ITTask -ConfigurationName ITTasks
Invoke-Command -Session $s -ScriptBlock {Start-Job -FilePath \\Server30\Scripts\Backup-SQLDatabase.ps1}

Id     Name            State         HasMoreData     Location             Command
--     ----            -----         -----------     --------             -------
2      Job2            Running       True            Server01             \\Server30\Scripts\Backup...

Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 60*60*15

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None

Get-PSSession -ComputerName Server01 -Name ITTask

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None

$s = Connect-PSSession -ComputerName Server01 -Name ITTask

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Opened        ITTasks               Available

Invoke-Command -Session $s -ScriptBlock {Get-Job}

Id     Name            State         HasMoreData     Location             Command
--     ----            -----         -----------     --------             -------
2      Job2            Completed     True            Server01             \\Server30\Scripts\Backup...

Invoke-Command -Session $s -ScriptBlock {$BackupSpecs = Receive-Job -JobName Job2}
Invoke-Command -Session $s -ScriptBlock {\\Server30\Scripts\New-SQLDatabase.ps1 -InitData $BackupSpecs.Initialization}
Disconnect-PSSession -Session $s -OutputBufferingMode Drop -IdleTimeoutSec 60*60*15

Id Name            ComputerName    State         ConfigurationName     Availability
-- ----            ------------    -----         -----------------     ------------
 1 ITTask          Server01        Disconnected  ITTasks               None

Dziewiąte polecenie rozłącza się z sesją w zmiennej $s . Administrator zamyka program PowerShell i zamyka komputer. Następnego dnia może ponownie nawiązać połączenie z sesją i sprawdzić stan skryptu z komputera służbowego.

Parametry

-AllowRedirection

Wskazuje, że to polecenie cmdlet zezwala na przekierowywanie tego połączenia do alternatywnego identyfikatora URI.

Jeśli używasz parametru ConnectionURI , lokalizacja docelowa zdalna może zwrócić instrukcję, aby przekierować do innego identyfikatora URI. Domyślnie program PowerShell nie przekierowuje połączeń, ale można użyć tego parametru, aby umożliwić mu przekierowanie połączenia.

Można również ograniczyć liczbę przekierowań połączenia, zmieniając wartość opcji sesji MaximumConnectionRedirectionCount . Użyj parametru New-PSSessionOptionMaximumRedirection polecenia cmdlet lub ustaw właściwość MaximumConnectionRedirectionCount zmiennej preferencji $PSSessionOption. Wartość domyślna to 5.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ApplicationName

Określa nazwę aplikacji. To polecenie cmdlet łączy się tylko z sesjami korzystającymi z określonej aplikacji.

Wprowadź segment nazwy aplikacji identyfikatora URI połączenia. Na przykład w następującym identyfikatorze URI połączenia nazwa aplikacji to WSMan: http://localhost:5985/WSMAN. Nazwa aplikacji sesji jest przechowywana we właściwości Runspace.ConnectionInfo.AppName sesji.

Wartość tego parametru służy do wybierania i filtrowania sesji. Nie zmienia aplikacji używanej przez sesję.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Authentication

Określa mechanizm używany do uwierzytelniania poświadczeń użytkownika w poleceniu w celu ponownego nawiązania połączenia z rozłączną sesją. Dopuszczalne wartości dla tego parametru to:

  • Default
  • Basic
  • Credssp
  • Digest
  • Kerberos
  • Negotiate
  • NegotiateWithImplicitCredential

Wartość domyślna to Default.

Aby uzyskać więcej informacji na temat wartości tego parametru, zobacz AuthenticationMechanism Enumeration (Wyliczenie AuthenticationMechanism).

Przestroga

Uwierzytelnianie dostawcy obsługi zabezpieczeń poświadczeń (CredSSP), w którym poświadczenia użytkownika są przekazywane do komputera zdalnego do uwierzytelnienia, jest przeznaczone do poleceń wymagających uwierzytelniania w więcej niż jednym zasobie, na przykład uzyskiwania dostępu do udziału sieci zdalnej. Ten mechanizm zwiększa ryzyko bezpieczeństwa operacji zdalnej. Jeśli bezpieczeństwo komputera zdalnego zostanie naruszone, poświadczenia przekazane do niego mogą służyć do kontrolowania sesji sieciowej.

Type:AuthenticationMechanism
Accepted values:Default, Basic, Negotiate, NegotiateWithImplicitCredential, Credssp, Digest, Kerberos
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CertificateThumbprint

Określa cyfrowy certyfikat klucza publicznego (X509) konta użytkownika z uprawnieniami do nawiązywania połączenia z rozłączną sesją. Wprowadź odcisk palca certyfikatu certyfikatu.

Certyfikaty są używane w uwierzytelnianiu opartym na certyfikatach klienta. Mogą być mapowane tylko na konta użytkowników lokalnych. Nie działają z kontami domeny.

Aby uzyskać odcisk palca certyfikatu, użyj polecenia Get-Item lub Get-ChildItem na dysku programu PowerShell Cert: .

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Określa komputery, na których są przechowywane rozłączone sesje. Sesje są przechowywane na komputerze, który znajduje się po stronie serwera lub odbiera koniec połączenia. Wartością domyślną jest komputer lokalny.

Wpisz nazwę NetBIOS, adres IP lub w pełni kwalifikowaną nazwę domeny jednego komputera. Symbole wieloznaczne nie są dozwolone. Aby określić komputer lokalny, wpisz nazwę komputera, localhostlub kropkę (.)

Type:String[]
Aliases:Cn
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-ConfigurationName

Łączy się tylko z sesjami korzystającymi z określonej konfiguracji sesji.

Wprowadź nazwę konfiguracji lub w pełni kwalifikowany identyfikator URI zasobu dla konfiguracji sesji. Jeśli określisz tylko nazwę konfiguracji, następujący identyfikator URI schematu jest wstępnie utworzony: http://schemas.microsoft.com/powershell. Nazwa konfiguracji sesji jest przechowywana we właściwości ConfigurationName sesji.

Wartość tego parametru służy do wybierania i filtrowania sesji. Nie zmienia konfiguracji sesji używanej przez sesję.

Aby uzyskać więcej informacji na temat konfiguracji sesji, zobacz Informacje o konfiguracjach sesji.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

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

-ConnectionUri

Określa identyfikatory URI punktów końcowych połączenia dla rozłączonych sesji.

Identyfikator URI musi być w pełni kwalifikowany. Format tego ciągu jest następujący:

<Transport>://<ComputerName>:<Port>/<ApplicationName>

Wartość domyślna jest następująca:

http://localhost:5985/WSMAN

Jeśli nie określisz identyfikatora URI połączenia, możesz użyć parametrów UseSSL i Port w celu określenia wartości identyfikatora URI połączenia.

Prawidłowe wartości segmentu Transport identyfikatora URI to HTTP i HTTPS. Jeśli określisz identyfikator URI połączenia z segmentem Transport, ale nie określisz portu, sesja zostanie utworzona przy użyciu portów standardów: 80 dla protokołu HTTP i 443 protokołu HTTPS. Aby użyć domyślnych portów komunikacji zdalnej programu PowerShell, określ port 5985 protokołu HTTP lub 5986 HTTPS.

Jeśli komputer docelowy przekierowuje połączenie z innym identyfikatorem URI, program PowerShell uniemożliwia przekierowanie, chyba że użyjesz parametru AllowRedirection w poleceniu .

Type:Uri[]
Aliases:URI, CU
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Credential

Określa konto użytkownika, które ma uprawnienia do nawiązywania połączenia z rozłączonej sesji. Wartość domyślna to użytkownik bieżący.

Wpisz nazwę użytkownika, taką jak User01 lub Domain01\User01, lub wprowadź obiekt PSCredential wygenerowany przez Get-Credential polecenie cmdlet. Jeśli wpiszesz nazwę użytkownika, zostanie wyświetlony monit o wprowadzenie hasła.

Poświadczenia są przechowywane w obiekcie PSCredential , a hasło jest przechowywane jako secureString.

Uwaga

Aby uzyskać więcej informacji na temat ochrony danych secureString , zobacz Jak bezpieczny jest protokół SecureString?.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Określa identyfikatory rozłączonych sesji. Parametr Identyfikator działa tylko wtedy, gdy sesja rozłączona została wcześniej połączona z bieżącą sesją.

Ten parametr jest prawidłowy, ale nie skuteczny, gdy sesja jest przechowywana na komputerze lokalnym, ale nie została połączona z bieżącą sesją.

Type:Int32[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-InstanceId

Określa identyfikatory wystąpień rozłączonych sesji.

Identyfikator wystąpienia to identyfikator GUID, który jednoznacznie identyfikuje usługę PSSession na komputerze lokalnym lub zdalnym.

Identyfikator wystąpienia jest przechowywany we właściwości InstanceIDpsSession.

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

-Name

Określa przyjazne nazwy rozłączonych sesji.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Port

Określa port sieciowy na komputerze zdalnym używanym do ponownego nawiązywania połączenia z sesją. Aby nawiązać połączenie z komputerem zdalnym, komputer zdalny musi nasłuchiwać na porcie używanym przez połączenie. Domyślne porty to 5985, czyli port usługi WinRM dla protokołu HTTP i 5986, który jest portem Usługi WinRM dla protokołu HTTPS.

Przed użyciem portu alternatywnego należy skonfigurować odbiornik Usługi WinRM na komputerze zdalnym do nasłuchiwania na tym porcie. Aby skonfigurować odbiornik, wpisz następujące dwa polecenia w wierszu polecenia programu PowerShell:

Remove-Item -Path WSMan:\Localhost\listener\listener* -Recurse

New-Item -Path WSMan:\Localhost\listener -Transport http -Address * -Port \<port-number\>

Nie używaj parametru Port , chyba że musisz. Port ustawiony w poleceniu dotyczy wszystkich komputerów lub sesji, na których jest uruchamiane polecenie. Ustawienie alternatywnego portu może uniemożliwić uruchomienie polecenia na wszystkich komputerach.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Session

Określa rozłączone sesje. Wprowadź zmienną zawierającą obiekty PSSession lub polecenie, które tworzy lub pobiera obiekty PSSession , takie jak Get-PSSession polecenie.

Type:PSSession[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-SessionOption

Określa opcje zaawansowane dla sesji. Wprowadź obiekt SessionOption , taki jak obiekt utworzony za pomocą New-PSSessionOption polecenia cmdlet lub tabela skrótu, w której klucze są nazwami opcji sesji, a wartości to wartości opcji sesji.

Wartości domyślne opcji są określane przez wartość zmiennej $PSSessionOption preferencji, jeśli jest ustawiona. W przeciwnym razie wartości domyślne są ustanawiane przez opcje ustawione w konfiguracji sesji.

Wartości opcji sesji mają pierwszeństwo przed wartościami domyślnymi sesji ustawionymi w zmiennej $PSSessionOption preferencji i w konfiguracji sesji. Nie mają jednak pierwszeństwa przed maksymalnymi wartościami, limitami przydziału lub limitami ustawionymi w konfiguracji sesji.

Aby uzyskać opis opcji sesji, które zawierają wartości domyślne, zobacz New-PSSessionOption. Aby uzyskać informacje o zmiennej preferencji $PSSessionOption , zobacz about_Preference_Variables. Aby uzyskać więcej informacji na temat konfiguracji sesji, zobacz Informacje o konfiguracjach sesji.

Type:PSSessionOption
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ThrottleLimit

Określa maksymalną liczbę współbieżnych połączeń, które można ustanowić, aby uruchomić to polecenie. Jeśli pominiesz ten parametr lub wprowadź wartość 0, zostanie użyta wartość domyślna , 32.

Limit ograniczania dotyczy tylko bieżącego polecenia, a nie sesji lub komputera.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UseSSL

Wskazuje, że to polecenie cmdlet używa protokołu Secure Sockets Layer (SSL) do nawiązania połączenia z rozłączną sesją. Domyślnie nie jest używane szyfrowanie SSL.

WS-Management szyfruje całą zawartość programu PowerShell przesyłaną przez sieć. Parametr UseSSL to dodatkowa ochrona, która wysyła dane za pośrednictwem połączenia HTTPS zamiast połączenia HTTP.

Jeśli używasz tego parametru, ale protokół SSL nie jest dostępny na porcie używanym dla polecenia, polecenie kończy się niepowodzeniem.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

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

Dane wejściowe

PSSession

Do tego polecenia cmdlet można przekazać sesję (PSSession).

Dane wyjściowe

PSSession

To polecenie cmdlet zwraca obiekt reprezentujący sesję, do której ponownie nawiązano połączenie.

Uwagi

Program PowerShell zawiera następujące aliasy dla Connect-PSSessionprogramu :

  • W systemie Windows:

    • cnsn
  • To polecenie cmdlet jest dostępne tylko na platformach systemu Windows.

  • Connect-PSSession Ponownie łączy się tylko z sesjami, które są rozłączone, czyli sesje, które mają wartość Rozłączone dla właściwości State . Tylko sesje połączone z komputerami z systemem Windows PowerShell 3.0 lub nowszym można rozłączyć i ponownie nawiązać połączenie.

  • Jeśli używasz Connect-PSSession sesji, która nie jest rozłączona, polecenie nie ma wpływu na sesję i nie generuje błędów.

  • Rozłączone sesje sprzężenia zwrotnego z tokenami interaktywnymi, które są tworzone przy użyciu parametru EnableNetworkAccess , można ponownie połączyć tylko z komputera, na którym utworzono sesję. To ograniczenie chroni komputer przed złośliwym dostępem.

  • Wartość właściwości State elementu PSSession jest względna względem bieżącej sesji. W związku z tym wartość Rozłączone oznacza, że usługa 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żesz nawiązać połączenie z sesją, czy ponownie nawiązać połączenie, użyj właściwości Availability .

    Wartość Availability (Brak) wskazuje, że można nawiązać połączenie z sesją. Wartość Zajęta wskazuje, że nie można nawiązać połączenia z usługą PSSession , ponieważ jest połączona z inną sesją.

    Aby uzyskać więcej informacji na temat wartości właściwości State sesji, zobacz RunspaceState, wyliczenie.

    Aby uzyskać więcej informacji na temat wartości właściwości Availability sesji, zobacz RunspaceAvailability, wyliczenie.

  • Podczas nawiązywania połączenia z usługą PSSession nie można zmienić wartości limitu czasu bezczynności. Parametr SessionOption parametru Connect-PSSession przyjmuje obiekt SessionOption , który ma wartość IdleTimeout . Jednak wartość IdleTimeout obiektu SessionOption i wartość IdleTimeout zmiennej $PSSessionOption są ignorowane podczas nawiązywania połączenia z usługą PSSession.

    Możesz ustawić i zmienić limit czasu bezczynności podczas tworzenia programu PSSession przy użyciu New-PSSession poleceń cmdlet lub Invoke-Command i po rozłączeniu z usługą PSSession.

    Właściwość IdleTimeout programu PSSession ma kluczowe znaczenie dla rozłączonych sesji, ponieważ określa, jak długo sesja rozłączona jest utrzymywana na komputerze zdalnym. Sesje rozłączone są uważane za bezczynne od momentu ich rozłączenia, nawet jeśli polecenia są uruchomione w sesji rozłączone.