Connect-PSSession

Znovu se připojí k odpojeným relacím.

Syntax

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>]

Description

Tato rutina je dostupná jenom na platformě Windows.

Rutina Connect-PSSession se znovu připojí k relacím PowerShellu spravovaným uživatelem (PSSessions), které byly odpojeny. Funguje na relacích, které jsou záměrně odpojené, například pomocí Disconnect-PSSession rutiny nebo parametru Invoke-Command InDisconnectedSession rutiny a těch, které byly neúmyslně odpojeny, například dočasným výpadkem sítě.

Connect-PSSession se může připojit k jakékoli odpojené relaci, kterou spustil stejný uživatel. Patří sem ty, které byly spuštěny nebo odpojeny od jiných relací v jiných počítačích.

Connect-PSSession Nelze se ale připojit k přerušeným nebo uzavřeným relacím nebo interaktivním relacím, které se spustily pomocí rutinyEnter-PSSession. Relace spuštěné jinými uživateli se také nedají připojit k relacím, pokud nemůžete zadat přihlašovací údaje uživatele, který relaci vytvořil.

Další informace o funkci Odpojené relace najdete v tématu about_Remote_Disconnected_Sessions.

Tato rutina byla zavedena ve Windows PowerShellu 3.0.

Příklady

Příklad 1: Opětovné připojení k relaci

Connect-PSSession -ComputerName Server01 -Name ITTask

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

Tento příkaz se znovu připojí k ITTask relaci na počítači Serveru01.

Výstup ukazuje, že příkaz byl úspěšný. Stav relace je a dostupnost je OpenedAvailable, což značí, že v relaci můžete spouštět příkazy.

Příklad 2: Účinek odpojení a opětovného připojení

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

Tento příklad ukazuje účinek odpojení a opětovného připojení k relaci.

První příkaz používá rutinu Get-PSSession . Bez parametru ComputerName získá příkaz pouze relace vytvořené v aktuální relaci.

Výstup ukazuje, že příkaz získá Backups relaci na místním počítači. Stav relace je Opened a dostupnost je Available.

Druhý příkaz pomocí rutiny Get-PSSession získá objekty PSSession , které byly vytvořeny v aktuální relaci, a rutina Disconnect-PSSession k odpojení relací. Výstup ukazuje, že Backups relace byla odpojena. Stav relace je Disconnected a dostupnost je None.

Třetí příkaz používá rutinu Get-PSSession k získání objektů PSSession vytvořených v aktuální relaci a rutiny Connect-PSSession k opětovnému připojení relací. Výstup ukazuje, že Backups se relace znovu připojila. Stav relace je Opened a dostupnost je Available.

Pokud použijete rutinu Connect-PSSession v relaci, která není odpojená, příkaz neovlivní relaci a nevygeneruje žádné chyby.

Příklad 3: Řada příkazů v podnikovém scénáři

Tato série příkazů ukazuje, jak se rutina Connect-PSSession může používat v podnikovém scénáři. V takovém případě správce systému spustí dlouho běžící úlohu v relaci na vzdáleném počítači. Po spuštění úlohy se správce odpojí od relace a přejde domů. Později se správce přihlásí ke svému domovskému počítači a ověří, že úloha běžela, dokud se nedokončí.

Správce začne vytvořením relací na vzdáleném počítači a spuštěním skriptu v relaci. První příkaz pomocí rutiny New-PSSession vytvoří ITTask relaci na vzdáleném počítači Serveru01. Příkaz k zadání ITTasks konfigurace relace používá parametr ConfigurationName. Příkaz uloží relace do $s proměnné.

Druhá rutina příkazu Invoke-Command , která spustí úlohu na pozadí v relaci v $s proměnné. Používá parametr FilePath ke spuštění skriptu v úloze na pozadí.

Třetí příkaz používá rutinu Disconnect-PSSession k odpojení od relace v $s proměnné. Příkaz používá parametr OutputBufferingMode s hodnotou, která Drop brání zablokování skriptu tím, že musí do relace doručovat výstup. Používá parametr IdleTimeoutSec k prodloužení časového limitu relace na 15 hodin. Po dokončení příkazu správce uzamkne svůj počítač a večer přejde domů.

Později večer správce spustí svůj domácí počítač, přihlásí se k podnikové síti a spustí PowerShell. Čtvrtý příkaz používá rutinu Get-PSSession k získání relací na počítači Server01. Příkaz najde ITTask relaci. Pátý příkaz používá rutinu Connect-PSSession pro připojení k ITTask relaci. Příkaz uloží relaci do $s proměnné.

Šestý příkaz používá rutinu Invoke-CommandGet-Job ke spuštění příkazu v relaci v $s proměnné. Výstup ukazuje, že úloha byla úspěšně dokončena. Sedmý příkaz používá rutinu Invoke-CommandReceive-Job ke spuštění příkazu v relaci v $s proměnné v relaci. Příkaz uloží výsledky do $BackupSpecs proměnné. Osmý příkaz používá rutinu Invoke-Command ke spuštění dalšího skriptu v relaci. Příkaz používá hodnotu $BackupSpecs proměnné v relaci jako vstup do skriptu.

$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

Devátý příkaz se odpojí od relace v $s proměnné. Správce zavře PowerShell a počítač zavře. Může se k relaci připojit znovu následující den a zkontrolovat stav skriptu ze svého pracovního počítače.

Parametry

-AllowRedirection

Označuje, že tato rutina umožňuje přesměrování tohoto připojení na alternativní identifikátor URI.

Pokud použijete parametr Připojení ionURI, vzdálený cíl může vrátit instrukce pro přesměrování na jiný identifikátor URI. PowerShell ve výchozím nastavení nesměruje připojení, ale pomocí tohoto parametru ho můžete přesměrovat.

Počet přesměrování připojení můžete také omezit změnou hodnoty parametru relace Maximum Připojení ionRedirectionCount. Použijte parametr New-PSSessionOption MaximumRedirection rutiny nebo nastavte Vlastnost Maximum Připojení ionRedirectionCount proměnné předvolby $PSSessionOption. Výchozí hodnota je 5.

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

-ApplicationName

Určuje název aplikace. Tato rutina se připojí pouze k relacím, které používají zadanou aplikaci.

Zadejte segment názvu aplikace identifikátoru URI připojení. Například v následujícím identifikátoru URI připojení je název aplikace WSMan: http://localhost:5985/WSMAN. Název aplikace relace je uložen v runspace.Připojení ionInfo.AppName vlastnost relace.

Hodnota tohoto parametru slouží k výběru a filtrování relací. Nemění aplikaci, kterou relace používá.

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

-Authentication

Určuje mechanismus, který se používá k ověření přihlašovacích údajů uživatele v příkazu, aby se znovu připojil k odpojené relaci. Tento parametr přijímá tyto hodnoty:

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

Výchozí hodnota je Default.

Další informace o hodnotách tohoto parametru naleznete v tématu AuthenticationMechanism – výčet.

Upozornění

Ověřování zprostředkovatele podpory zabezpečení přihlašovacích údajů (CredSSP), ve kterém jsou přihlašovací údaje uživatele předány vzdálenému počítači, který se má ověřit, je určený pro příkazy, které vyžadují ověření u více než jednoho prostředku, například pro přístup ke vzdálené síťové sdílené složce. Tento mechanismus zvyšuje riziko zabezpečení vzdálené operace. Pokud dojde k ohrožení zabezpečení vzdáleného počítače, dají se k řízení síťové relace použít přihlašovací údaje, které jsou mu předány.

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

Určuje certifikát digitálního veřejného klíče (X509) uživatelského účtu, který má oprávnění k připojení k odpojené relaci. Zadejte kryptografický otisk certifikátu.

Certifikáty se používají při ověřování na základě klientských certifikátů. Je možné je mapovat pouze na místní uživatelské účty. Nefungují s doménovými účty.

Pokud chcete získat kryptografický otisk certifikátu, použijte v jednotce PowerShellu Cert: příkaz nebo Get-ChildItem hoGet-Item.

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

-ComputerName

Určuje počítače, na kterých jsou uloženy odpojené relace. Relace se ukládají na počítači, který je na straně serveru nebo na konci připojení. Ve výchozím nastavení je to místní počítač.

Zadejte název NetBIOS, IP adresu nebo plně kvalifikovaný název domény jednoho počítače. Zástupné znaky nejsou povoleny. Pokud chcete zadat místní počítač, zadejte název localhostpočítače nebo tečku (.).

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

-ConfigurationName

Připojení pouze na relace, které používají zadanou konfiguraci relace.

Zadejte název konfigurace nebo plně kvalifikovaný identifikátor URI prostředku pro konfiguraci relace. Pokud zadáte pouze název konfigurace, před tomuto identifikátoru URI schématu: http://schemas.microsoft.com/powershell Název konfigurace relace je uložen ve vlastnosti ConfigurationName relace.

Hodnota tohoto parametru slouží k výběru a filtrování relací. Nezmění konfiguraci relace, kterou relace používá.

Další informace o konfiguracích relace najdete v tématu about_Session_Configurations.

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

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení.

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

-ConnectionUri

Určuje identifikátory URI koncových bodů připojení pro odpojené relace.

Identifikátor URI musí být plně kvalifikovaný. Formát tohoto řetězce je následující:

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

Výchozí hodnota je následující:

http://localhost:5985/WSMAN

Pokud nezadáte identifikátor URI připojení, můžete k zadání hodnot identifikátoru URI připojení použít parametry UseSSL a Port .

Platné hodnoty pro segment přenosu identifikátoru URI jsou HTTP a HTTPS. Pokud zadáte identifikátor URI připojení s přenosovým segmentem, ale nezadáte port, relace se vytvoří s porty standardů: 80 pro HTTP a 443 HTTPS. Pokud chcete použít výchozí porty pro vzdálené komunikace PowerShellu, zadejte port 5985 pro HTTP nebo 5986 HTTPS.

Pokud cílový počítač přesměruje připojení na jiný identifikátor URI, PowerShell zabrání přesměrování, pokud v příkazu nepoužijete parametr AllowRedirection .

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

-Credential

Určuje uživatelský účet, který má oprávnění k připojení k odpojené relaci. Ve výchozím nastavení je to aktuální uživatel.

Zadejte uživatelské jméno, například User01 nebo nebo zadejte objekt PSCredential vygenerovaný rutinou Get-CredentialDomain01\User01. Pokud zadáte uživatelské jméno, zobrazí se výzva k zadání hesla.

Přihlašovací údaje jsou uloženy v objektu PSCredential a heslo je uloženo jako SecureString.

Poznámka:

Další informace o ochraně dat SecureString naleznete v tématu Jak zabezpečený je SecureString?.

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

-Id

Určuje ID odpojených relací. Parametr ID funguje pouze v případech, kdy byla odpojená relace dříve připojena k aktuální relaci.

Tento parametr je platný, ale není efektivní, pokud je relace uložena v místním počítači, ale nebyla připojena k aktuální relaci.

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

-InstanceId

Určuje ID instancí odpojených relací.

ID instance je identifikátor GUID, který jednoznačně identifikuje psSession na místním nebo vzdáleném počítači.

ID instance je uloženo ve vlastnosti InstanceID PSSession.

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

-Name

Určuje popisné názvy odpojených relací.

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

-Port

Určuje síťový port na vzdáleném počítači, který se používá k opětovnému připojení k relaci. Pokud se chcete připojit ke vzdálenému počítači, musí vzdálený počítač naslouchat na portu, který připojení používá. Výchozí porty jsou 5985, což je port WinRM pro HTTP a 5986což je port WinRM pro HTTPS.

Před použitím alternativního portu musíte nakonfigurovat naslouchací proces WinRM na vzdáleném počítači tak, aby naslouchal na tomto portu. Pokud chcete nakonfigurovat naslouchací proces, na příkazovém řádku PowerShellu zadejte následující dva příkazy:

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

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

Parametr Port nepoužívejte, pokud ho nepotřebujete. Port nastavený v příkazu se vztahuje na všechny počítače nebo relace, na kterých se příkaz spouští. Alternativní nastavení portu může zabránit spuštění příkazu na všech počítačích.

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

-Session

Určuje odpojené relace. Zadejte proměnnou obsahující objekty PSSession nebo příkaz, který vytvoří nebo získá objekty PSSession, například Get-PSSession příkaz.

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

-SessionOption

Určuje upřesňující možnosti relace. Zadejte objekt SessionOption, například objekt, který vytvoříte pomocí New-PSSessionOption rutiny, nebo tabulku hash, ve které jsou klíče názvy možností relace a hodnoty jsou hodnoty možností relace.

Výchozí hodnoty pro možnosti jsou určeny hodnotou $PSSessionOption proměnné předvoleb, pokud je nastavena. V opačném případě se výchozí hodnoty vytvoří pomocí možností nastavených v konfiguraci relace.

Hodnoty možností relace mají přednost před výchozími hodnotami pro relace nastavené v $PSSessionOption proměnné předvoleb a v konfiguraci relace. Nemají však přednost před maximálními hodnotami, kvótami nebo limity nastavenými v konfiguraci relace.

Popis možností relace, které obsahují výchozí hodnoty, naleznete v tématu New-PSSessionOption. Informace o proměnné předvoleb $PSSessionOption najdete v tématu about_Preference_Variables. Další informace o konfiguracích relace najdete v tématu about_Session_Configurations.

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

-ThrottleLimit

Určuje maximální počet souběžných připojení, která lze navázat pro spuštění tohoto příkazu. Pokud tento parametr vynecháte nebo zadáte hodnotu 0, použije se výchozí hodnota 32.

Omezení se vztahuje pouze na aktuální příkaz, ne na relaci nebo na počítač.

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

-UseSSL

Označuje, že tato rutina používá protokol SSL (Secure Sockets Layer) pro připojení k odpojené relaci. Ve výchozím nastavení se ssl nepoužívá.

Ws-Management šifruje veškerý obsah PowerShellu přenášený přes síť. Parametr UseSSL je dodatečná ochrana, která odesílá data přes připojení HTTPS místo připojení HTTP.

Pokud použijete tento parametr, ale protokol SSL není k dispozici na portu použitém pro příkaz, příkaz selže.

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

-WhatIf

Zobrazuje, co by se stalo při spuštění rutiny. Rutina není spuštěna.

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

Vstupy

PSSession

K této rutině můžete převést relaci (PSSession).

Výstupy

PSSession

Tato rutina vrátí objekt, který představuje relaci, ke které se znovu připojila.

Poznámky

PowerShell obsahuje následující aliasy pro Connect-PSSession:

  • Windows:

    • cnsn
  • Tato rutina je dostupná jenom na platformách Windows.

  • Connect-PSSession reconnects only to sessions that are disconnected, that is, sessions that have a value Of Disconnected for the State vlastnost. Je možné odpojit a znovu připojit pouze relace připojené k počítačům, na kterých běží Windows PowerShell 3.0 nebo novější verze.

  • Pokud používáte Connect-PSSession relaci, která není odpojena, příkaz nemá vliv na relaci a negeneruje chyby.

  • Odpojené relace zpětné smyčky s interaktivními tokeny, které jsou vytvořeny pomocí parametru EnableNetworkAccess , je možné znovu připojit pouze z počítače, na kterém byla relace vytvořena. Toto omezení chrání počítač před škodlivým přístupem.

  • Hodnota State vlastnost PSSession je relativní k aktuální relaci. Proto hodnota Odpojeno znamená, že psSession není připojen k aktuální relaci. Neznamená ale, že psSession je odpojen od všech relací. Může se připojit k jiné relaci. Chcete-li zjistit, zda se můžete připojit nebo znovu připojit k relaci, použijte vlastnost Dostupnost .

    Hodnota Dostupnost none označuje, že se můžete připojit k relaci. Hodnota Zaneprázdněn označuje, že se nemůžete připojit k psSession , protože je připojen k jiné relaci.

    Další informace o hodnotách State vlastnost relací naleznete v tématu RunspaceState Výčtu.

    Další informace o hodnotách vlastnosti Availability relací naleznete v tématu RunspaceAvailability Výčet.

  • Při připojování k psSession nelze změnit hodnotu časového limitu nečinnosti psSession. Parametr SessionOptionConnect-PSSession přebírá SessionOption objekt, který má hodnotu IdleTimeout . Hodnota IdleTimeout objektu SessionOption a hodnota $PSSessionOption IdleTimeout proměnné jsou však ignorovány při připojování k PSSession.

    Při vytváření psSession můžete nastavit a změnit časový limit nečinnosti při vytváření psSession, pomocí New-PSSession rutin nebo Invoke-Command rutin a při odpojení od psSession.

    Vlastnost IdleTimeout relace PSSession je důležitá pro odpojené relace, protože určuje, jak dlouho se odpojená relace udržuje ve vzdáleném počítači. Odpojené relace se považují za nečinné od okamžiku, kdy jsou odpojené, i když jsou příkazy spuštěné v odpojené relaci.