about_PSSessions

Krátký popis

Popisuje relace PowerShellu (PSSessions) a vysvětluje, jak vytvořit trvalé připojení ke vzdálenému počítači.

Dlouhý popis

Ke spuštění příkazů PowerShellu na vzdáleném počítači můžete použít parametr ComputerName rutiny nebo můžete vytvořit relaci PowerShellu (PSSession) a spustit příkazy v psSession.

Při vytváření psSession vytvoří PowerShell trvalé připojení ke vzdálenému počítači. Pomocí psSession spusťte řadu souvisejících příkazů na vzdáleném počítači. Příkazy, které běží ve stejné psSession, můžou sdílet data, jako jsou hodnoty proměnných, aliasů a funkcí.

Můžete také vytvořit psSession na místním počítači a spouštět v něm příkazy. Místní psSession používá infrastrukturu vzdálené komunikace PowerShellu k vytvoření a údržbě psSession.

Počínaje Windows PowerShell 3.0 jsou psSessions ve Windows nezávislé na relacích, ve kterých jsou vytvořeny. Aktivní psSessions jsou udržovány na vzdáleném počítači (nebo na vzdáleném konci nebo na straně serveru připojení). V důsledku toho se v systému Windows můžete odpojit od psSession na vzdáleném počítači s Windows a znovu se k němu připojit později ze stejného počítače nebo z jiného počítače s Windows.

Toto téma vysvětluje, jak vytvořit, použít, získat a odstranit psSessions. Pokročilejší informace najdete v tématu about_PSSession_Details.

Poznámka: PsSessions používají infrastrukturu vzdálené komunikace PowerShellu. Aby bylo možné používat psSessions, musí být místní a vzdálené počítače nakonfigurovány pro vzdálenou komunikace. Další informace najdete v tématu about_Remote_Requirements.

V systému Windows Vista a novějších verzích Systému Windows je nutné spustit PowerShell s možností Spustit jako správce.

Co je relace?

Relace je prostředí, ve kterém běží PowerShell.

Při každém spuštění PowerShellu se pro vás vytvoří relace a v relaci můžete spouštět příkazy. Do relace můžete také přidávat položky, jako jsou moduly a moduly snap-in, a můžete vytvářet položky, jako jsou proměnné, funkce a aliasy. Tyto položky existují pouze v relaci a po skončení relace se odstraní.

Můžete také vytvořit relace spravované uživatelem, označované jako "relace PowerShellu" nebo "PSSessions", na místním počítači nebo na vzdáleném počítači. Stejně jako u výchozí relace můžete spouštět příkazy v psSession a přidávat a vytvářet položky. Na rozdíl od relace, která se spustí automaticky, však můžete řídit psSessions, které vytvoříte. Můžete získat, vytvořit, nakonfigurovat a odebrat je, odpojit je a znovu se k nim připojit a spustit několik příkazů ve stejné psSession. PsSession zůstane k dispozici, dokud ho neodstraníte nebo vyprší časový limit.

Obvykle vytvoříte psSession pro spuštění řady souvisejících příkazů na vzdáleném počítači. Při vytváření psSession na vzdáleném počítači vytvoří PowerShell trvalé připojení ke vzdálenému počítači, aby podporoval relaci.

Pokud k spuštění vzdáleného Invoke-Command příkazu nebo spuštění interaktivní relace použijete parametr ComputerName nebo Enter-PSSession rutinu, PowerShell vytvoří na vzdáleném počítači dočasnou relaci a ukončí relaci hned po dokončení příkazu nebo jakmile interaktivní relace skončí. Tyto dočasné relace nelze řídit a nemůžete je použít pro více než jeden příkaz nebo jednu interaktivní relaci.

V PowerShellu je aktuální relace relace, ve které pracujete. Aktuální relace může odkazovat na libovolnou relaci, včetně dočasné relace nebo psSession.

Proč používat psSession?

Pokud potřebujete trvalé připojení ke vzdálenému počítači, použijte psSession. Pomocí psSession můžete spustit řadu příkazů, které sdílejí data, například hodnotu proměnných, obsah funkce nebo definici aliasu.

Vzdálené příkazy můžete spouštět bez vytvoření psSession. Pomocí parametru ComputerName rutin s podporou vzdáleného přístupu spusťte jeden příkaz nebo řadu nesouvisejících příkazů na jednom nebo mnoha počítačích.

Pokud použijete parametr ComputerName nebo Invoke-CommandEnter-PSSession, PowerShell vytvoří dočasné připojení ke vzdálenému počítači a po dokončení příkazu připojení zavře. Při zavření připojení dojde ke ztrátě datových prvků, které vytvoříte.

Jiné rutiny, které mají parametr ComputerName , například Get-Eventlog a Get-WmiObject, používají různé technologie vzdálené komunikace ke shromažďování dat. Žádné nevytvoří trvalé připojení, jako je PSSession.

Vytvoření psSession

K vytvoření psSession použijte rutinu New-PSSession . K vytvoření psSession na vzdáleném počítači použijte parametr ComputerName rutiny New-PSSession .

Například následující příkaz vytvoří novou psSession na počítači Server01.

New-PSSession -ComputerName Server01

Při odeslání příkazu New-PSSession vytvoří PSSession a vrátí objekt, který představuje PSSession. Objekt můžete uložit do proměnné při vytváření psSession, nebo můžete použít Get-PSSession příkaz k získání PSSession později.

Následující příkaz například vytvoří novou psSession na počítači Server01 a uloží výsledný objekt do $ps proměnné.

$ps = New-PSSession -ComputerName Server01

Jak vytvořit psSessions na více počítačích

Pokud chcete vytvořit psSessions na více počítačích, použijte parametr ComputerName rutiny New-PSSession . Do seznamu odděleného čárkami zadejte názvy vzdálených počítačů.

Pokud chcete například vytvořit psSessions na počítačích Server01, Server02 a Server03, zadejte:

New-PSSession -ComputerName Server01, Server02, Server03

New-PSSession vytvoří jednu psSession na všech vzdálených počítačích.

Jak získat psSessions

Pokud chcete získat psSessions, které byly vytvořeny v aktuální relaci, použijte rutinu Get-PSSession bez parametru ComputerName . Get-PSSession vrátí stejný typ objektu, který New-PSSession vrací.

Následující příkaz získá všechny psSessions, které byly vytvořeny v aktuální relaci.

Get-PSSession

Výchozí zobrazení psSessions zobrazuje jejich ID a výchozí zobrazovaný název. Při vytváření relace můžete přiřadit alternativní zobrazovaný název.

Id   Name       ComputerName    State    ConfigurationName
---  ----       ------------    -----    ---------------------
1    Session1   Server01        Opened   Microsoft.PowerShell
2    Session2   Server02        Opened   Microsoft.PowerShell
3    Session3   Server03        Opened   Microsoft.PowerShell

Můžete také uložit psSessions v proměnné. Následující příkaz získá psSessions a uloží je do proměnné $ps 123.

$ps123 = Get-PSSession

Při použití rutin PSSession můžete odkazovat na PSSession podle JEHO ID, jeho názvu nebo ID instance (GUID). Následující příkaz získá PSSession podle JEHO ID a uloží ho do proměnné $ps 01.

$ps01 = Get-PSSession -Id 1

Počínaje Windows PowerShell 3.0 jsou psSessions zachovány na vzdáleném počítači. Pokud chcete získat psSessions, které jste vytvořili na konkrétních vzdálených počítačích, použijte parametr ComputerName rutiny Get-PSSession . Následující příkaz získá psSessions, které jste vytvořili na vzdáleném počítači Server01. To zahrnuje psSessions vytvořené v aktuální relaci a v jiných relacích na místním počítači nebo jiných počítačích.

Get-PSSession -ComputerName Server01

V Windows PowerShell 2.0 Get-PSSession získá pouze psSessions, které byly vytvořeny v aktuální relaci. Nezískal psSessions, které byly vytvořeny v jiných relacích nebo na jiných počítačích, i když jsou relace připojené a spouští příkazy na místním počítači.

Spuštění příkazů v psSession

Pokud chcete spustit příkaz v jedné nebo více instancích PSSession, použijte rutinu Invoke-Command . Pomocí parametru Relace zadejte psSessions a ScriptBlock parametr zadat příkaz.

Pokud chcete například spustit Get-ChildItem příkaz ("dir") v každém ze tří psSessions uložených v proměnné $ps 123, zadejte:

Invoke-Command -Session $ps123 -ScriptBlock { Get-ChildItem }

Odstranění psSessions

Až budete hotovi s psSession, pomocí Remove-PSSession rutiny odstraňte PSSession a uvolněte prostředky, které používal.

Remove-PSSession -Session $ps

nebo

Remove-PSSession -Id 1

Pokud chcete odebrat psSession ze vzdáleného počítače, použijte parametr ComputerName rutiny Remove-PSSession .

Remove-PSSession -ComputerName Server01 -Id 1

Pokud neodstraníte psSession, psSession zůstane k dispozici pro použití, dokud nevypadne časový limit.

Můžete také použít parametr New-PSSessionOptionIdleTimeout rutiny k nastavení doby vypršení platnosti pro nečinnou PSSession. Další informace naleznete v tématu New-PSSessionOption.

Rutiny PSSession

Seznam rutin PSSession zadejte:

Get-Help *-PSSession
  • Connect-PSSession: Připojí psSession k aktuální relaci.
  • Disconnect-PSSession: Odpojí relaci PSSession od aktuální relace.
  • Enter-PSSession: Spustí interaktivní relaci.
  • Exit-PSSession: Ukončí interaktivní relaci.
  • Get-PSSession: Získá PSSessions v aktuální relaci
  • New-PSSession: Vytvoří novou psSession na místním nebo vzdáleném počítači.
  • Receive-PSSession: Získá výsledky příkazů spuštěných v odpojené relaci.
  • Remove-PSSession: Odstraní psSessions v aktuální relaci.

Poznámka

Odpojené relace se podporují jenom ve Windows. Rutiny Connect-PSSessiona , Receive-PSSessionDisconnect-PSSessionjsou k dispozici pouze ve Windows. Další informace o odpojených relacích najdete v tématu about_Remote_Disconnected_Session

Další informace

Další informace o psSessions naleznete v tématu about_PSSession_Details.

Viz také