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-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 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-PSSession
a Receive-PSSession
, Disconnect-PSSession
jsou 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.