Sdílet prostřednictvím


about_PSSessions

Krátký popis

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

Dlouhý popis

Pokud chcete spustit příkazy 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 v 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 PowerShellem 3.0 jsou relace vytvořené ve Windows nezávislé na relacích, ve kterých jsou vytvořeny. Aktivní psSessions jsou udržovány ve vzdáleném počítači (nebo v počítači na vzdáleném konci nebo na straně serveru připojení). V důsledku toho se ve Windows můžete odpojit od psSession na vzdáleném počítači s Windows a později se k němu znovu připojit ze stejného počítače nebo z jiného počítače s Windows.

Toto téma vysvětluje, jak vytvářet, používat, získat a odstraňovat úlohy PSSession. Další informace najdete v tématu about_PSSession_Details.

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

Pokud chcete v systému Windows Vista a novějších verzích systému Windows vytvořit na místním počítači psSession, musíte spustit PowerShell s možností Spustit jako správce.

Co je relace?

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

Pokaždé, když spustíte PowerShell, vytvoří se relace za vás 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 jsou odstraněny po skončení relace.

Můžete také vytvářet 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 relace PSSession, které vytvoříte. Můžete je získat, vytvořit, nakonfigurovat a odebrat, odpojit je a znovu se k nim připojit a spustit více příkazů ve stejné psSession. PsSession zůstane k dispozici, dokud ho neodstraníte nebo nevysadí č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 pro podporu relace.

Pokud ke spuštění vzdáleného Invoke-Command příkazu nebo spuštění interaktivní relace použijete parametr ComputerName nebo Enter-PSSession rutiny, PowerShell vytvoří na vzdáleném počítači dočasnou relaci a relaci zavře, jakmile se příkaz dokončí, 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 příkaz PSSession. Pomocí psSession můžete spustit řadu příkazů, které sdílejí data, jako je hodnota proměnných, obsah funkce nebo definice 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-Command Enter-PSSession, PowerShell vytvoří dočasné připojení ke vzdálenému počítači a poté připojení zavře, jakmile je příkaz dokončen. 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-WmiObjectpouží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 pomocí Get-PSSession příkazu získat psSession později.

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

$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 například chcete vytvořit psSessions na počítačích Se serverem01, Server02 a Server03, zadejte:

New-PSSession -ComputerName Server01, Server02, Server03

New-PSSession vytvoří jednu psSession na každém ze vzdálených počítačů.

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 ID, jeho názvu nebo ID instance (GUID). Následující příkaz získá PSSession podle ID a uloží ho do proměnné $ps 01.

$ps01 = Get-PSSession -Id 1

Počínaje windows PowerShellem 3.0 jsou psSessions udržovány ve 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 relace PSSession 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

Ve Windows PowerShellu 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řipojeny a spouští příkazy na místním počítači.

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

Pokud chcete spustit příkaz v jednom nebo několika psSessions, použijte rutinu Invoke-Command . Pomocí parametru Session zadejte psSessions a ScriptBlock parametr k zadání příkazu.

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

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

Odstranění instancí psSession

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

K odebrání 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 nevystane časový limit.

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

Rutiny PSSession

Pro seznam rutin PSSession zadejte:

Get-Help *-PSSession
  • Connect-PSSession: Připojí relaci PSSession k aktuální relaci.
  • Disconnect-PSSession: Odpojí 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 jsou podporovány pouze ve Windows. Rutiny Connect-PSSessiona Receive-PSSession , Disconnect-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é