Sdílet prostřednictvím


Informace o pssessions

Krátký popis

Popisuje relace Windows PowerShell (PSSessions) a vysvětluje, jak navázat trvalé připojení ke vzdálenému počítači.

Dlouhý popis

Pokud chcete spustit Windows PowerShell příkazy ve vzdáleném počítači, můžete použít parametr ComputerName rutiny nebo můžete vytvořit Windows PowerShell relaci (PSSession) a spouštět příkazy v psSession.

Když vytvoříte relaci PSSession, Windows PowerShell vytvoří trvalé připojení ke vzdálenému počítači. Pomocí psSession spusťte řadu souvisejících příkazů ve vzdáleném počítači. Příkazy spouštěné ve stejné lekci PSSession můžou sdílet data, například hodnoty proměnných, aliasů a funkcí.

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

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

Toto téma vysvětluje, jak vytvářet, používat, získávat a odstraňovat relace PSSessions. Podrobnější informace najdete v tématu about_PSSession_Details.

Poznámka: Relace PSSession používají infrastrukturu vzdálené komunikace Windows PowerShell. Chcete-li použít relace 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.

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

Co je relace?

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

Při každém spuštění Windows PowerShell se vytvoří relace, ve které 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 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 "Windows PowerShell relace" nebo "PSSessions", v místním počítači nebo na vzdáleném počítači. Stejně jako u výchozí relace můžete v relaci PSSession spouštět příkazy a přidávat a vytvářet položky. Na rozdíl od relace, která se spouští automaticky, však můžete řídit relace PSSessions, které vytvoříte. Můžete je získat, vytvořit, nakonfigurovat a odebrat, odpojit je a znovu se k nim připojit a spustit několik příkazů ve stejné relaci PSSession. Relace PSSession zůstane dostupná, dokud ji neodstraníte nebo dokud nevystane časový limit.

Obvykle vytvoříte relaci PSSession, která spustí řadu souvisejících příkazů ve vzdáleném počítači. Když vytvoříte relaci PSSession ve vzdáleném počítači, Windows PowerShell vytvoří trvalé připojení ke vzdálenému počítači, aby podporovala relaci.

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

V Windows PowerShell je "aktuální relace" relace, ve které pracujete. "Aktuální relace" může znamenat libovolnou relaci, včetně dočasné relace nebo relace PSSession.

Proč používat pssession?

Pokud potřebujete trvalé připojení ke vzdálenému počítači, použijte relaci 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 vzdálených rutin spusťte jeden příkaz nebo řadu nesouvisejících příkazů na jednom nebo více počítačích.

Při použití parametru ComputerName nebo Invoke-CommandEnter-PSSessionWindows PowerShell naváže dočasné připojení ke vzdálenému počítači a poté ukončí připojení, jakmile je příkaz dokončen. Všechny datové prvky, které vytvoříte, se při ukončení připojení ztratí.

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

Jak Create psSession

K vytvoření pssession použijte rutinu New-PSSession . Pokud chcete vytvořit instanci PSSession na vzdáleném počítači, použijte parametr ComputerName rutiny New-PSSession .

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

New-PSSession -ComputerName Server01

Když odešlete příkaz , 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.

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

$ps = New-PSSession -ComputerName Server01

Jak Create 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 . Zadejte názvy vzdálených počítačů do seznamu odděleného čárkami.

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

New-PSSession -ComputerName Server01, Server02, Server03

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

Jak získat psSessions

Pokud chcete získat relace PSSessions vytvořené 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 načte všechny relace PSSession, které byly vytvořeny v aktuální relaci.

Get-PSSession

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

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

PsSessions můžete také uložit do 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 na instanci PSSession odkazovat podle id, názvu nebo ID instance (GUID). Následující příkaz získá PSSession podle svého ID a uloží ho do proměnné $ps 01.

$ps01 = Get-PSSession -Id 1

Počínaje Windows PowerShell 3.0 jsou relace PSSession udržovány ve vzdáleném počítači. Pokud chcete získat relace PSSession, 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 ve vzdáleném počítači Server01. To zahrnuje relace PSSession vytvořené v aktuální relaci a v jiných relacích v 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 relace PSSessions, které byly vytvořeny v aktuální relaci. Nezískáte relace PSSession, které byly vytvořeny v jiných relacích nebo na jiných počítačích, a to ani v případě, že jsou relace připojeny k místnímu počítači a spouští příkazy.

Spouštění příkazů v nástroji PSSession

Pokud chcete spustit příkaz v jedné nebo více instancích PSSession, použijte rutinu Invoke-Command . Pomocí parametru Session určete PSSessions a parametr ScriptBlock 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

Jakmile skončíte s instancí PSSession, pomocí Remove-PSSession rutiny odstraňte pssession a uvolněte prostředky, které používala.

Remove-PSSession -Session $ps

nebo

Remove-PSSession -Id 1

Pokud chcete odebrat instanci 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, zůstane tato relace pssession k dispozici, dokud nevypadne časový limit.

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

Rutiny PSSession

Seznam rutin PSSession zobrazíte zadáním:

Get-Help *-PSSession
  • Connect-PSSession: Připojí relaci 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á relace PSSession v aktuální relaci.
  • New-PSSession: Vytvoří novou instanci PSSession na místním nebo vzdáleném počítači.
  • Receive-PSSession: Získá výsledky příkazů, které se spustily v odpojené relaci.
  • Remove-PSSession: Odstraní relace PSSession v aktuální relaci.

Další informace

Další informace o pssessions najdete v tématu about_PSSession_Details.

Viz také

about_Remote

about_Remote_Disconnected_Sessions

about_Remote_Requirements

Connect-PSSession

Disconnect-PSSession

Enter-PSSession

Exit-PSSession

Get-PSSession

Invoke-Command

New-PSSession

Remove-PSSession