about_PSSessions
Rövid leírás
Ismerteti a Windows PowerShell-munkameneteket (PSSessions), és ismerteti, hogyan lehet állandó kapcsolatot létesíteni egy távoli számítógéppel.
Hosszú leírás
Windows 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 Windows PowerShell-munkamenetet (PSSession), és futtathat parancsokat a PSSessionban.
PSSession létrehozásakor a Windows 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. Egy helyi PSSession a Windows 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 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 leválaszthatja a PSSession-t, és később újracsatlakozhat ugyanabból a számítógépről vagy egy másik 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 Windows 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 Windows PowerShellt a "Futtatás rendszergazdaként" beállítással kell elindítania.
Mi az a munkamenet?
A munkamenetek olyan környezetek, amelyekben a Windows PowerShell fut.
A Windows 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 "Windows 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 Windows 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 Windows 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 Windows 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-PSSession
Windows 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.
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
- 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 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
További információ
További információ a PSSessionsról: about_PSSession_Details.