about_PSSessions

Rövid leírás

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

Hosszú leírás

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

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

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

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ó számítógépen) 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 ugyanabból a számítógépből vagy egy másik Windows-számítógépről csatlakozhat hozzá.

Ez a témakör a PSSessions létrehozásának, használatának, lekérésének és törlésének módjá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 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 adhat hozzá és hozhat létre. Az automatikusan elinduló munkamenettől eltérően azonban szabályozhatja a létrehozott PSSessions-t. Lekérheti, létrehozhatja, konfigurálhatja és eltávolíthatja őket, leválaszthatja és újracsatlakoztathatja őket, és több parancsot is futtathat ugyanabban a PSSessionban. A PSSession mindaddig elérhető marad, amíg ön nem törli vagy túllépi az időkorlátot.

Általában PSSessiont hoz létre, amellyel egy távoli számítógépen kapcsolódó parancsok sorozatát futtathatja. 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 vagy Enter-PSSession parancsmag ComputerName paraméterét Invoke-Command használja egy távoli parancs futtatásához vagy egy interaktív munkamenet elindí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 vagy egyetlen interaktív munkamenetnél többre.

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 állandó kapcsolatra van szüksége egy távoli számítógéphez. 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 egy vagy több számítógépen nem kapcsolódó parancsokat futtathat.

Ha a vagy Enter-PSSessiona ComputerName paraméterét Invoke-Command használja, a PowerShell 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.

A ComputerName paraméterrel (például Get-Eventlog és Get-WmiObject) rendelkező egyéb parancsmagok 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óba, vagy egy Get-PSSession paranccsal később lekérheti a PSSessiont.

A következő 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

Ha több számítógépen szeretne PSSessionst létrehozni, 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-PSSessionparancsmagot a ComputerName paraméter nélkül. Get-PSSession ugyanazt az objektumtípust adja vissza, amelyet New-PSSession visszaad.

A következő parancs lekéri az aktuális munkamenetben létrehozott összes PSSessions-t.

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 PSSessionst egy változóba is mentheti. 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. A következő 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 a távoli számítógépen van fenntartva. Az egyes távoli számítógépeken létrehozott PSSessions lekéréséhez használja a Get-PSSession parancsmag ComputerName paraméterét. A következő parancs lekéri a Server01 távoli számítógépen létrehozott PSSessions parancsot. Ide tartoznak az aktuális munkamenetben és a helyi számítógépen vagy más számítógépeken létrehozott PSSessions.

Get-PSSession -ComputerName Server01

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

Parancsok futtatása PSSession-ban

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 végzett a PSSession szolgáltatással, a Remove-PSSession parancsmaggal törölje a PSSession-t, és engedje el 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 parancsmag ComputerName paraméterét Remove-PSSession .

Remove-PSSession -ComputerName Server01 -Id 1

Ha nem törli a PSSessiont, a PSSession mindaddig használható marad, amíg időtúllépés nem történik.

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
  • Connect-PSSession: PSSession csatlakoztatása 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 PSSessions-t az aktuális munkamenetben
  • New-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 PSSessions-t az aktuális munkamenetben

Megjegyzé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ók

A PSSessions szolgáltatással kapcsolatos további információkért lásd: about_PSSession_Details.

Lásd még