Connect-PSSession

Ponownie łączy się z rozłączonych sesji.

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-Command InDisconnectedSession polecenia cmdlet, a te, które zostały rozłączone przypadkowo, takie jak tymczasowa awaria sieci.

Connect-PSSession program może nawiązać połączenie z dowolną odłączona sesją, która została uruchomiona przez tego samego użytkownika. Należą do nich te, które zostały uruchomione 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 . Ponadto nie można połączyć sesji z sesjami uruchomionymi przez innych użytkowników, chyba że można 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 programie 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 Openedi 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łączania, a następnie ponownego nawiązywania połączenia z sesją.

Pierwsze polecenie używa Get-PSSession polecenia cmdlet . Bez parametru ComputerName polecenie pobiera tylko sesje, które zostały utworzone w bieżącej sesji.

Dane wyjściowe pokazują, że polecenie pobiera sesję Backups na komputerze lokalnym. Stan sesji to Opened , a 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 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 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 do momentu jego ukończenia.

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 cmdlet, Invoke-Command aby uruchomić zadanie w tle w sesji w zmiennej $s . Używa parametru FilePath do uruchomienia skryptu w zadaniu w tle.

Trzecie polecenie używa Disconnect-PSSession polecenia cmdlet , aby odłączyć się od sesji w zmiennej $s . Polecenie używa parametru OutputBufferingMode z wartością Drop , aby zapobiec zablokowaniu skryptu przez konieczność dostarczania 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 komputer i wraca do domu na wieczór.

Później tego wieczoru administrator uruchamia swój komputer domowy, loguje się do sieci firmowej i uruchamia program PowerShell. Czwarte polecenie używa Get-PSSession polecenia cmdlet do pobrania 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 ukończone pomyślnie. Siódme polecenie używa Invoke-Command polecenia cmdlet do uruchomienia Receive-Job polecenia w sesji w zmiennej $s 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 $BackupSpecs zmiennej 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 umożliwia przekierowanie tego połączenia do alternatywnego identyfikatora URI.

Jeśli używasz parametru Połączenie ionURI, zdalna lokalizacja docelowa 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żesz również ograniczyć liczbę przekierowań połączenia, zmieniając wartość opcji maksymalna Połączenie ionRedirectionCount sesji. Użyj parametru New-PSSessionOption MaximumRedirection polecenia cmdlet lub ustaw właściwość Maximum Połączenie ionRedirectionCount zmiennej preferencji $PSSessionOption. Domyślna wartość 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 w przestrzeni Runspace.PołączenieWłaściwość ionInfo.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łączonej sesji. Dopuszczalne wartości tego parametru to:

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

Domyślna wartość to Default.

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

Uwaga

Uwierzytelnianie dostawcy obsługi zabezpieczeń poświadczeń (CredSSP), w którym poświadczenia użytkownika są przekazywane do komputera zdalnego do uwierzytelnienia, jest przeznaczone dla poleceń wymagających uwierzytelniania w więcej niż jednym zasobie, takich jak uzyskiwanie dostępu do zdalnego udziału sieciowego. Ten mechanizm zwiększa ryzyko bezpieczeństwa operacji zdalnej. W przypadku naruszenia zabezpieczeń komputera zdalnego poświadczenia przekazywane 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 certyfikat cyfrowego klucza publicznego (X509) konta użytkownika, które ma uprawnienia do nawiązywania połączenia z rozłączonej sesji. Wprowadź odcisk palca certyfikatu.

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

Aby uzyskać odcisk palca certyfikatu, użyj Get-Item polecenia 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 na końcu połączenia. Wartość domyślna to 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

Połączenie tylko do sesji korzystających 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 , aby określić 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 z portami standardów: 80 dla protokołu HTTP i 443 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 do innego identyfikatora 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 Id działa tylko wtedy, gdy odłączona sesja był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 psSession na komputerze lokalnym lub zdalnym.

Identyfikator wystąpienia jest przechowywany we właściwości InstanceID sesji PSSession.

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 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 ma zastosowanie do 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ótów, 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 została 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 dla sesji ustawionych 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ę połączeń współbieżnych, które można ustanowić w celu uruchomienia tego polecenia. Jeśli pominiesz ten parametr lub wprowadź wartość 0, zostanie użyta wartość domyślna , 32.

Limit ograniczania ma zastosowanie tylko do bieżącego polecenia, a nie do sesji ani do 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.

Usługa 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 zakoń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

Możesz przekazać sesję (PSSession) do tego polecenia cmdlet.

Dane wyjściowe

PSSession

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

Uwagi

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

  • Windows:

    • cnsn
  • To polecenie cmdlet jest dostępne tylko na platformach 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 programem Windows PowerShell 3.0 lub nowszym można odłączyć i ponownie nawiązać połączenie.

  • Jeśli używasz Connect-PSSession w 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 została utworzona sesja. To ograniczenie chroni komputer przed złośliwym dostępem.

  • Wartość właściwości State sesji PSSession jest względna dla bieżącej sesji. W związku z tym wartość Disconnected 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ż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ść Busy wskazuje, że nie można nawiązać połączenia z usługą PSSession , ponieważ jest ona 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 Enumeration (Wyliczenie RunspaceAvailability).

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

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

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