about_PSSession_Details

Rövid leírás

Részletes információkat nyújt a PowerShell-munkamenetekről és a távoli parancsokban játszott szerepükről.

Hosszú leírás

A munkamenetek olyan környezetek, amelyekben a PowerShell fut. A PowerShell minden indításakor létrejön egy munkamenet. Létrehozhat további munkameneteket, úgynevezett "PowerShell-munkameneteket" vagy "PSSessions"-t a számítógépen vagy egy másik számítógépen.

A PowerShell által létrehozott munkamenetekkel ellentétben ön felügyelheti és kezelheti a létrehozott PSSessions-okat.

A PSSessions fontos szerepet játszik a távoli számítástechnikában. Távoli számítógéphez csatlakoztatott PSSession létrehozásakor a PowerShell állandó kapcsolatot létesít a távoli számítógéppel a PSSession támogatásához. A PSSession használatával parancsok, függvények és szkriptek sorozatát futtathatja, amelyek adatokat osztanak meg.

Ez a témakör részletes információkat nyújt a PowerShell munkameneteiről és PSSessions-járól. A munkamenetekkel elvégezhető feladatokról a about_PSSessions című témakörben talál alapvető információkat.

Tudnivalók a munkamenetekről

A munkamenet gyakorlatilag egy végrehajtási környezet, amelyben a PowerShell fut. Minden munkamenet tartalmazza a System.Management.Automation motor egy példányát és egy gazdagépprogramot, amelyben a PowerShell fut. A gazdagép lehet a jól ismert PowerShell-konzol vagy más parancsokat futtató program, például Cmd.exe, vagy a PowerShell üzemeltetésére létrehozott program, például a Windows PowerShell integrált szkriptelési környezete (I Standard kiadás). Windows-szempontból a munkamenet egy Windows-folyamat a célszámítógépen.

Minden munkamenet külön van konfigurálva. Magában foglalja a saját tulajdonságait, saját végrehajtási szabályzatát és saját profiljait. A munkamenet létrehozásakor létező környezet akkor is megmarad az élettartama alatt, ha módosítja a környezetet a számítógépen. Minden munkamenet globális hatókörben jön létre, még a szkriptben létrehozott munkamenetek is.

Egyszerre csak egy parancsot (vagy parancsfolyamatot) futtathat egy munkamenetben. A második parancs szinkron futtatása (egyenként) legfeljebb négy percet vár az első parancs befejezéséig. A második parancs aszinkron módon (egyidejűleg) fut.

Tudnivalók a PSSessionsról

A PowerShell minden indításakor létrejön egy munkamenet. A PowerShell pedig ideiglenes munkameneteket hoz létre az egyes parancsok futtatásához. Létrehozhat azonban olyan munkameneteket (úgynevezett "PowerShell-munkameneteket" vagy "PSSessions"-okat), amelyeket ön irányít és kezel.

A PSSessions kritikus fontosságú a távoli parancsokhoz. Ha a parancsmagok ComputerName paraméterét használja, a Invoke-CommandEnter-PSSession PowerShell létrehoz egy ideiglenes munkamenetet a parancs futtatásához, majd a parancs vagy az interaktív munkamenet befejeződése után bezárja a munkamenetet.

Ha azonban a parancsmaggal pssessiont hoz létre, a New-PSSession PowerShell létrehoz egy állandó munkamenetet a távoli számítógépen, amelyen több parancsot vagy interaktív munkamenetet futtathat. A létrehozott PSSessions mindaddig nyitva marad és használható marad, amíg el nem törli őket, vagy amíg be nem zárja azt a munkamenetet, amelyben létrehozták őket.

Amikor PSSessiont hoz létre egy távoli számítógépen, a rendszer létrehoz egy PowerShell-folyamatot a távoli számítógépen, és kapcsolatot létesít a helyi számítógépről a távoli számítógépen futó folyamattal. Amikor PSSessiont hoz létre a helyi számítógépen, az új folyamat és a kapcsolatok is létrejönnek a helyi számítógépen.

Mikor van szükségem PSSession-ra?

A Invoke-Command parancsmagok Számítógépnév és Enter-PSSessionMunkamenet paraméterekkel is rendelkeznek. A távoli parancsok futtatásához bármelyiket használhatja.

A ComputerName paraméterrel egyetlen parancsot vagy több, egymástól független parancsot futtathat egy vagy több számítógépen.

Az adatokat megosztó parancsok futtatásához állandó kapcsolatra van szükség a távoli számítógéppel. Ebben az esetben hozzon létre egy PSSessiont, majd a Munkamenet paraméterrel futtassa a parancsokat a PSSessionban.

Sok más parancsmag, amely távoli számítógépekről szerez be adatokat, például Get-Process, Get-ServiceGet-EventLogés Get-WmiObject csak ComputerName paraméterrel rendelkezik. A PowerShell-remotingtól eltérő technológiákat használnak az adatok távoli gyűjtéséhez. Ezek a parancsmagok nem rendelkeznek munkamenet-paraméterrel , de a Invoke-Command parancsmaggal futtathatja ezeket a parancsokat EGY PSSession-ben.

Hogyan hozhatok létre PSSession-t?

PSSession létrehozásához használja a New-PSSession parancsmagot. A PSSession helyi vagy távoli számítógépen való létrehozásához használható New-PSSession .

Létrehozhatok PSSession-t bármely számítógépen?

Távoli számítógéphez csatlakoztatott PSSession létrehozásához a számítógépet újra kell konfigurálni a PowerShellben. Az aktuális felhasználónak a távoli számítógépen található Rendszergazda istrators csoport tagjának kell lennie, vagy az aktuális felhasználónak meg kell tudnia adni a Rendszergazda istrators csoport egyik tagjának hitelesítő adatait. További információ: about_Remote_Requirements.

Láthatom a PSSessions-t más munkamenetekben?

A Windows PowerShell 3.0-tól kezdődően a Get-PSSession parancsmag ComputerName paramétere lekéri a megadott távoli számítógépeken létrehozott PSSessions parancsmagokat.

Az aktív PSSessions a távoli számítógépen (a kapcsolat "kiszolgálóoldalán") van fenntartva, és bármely számítógépen bármilyen munkamenetből lekérheti őket.

Ha például psSessiont hoz létre a Server01 számítógépről a Server02 számítógépre, majd a Server03 számítógépre vált, a munkamenet lekéréséhez használhatja az alábbihoz hasonló parancsot.

Get-PSSession -ComputerName Server02

A munkamenet akkor is megmarad a távoli számítógépen, ha leválasztja a munkamenetet, amíg el nem törli, vagy időtúllépést nem végez.

A Windows PowerShell 2.0-ban csak az aktuális munkamenetben létrehozott PSSessions érhető el. Más munkamenetekben létrehozott PSSessions nem szerezhető be.

További információ: Get-PSSession.

Látom a mások által a saját számítógépen létrehozott PSSessions-t?

Csak akkor szerezheti be és kezelheti a mások által létrehozott PSSessionokat, ha megadhatja a PSSession-t létrehozó felhasználó hitelesítő adatait, vagy a PSSession által használt munkamenet-konfiguráció tartalmazza a futtató hitelesítő adatokat. Ellenkező esetben csak a létrehozott PSSessions-elemeket szerezheti be, csatlakoztathatja, használhatja és kezelheti.

Csatlakozás egy másik számítógépről származó PSSession-ra?

A Windows PowerShell 3.0-tól kezdődően a Windows rendszerű számítógépekEN futó PSSessions független a létrehozásukhoz tartozó munkamenettől. Az aktív PSSessions a távoli vagy a "kiszolgálóoldali" kapcsolaton van fenntartva a számítógépen.

Windows rendszerű számítógépeken a parancsmaggal leválaszthatja a Disconnect-PSSession PSSession-t. A PSSession leválasztva van a helyi munkamenetről, de a távoli számítógépen van fenntartva. A parancsok továbbra is futnak a leválasztott PSSession-ben. A PsSession megszakítása nélkül bezárhatja a PowerShellt, és leállíthatja az eredeti számítógépet.

Ezután még órákkal később a Get-PSSession parancsmaggal lekérheti a PSSessiont és a Connect-PSSession parancsmagot, hogy egy másik Windows-számítógépen lévő új munkamenetből csatlakozzon a PSSessionhoz.

További információ: about_Remote_Disconnected_Sessions.

Mi történik a PSSession-emmel, ha a számítógép leáll?

A leválasztott PSSessions független azoknak a munkameneteknek a számaitól, amelyekben létrehozták őket. Ha leválaszt egy PSSessiont, majd bezárja az eredeti számítógépet, a PSSession megmarad a távoli számítógépen.

Emellett a PowerShell megpróbálja helyreállítani azokat az aktív PSSessionokat, amelyek véletlenül megszakadnak, például egy számítógép újraindítása, egy ideiglenes áramkimaradás vagy hálózatkimaradás miatt. A PowerShell megkísérli fenntartani vagy helyreállítani a PSSessiont egy megnyitott állapotba, ha az eredeti munkamenet továbbra is elérhető, vagy ha nem, megszakadt állapotba.

Az "aktív" PSSession parancsokat futtat. Ha egy PSSession csatlakoztatva van (nincs leválasztva), és a parancsok a PSSessionban futnak a csatlakoztatott munkamenet bezárásakor, a PowerShell megpróbálja fenntartani a PSSessiont a távoli számítógépen. Ha azonban a PSSession szolgáltatásban nincsenek parancsok, a PowerShell bezárja a PSSessiont a csatlakoztatott munkamenet bezárásakor.

További információ: about_Remote_Disconnected_Sessions.

Futtathatok háttérfeladatot PSSession-ben?

Igen. A háttérfeladatok olyan parancsok, amelyek aszinkron módon futnak a háttérben az aktuális munkamenet használata nélkül. Amikor elküld egy parancsot egy feladat indításához, a parancs egy feladatobjektumot ad vissza, de a feladat a háttérben fut, amíg el nem fejeződik.

Ha háttérfeladatot szeretne elindítani egy helyi számítógépen, használja a Start-Job parancsot. A háttérfeladatot ideiglenes kapcsolaton (a ComputerName paraméterrel) vagy PSSession-ben (a Munkamenet paraméterrel) futtathatja.

Háttérfeladat távoli számítógépen való elindításához használja a parancsmagot az Invoke-Command AsJob paraméterrel, vagy a Invoke-Command parancsmaggal futtasson egy Start-Job parancsot egy távoli számítógépen. Az AsJob paraméter használatakor használhatja a ComputerName vagy a Session paramétereket.

Invoke-Command Parancs futtatásakor Start-Job pssession-ben kell futtatnia a parancsot. Ha a ComputerName paramétert használja, a PowerShell megszakítja a kapcsolatot, amikor a feladatobjektum visszatér, és a feladat megszakad.

További információkért lásd a feladatokat ismertető szakaszt.

Futtathatok interaktív munkamenetet?

Igen. Ha egy távoli számítógéppel szeretne interaktív munkamenetet indítani, használja a Enter-PSSession parancsmagot. Egy interaktív munkamenetben a beírt parancsok ugyanúgy futnak a távoli számítógépen, mintha közvetlenül a távoli számítógépre írták volna őket.

Egy interaktív munkamenetet egy ideiglenes munkamenetben (a ComputerName paraméterrel) vagy PSSession-ben (a Munkamenet paraméterrel) futtathat. HA PSSessiont használ, a PSSession megőrzi az előző parancsok adatait, a PSSession pedig megőrzi az interaktív munkamenet során létrehozott adatokat a későbbi parancsokban való használatra.

Amikor befejezi az interaktív munkamenetet, a PSSession nyitva marad, és használható marad.

További információ: Enter-PSSession and Exit-PSSession.

Törölni kell a PSSessions parancsot?

Igen. A PSSession egy folyamat, amely egy önálló környezet, amely memóriát és egyéb erőforrásokat használ még akkor is, ha nem használja. Ha befejezte a PSSession-t, törölje azt. Ha több PSSessiont hoz létre, zárja be a nem használtakat, és csak a jelenleg használtakat tartsa karban.

A PSSessions törléséhez használja a Remove-PSSession parancsmagot. Törli a PSSessions-t, és kiadja az összes használt erőforrást.

Az IdleTimeOut paraméter New-PSSessionOption használatával is bezárhat egy tétlen PSSessiont egy megadott időköz után. További információ: New-PSSessionOption.

Ha egy PSSession objektumot egy változóba ment, majd törli a PSSessiont, vagy időtúllépést hagy, a változó továbbra is tartalmazza a PSSession objektumot, de a PSSession nem aktív, és nem használható és nem javítható.

Minden munkamenet és PSSessions egyformák?

Szám A fejlesztők egyéni munkameneteket hozhatnak létre, amelyek csak a kiválasztott szolgáltatókat és parancsmagokat tartalmazzák. Ha egy parancs működik az egyik munkamenetben, de nem egy másikban, az lehet, hogy a munkamenet korlátozott.

Lásd még