about_PSSessions

Rövid leírás

Ismerteti a PowerShell-munkameneteket (PSSessions), és ismerteti, hogyan lehet állandó kapcsolatot létesíteni egy távoli számítógéppel.

Hosszú leírás

A PowerShell-parancsok távoli számítógépen való futtatásához használhatja a parancsmag ComputerName paraméterét, vagy létrehozhat egy PowerShell-munkamenetet (PSSession), és parancsokat futtathat a PSSessionban.

PSSession létrehozásakor a PowerShell állandó kapcsolatot létesít a távoli számítógéppel. PsSession használatával futtathat egy távoli számítógépen kapcsolódó parancsokat. Az ugyanabban a PSSessionban futó parancsok megoszthatják az adatokat, például a változók, aliasok és függvények értékeit.

PsSessiont is létrehozhat a helyi számítógépen, és parancsokat futtathat benne. A helyi PSSession a PowerShell-remoting infrastruktúrát használja a PSSession létrehozásához és karbantartásához.

A Windows PowerShell 3.0-tól kezdve a Windows PSSessions független a létrehozásukhoz tartozó munkamenettől. Az aktív PSSessions a távoli számítógépen (vagy a kapcsolat távoli végén vagy "kiszolgálóoldalán" található) van fenntartva. Ennek eredményeképpen Windows rendszeren leválaszthatja a PSSession-t egy távoli Windows-számítógépen, és később újracsatlakozhat ugyanabból a számítógépről vagy egy másik Windows-számítógépről.

Ez a témakör a PSSessions létrehozását, használatát, lekérését és törlését ismerteti. További információ: about_PSSession_Details.

Megjegyzés: A PSSessions a PowerShell-remoting infrastruktúrát használja. A PSSessions használatához a helyi és a távoli számítógépeket újra kell konfigurálni. További információ: about_Remote_Requirements.

A Windows Vista és a Windows újabb verzióiban a PSSession helyi számítógépen való létrehozásához a PowerShellt a "Futtatás rendszergazdaként" beállítással kell elindítania.

Mi az a munkamenet?

A munkamenetek olyan környezetek, amelyekben a PowerShell fut.

A PowerShell minden indításakor létrejön egy munkamenet, és parancsokat futtathat a munkamenetben. Elemeket is hozzáadhat a munkamenethez, például modulokat és beépülő modulokat, és létrehozhat elemeket, például változókat, függvényeket és aliasokat. Ezek az elemek csak a munkamenetben léteznek, és a munkamenet végén törlődnek.

Létrehozhat felhasználó által felügyelt munkameneteket is, más néven "PowerShell-munkameneteket" vagy "PSSessions"-t a helyi számítógépen vagy egy távoli számítógépen. Az alapértelmezett munkamenethez hasonlóan parancsokat is futtathat a PSSessionban, és elemeket vehet fel és hozhat létre. Az automatikusan elinduló munkamenettől eltérően azonban szabályozhatja a létrehozott PSSessionst. Lekérheti, létrehozhatja, konfigurálhatja és eltávolíthatja őket, leválaszthatja és újracsatlakoztathatja őket, és több parancsot futtathat ugyanabban a PSSession-ben. A PSSession mindaddig elérhető marad, amíg el nem törli vagy túllépi az időkorlátot.

Általában pssession-t hoz létre, amely egy távoli számítógépen futtat egy kapcsolódó parancsok sorozatát. Amikor PSSessiont hoz létre egy távoli számítógépen, a PowerShell állandó kapcsolatot létesít a távoli számítógéppel a munkamenet támogatásához.

Ha a parancsmag Enter-PSSession ComputerName paraméterét Invoke-Command használja távoli parancs futtatásához vagy interaktív munkamenet indításához, a PowerShell létrehoz egy ideiglenes munkamenetet a távoli számítógépen, és a parancs befejeződése után vagy az interaktív munkamenet befejeződése után bezárja a munkamenetet. Ezeket az ideiglenes munkameneteket nem szabályozhatja, és nem használhatja őket egyetlen parancsnál vagy egyetlen interaktív munkamenetnél.

A PowerShellben az "aktuális munkamenet" az a munkamenet, amelyben dolgozik. Az "aktuális munkamenet" bármely munkamenetre hivatkozhat, beleértve az ideiglenes munkamenetet vagy a PSSessiont is.

Miért érdemes PSSessiont használni?

PsSessiont akkor használjon, ha egy távoli számítógéphez állandó kapcsolatra van szüksége. PSSession esetén futtathat olyan parancsokat, amelyek adatokat osztanak meg, például a változók értékét, egy függvény tartalmát vagy egy alias definícióját.

PsSession létrehozása nélkül is futtathat távoli parancsokat. A távoli parancsmagok ComputerName paraméterével egyetlen parancsot vagy több nem kapcsolódó parancsot futtathat egy vagy több számítógépen.

Ha a Számítógépnév paramétert Invoke-Command használja, a Enter-PSSessionPowerShell ideiglenes kapcsolatot létesít a távoli számítógéppel, majd a parancs befejeződése után bezárja a kapcsolatot. A létrehozott adatelemek elvesznek a kapcsolat bezárásakor.

Más ComputerName paraméterrel rendelkező parancsmagok, például Get-Eventlog és Get-WmiObject, különböző újramegjelenítési technológiákat használnak az adatok gyűjtéséhez. Egyik sem hoz létre állandó kapcsolatot, például PSSessiont.

PSSession létrehozása

PSSession létrehozásához használja a New-PSSession parancsmagot. A PSSession távoli számítógépen való létrehozásához használja a parancsmag ComputerName paraméterét New-PSSession .

A következő parancs például létrehoz egy új PSSession-t a Server01 számítógépen.

New-PSSession -ComputerName Server01

A parancs elküldésekor létrehozza a PSSessiont, New-PSSession és visszaad egy, a PSSession-t jelképező objektumot. A PSSession létrehozásakor mentheti az objektumot egy változóban, vagy egy Get-PSSession paranccsal később lekérheti a PSSessiont.

Az alábbi parancs például létrehoz egy új PSSession-t a Server01 számítógépen, és menti az eredményül kapott objektumot a $ps változóba.

$ps = New-PSSession -ComputerName Server01

PSSessions létrehozása több számítógépen

PsSessions több számítógépen való létrehozásához használja a parancsmag ComputerName paraméterét New-PSSession . Írja be a távoli számítógépek nevét egy vesszővel tagolt listában.

Ha például PSSessionst szeretne létrehozni a Server01, Server02 és Server03 számítógépeken, írja be a következőt:

New-PSSession -ComputerName Server01, Server02, Server03

New-PSSession egy PSSession-t hoz létre az egyes távoli számítógépeken.

PSSessions lekérése

Az aktuális munkamenetben létrehozott PSSessions lekéréséhez használja a Get-PSSession parancsmagot a ComputerName paraméter nélkül. Get-PSSession Ugyanazt az objektumtípust adja vissza, mint a New-PSSession visszaadott objektum.

Az alábbi parancs lekéri az aktuális munkamenetben létrehozott összes PSSessiont.

Get-PSSession

A PSSessions alapértelmezett megjelenítése az azonosítójukat és az alapértelmezett megjelenítendő nevet jeleníti meg. A munkamenet létrehozásakor másik megjelenítendő nevet is hozzárendelhet.

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

A PSSessions változóban is menthető. Az alábbi parancs lekéri a PSSessions parancsot, és menti őket a $ps 123 változóba.

$ps123 = Get-PSSession

A PSSession-parancsmagok használatakor a PSSession-ra az azonosítója, a neve vagy a példányazonosítója (GUID) alapján hivatkozhat. Az alábbi parancs lekéri a PSSession azonosítóját, és menti a $ps 01 változóba.

$ps01 = Get-PSSession -Id 1

A Windows PowerShell 3.0-tól kezdve a PSSessions megmarad a távoli számítógépen. Az adott távoli számítógépeken létrehozott PSSessions lekéréséhez használja a Get-PSSession parancsmag ComputerName paraméterét. Az alábbi parancs lekéri a Server01 távoli számítógépen létrehozott PSSessions parancsot. Ide tartoznak az aktuális munkamenetben, valamint a helyi számítógépen vagy más számítógépeken létrehozott pssessionsok.

Get-PSSession -ComputerName Server01

A Windows PowerShell 2.0-ban Get-PSSession csak az aktuális munkamenetben létrehozott PSSessions lesz lekérve. Nem kap olyan PSSessionokat, amelyeket más munkamenetekben vagy más számítógépeken hoztak létre, még akkor sem, ha a munkamenetek csatlakoznak, és parancsokat futtatnak a helyi számítógépen.

Parancsok futtatása PSSession-ben

Egy vagy több PSSessions parancs futtatásához használja a Invoke-Command parancsmagot. A parancs megadásához használja a Munkamenet paramétert a PSSessions és a ScriptBlock paraméter megadásához.

Ha például egy Get-ChildItem ("dir") parancsot szeretne futtatni a $ps 123 változóban mentett három PSSessions mindegyikében, írja be a következőt:

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

PSSessions törlése

Ha befejezte a PSSession használatát, a Remove-PSSession parancsmaggal törölje a PSSession-t, és engedje fel a használt erőforrásokat.

Remove-PSSession -Session $ps

vagy

Remove-PSSession -Id 1

A PSSession távoli számítógépről való eltávolításához használja a Remove-PSSession parancsmag ComputerName paraméterét.

Remove-PSSession -ComputerName Server01 -Id 1

Ha nem törli a PSSessiont, a PSSession mindaddig használható marad, amíg az időtúllépést nem ér el.

A parancsmag IdleTimeout paraméterével New-PSSessionOption is beállíthat egy üresjárati PSSession lejárati idejét. További információ: New-PSSessionOption.

A PSSession parancsmagok

A PSSession parancsmagok listájához írja be a következőt:

Get-Help *-PSSession
  • Csatlakozás-PSSession: pssession Csatlakozás az aktuális munkamenethez
  • Leválasztás–PSSession: A PSSession leválasztása az aktuális munkamenetről
  • Enter-PSSession: Interaktív munkamenet indítása
  • Exit-PSSession: Interaktív munkamenet befejezése
  • Get-PSSession: Lekéri a PSSessionst az aktuális munkamenetben
  • Új PSSession: Új PSSession létrehozása helyi vagy távoli számítógépen
  • Receive-PSSession: Lekéri a leválasztott munkamenetben futtatott parancsok eredményeit
  • Remove-PSSession: Törli a PSSessionst az aktuális munkamenetben

Feljegyzés

A leválasztott munkamenetek csak Windows rendszeren támogatottak. A Connect-PSSession, Disconnect-PSSessionés Receive-PSSession parancsmagok csak Windows rendszeren érhetők el. További információ a leválasztott munkamenetekről: about_Remote_Disconnected_Session

További információ

További információ a PSSessionsról: about_PSSession_Details.

Lásd még