Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
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 futtathat parancsokat 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 távelérés infrastruktúráját használja a PSSession létrehozásához és fenntartá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 vannak fenntartva, vagy a kapcsolat távoli végén, azaz a "kiszolgálóoldalon." 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 fejlett információkért lásd: about_PSSession_Details.
Megjegyzés: A PSSession-ek a PowerShell-távvezérlés infrastruktúráját használják. A PSSessions használatához a helyi és a távoli számítógépeket be kell állítani a távoli kapcsolatokhoz. 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 le nem jár az ideje.
PSSession-t hoz létre, hogy egy sor kapcsolódó parancsot futtasson egy távoli számítógépen. 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 Invoke-Command parancsmag Enter-PSSession paraméterét 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 egy vagy több, egymástól független parancsot futtathat egy vagy több számítógépen.
Ha a ComputerName paramétert használja Invoke-Command vagy Enter-PSSession, 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.
Más, ComputerName paraméterrel (például Get-Eventlog és Get-WmiObject) rendelkező parancsmagok különböző távoli kommunikációs 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 New-PSSession paraméterét.
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 New-PSSession létrehozza a PSSessiont, é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 New-PSSession paraméterét. Í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 minden távoli számítógépen létrehoz egy PSSession-t.
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, amelyet New-PSSession ad vissza.
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 munkameneteket, és menti őket a $ps123 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 parancsmag Get-PSSession paraméterét. Az alábbi parancs megjeleníti az Ön által a Server01 távoli számítógépen létrehozott PSSessioneket. 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-t kapja meg. 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.
Használja a Munkamenet paramétert a PSSessions meghatározásához, és a ScriptBlock paramétert a parancs 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 parancsmag Remove-PSSession paraméterét.
Remove-PSSession -ComputerName Server01 -Id 1
Ha nem törli a PSSessiont, a PSSession addig használható marad, amíg le nem jár.
A parancsmag New-PSSessionOption paraméterével is beállíthat egy tétlen 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
- PSSession-leválasztás: Leválasztja a PSSession-t az aktuális munkamenetbő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
Jegyzet
A leválasztott munkamenetek támogatása csak Windows rendszeren érhető el. A Connect-PSSession, Disconnect-PSSessionés Receive-PSSession parancsmagok csak Windows rendszeren érhetők el. A leválasztott munkamenetekkel kapcsolatos további információkért lásd a about_Remote_Disconnected_Sessioncímű részt.
További információkért
A PSSessions szolgáltatással kapcsolatos további információkért lásd: about_PSSession_Details.