Enter-PSHostProcess
Egy helyi folyamattal csatlakozik egy interaktív munkamenethez, és egy interaktív munkamenetbe lép be.
Syntax
Enter-PSHostProcess
[-Id] <Int32>
[[-AppDomainName] <String>]
[<CommonParameters>]
Enter-PSHostProcess
[-Process] <Process>
[[-AppDomainName] <String>]
[<CommonParameters>]
Enter-PSHostProcess
[-Name] <String>
[[-AppDomainName] <String>]
[<CommonParameters>]
Enter-PSHostProcess
[-HostProcessInfo] <PSHostProcessInfo>
[[-AppDomainName] <String>]
[<CommonParameters>]
Enter-PSHostProcess
-CustomPipeName <String>
[<CommonParameters>]
Description
A Enter-PSHostProcess
parancsmag egy helyi folyamattal csatlakozik egy interaktív munkamenethez, és egy interaktív munkamenetbe lép be. A PowerShell 6.2-től kezdődően ez a parancsmag nem Windows-platformokon támogatott.
A PowerShell üzemeltetésére és távoli munkamenet futtatására vonatkozó új folyamat létrehozása helyett a távoli interaktív munkamenet egy meglévő folyamatban fut, amely már futtatja a PowerShellt. Ha egy adott folyamat távoli munkamenetével dolgozik, számba vehet futó runspace-eket, majd kiválaszthat egy futtatóteret a hibakereséshez.Debug-Runspace
Enable-RunspaceDebug
A beírni kívánt folyamatnak a PowerShellt (System.Management.Automation.dll) kell üzemeltetnie. Vagy a Rendszergazdák csoport tagjának kell lennie azon a számítógépen, amelyen a folyamat található, vagy Önnek kell lennie az a felhasználó, aki a folyamatot elindító szkriptet futtatja.
Miután kiválasztott egy futtatóteret a hibakereséshez, a rendszer megnyit egy távoli hibakeresési munkamenetet a runspace számára, ha jelenleg egy parancsot futtat, vagy le van állítva a hibakeresőben. Ezután ugyanúgy hibakeresést végezhet a futtatókörnyezeti szkriptben, mint a többi távoli munkamenet-szkriptben.
Válassza le a hibakeresési munkamenetet, majd az interaktív munkamenetet a folyamattal úgy, hogy kétszer futtatja a kilépést, vagy állítsa le a szkript végrehajtását a meglévő hibakereső kilépési parancsának futtatásával.
Ha a Név paraméterrel ad meg egy folyamatot, és csak egy folyamat található a megadott névvel, a folyamat be lesz írva. Ha egynél több folyamat található a megadott névvel, a PowerShell hibát ad vissza, és felsorolja a megadott névvel talált összes folyamatot.
A távoli számítógépeken futó folyamatokhoz való csatolás támogatásához a Enter-PSHostProcess
parancsmag engedélyezve van egy megadott távoli számítógépen, hogy egy távoli PowerShell-munkameneten belül helyi folyamathoz csatolhassa.
Példák
1. példa: Runspace hibakeresésének megkezdése a PowerShell ISE-folyamaton belül
Ebben a példában a PowerShell-konzolon futtatva Enter-PSHostProcess
adja meg a PowerShell ISE-folyamatot. Az eredményként kapott interaktív munkamenetben megtalálhatja a hibakereséshez Get-Runspace
használni kívánt futtatókörnyezetet, majd hibakeresést végezhet a futtatókörnyezetben.
PS C:\> Enter-PSHostProcess -Name powershell_ise
[Process:1520]: PS C:\> Get-Runspace
Id Name InstanceId State Availability
-- ------- ----------- ------ -------------
1 Runspace1 2d91211d-9cce-42f0-ab0e-71ac258b32b5 Opened Available
2 Runspace2 a3855043-cb16-424a-a616-685360c3763b Opened RemoteDebug
3 MyLocalRS 2236dbd8-2105-4dec-a15a-a27d0bfaacb5 Opened LocalDebug
4 MyRunspace 771356e9-8c44-4b70-9de5-dd17cb41e48e Opened Busy
5 Runspace8 3e517382-a97a-49ba-9c3c-fd21f6664288 Broken None
2. példa: Adott futtatótér hibakeresése
Ezután hibakeresést végezhet a 4. futtatótér-azonosítóval, amely egy másik felhasználó hosszú ideig futó szkriptjét futtatja. A visszaadott listából Get-Runspace
vegye figyelembe, hogy a futtatókörnyezet állapota meg van nyitva, a rendelkezésre állás pedig foglalt, ami azt jelenti, hogy a futtatótér továbbra is a hosszú ideig futó szkriptet futtatja. A visszaadott Get-Runspace
runspace-objektumok rendelkeznek a futó parancsverem ScriptStackTrace nevű NoteProperty nevű objektumával is, ha vannak ilyenek.
[Process:1520]: PS C:\> (Get-Runspace -Id 4).ScriptStackTrace
Command Arguments Location
------- --------- --------
MyModuleWorkflowF1 {} TestNoFile3.psm1: line 6
WFTest1 {} TestNoFile2.ps1: line 14
TestNoFile2.ps1 {} TestNoFile2.ps1: line 22
<ScriptBlock> {} <No file>
[Process: 1520]: PS C:\> Debug-Runspace -Id 4
Hit Line breakpoint on 'C:\TestWFVar1.ps1:83'
At C:\TestWFVar1.ps1:83 char:1
+ $scriptVar = "Script Variable"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[Process: 1520]: [RSDBG: 4]: PS C:\>
Ezzel a futtatótérrel interaktív hibakeresési munkamenetet indíthat a Debug-Runspace
parancsmag futtatásával.
3. példa: A hibakeresési munkamenet befejezése és kilépés
A hibakeresés befejezése után engedélyezze a szkript futtatását anélkül, hogy a hibakereső a kilépési hibakereső parancs futtatásával csatlakozik. Másik lehetőségként a q vagy a Stop parancsokkal is kiléphet a hibakeresőből.
Ha végzett a folyamattal, lépjen ki a folyamatból a Exit-PSHostProcess
parancsmag futtatásával. Ez visszaadja a kérést PS C:\>
.
[Process:346]: [RSDBG: 3]: PS C:\> exit
[Process:1520]: PS C:\>
[Process:1520]: PS C:\> Exit-PSHostProcess
PS C:\>
Paraméterek
-AppDomainName
Megadja az alkalmazás tartománynevét, amelyhez csatlakozni szeretne, ha nincs megadva, a DefaultAppDomaint használja. Az alkalmazás tartományneveinek megjelenítésére használható Get-PSHostProcessInfo
.
Típus: | String |
Position: | 1 |
Alapértelmezett érték: | DefaultAppDomain |
Kötelező: | False |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-CustomPipeName
Lekéri vagy beállítja az egyéni elnevezett csőnevet, amelyhez csatlakozni szeretne. Ezt általában a következővel pwsh -CustomPipeName
együtt használják: .
Ez a paraméter a PowerShell 6.2-ben lett bevezetve.
Típus: | String |
Position: | Named |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-HostProcessInfo
A PowerShellhez csatlakoztatható PSHostProcessInfo objektumot adja meg. Az objektum lekérésére használható Get-PSHostProcessInfo
.
Típus: | PSHostProcessInfo |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | False |
-Id
Egy folyamatot a folyamatazonosító alapján határoz meg. A folyamatazonosító lekéréséhez futtassa a Get-Process
parancsmagot.
Típus: | Int32 |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Name
Egy folyamatot a folyamat neve alapján határoz meg. A folyamatnév lekéréséhez futtassa a Get-Process
parancsmagot. Folyamatneveket a Feladatkezelőben lévő folyamat Tulajdonságok párbeszédpanelén is lekérhet.
Típus: | String |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | False |
Helyettesítő karakterek elfogadása: | False |
-Process
A folyamatobjektum által megadott folyamat. Ennek a paraméternek a legegyszerűbb módja egy Get-Process
olyan parancs eredményeinek mentése, amely visszaadja a változóba bevinni kívánt folyamatot, majd ennek a paraméternek az értékeként adja meg a változót.
Típus: | Process |
Position: | 0 |
Alapértelmezett érték: | None |
Kötelező: | True |
Folyamatbemenet elfogadása: | True |
Helyettesítő karakterek elfogadása: | False |
Bevitelek
Jegyzetek
Enter-PSHostProcess
Nem adhatja meg annak a PowerShell-munkamenetnek a folyamatát, amelyben a parancsot futtatja. Megadhat azonban egy másik PowerShell-munkamenetet, vagy egy Olyan PowerShell ISE-munkamenetet, amely az éppen futó munkamenetével egy időben fut Enter-PSHostProcess
.
Enter-PSHostProcess
csak azokat a folyamatokat tudja megadni, amelyek a PowerShellt üzemeltetik. Vagyis betöltötték a PowerShell-motort.
Ha ki szeretne lépni egy folyamatból a folyamatból, írja be a kilépést, majd nyomja le az Enter billentyűt.
A PowerShell 7.1-et megelőzően az SSH-val való újraegyezés nem támogatja a másodlagos ugrásos távoli munkameneteket. Ez a képesség a WinRM-t használó munkamenetekre korlátozódott. A PowerShell 7.1 bármilyen interaktív távoli munkameneten belül lehetővé teszi Enter-PSSession
és Enter-PSHostProcess
használható.