Megosztás a következőn keresztül:


Enter-PSHostProcess

Egy helyi folyamattal csatlakozik egy interaktív munkamenethez, és egy interaktív munkamenetbe lép be.

Syntax

ProcessIdParameterSet (Alapértelmezett)

Enter-PSHostProcess
    [-Id] <Int32>
    [[-AppDomainName] <String>]
    [<CommonParameters>]

ProcessParameterSet

Enter-PSHostProcess
    [-Process] <Process>
    [[-AppDomainName] <String>]
    [<CommonParameters>]

ProcessNameParameterSet

Enter-PSHostProcess
    [-Name] <String>
    [[-AppDomainName] <String>]
    [<CommonParameters>]

PSHostProcessInfoParameterSet

Enter-PSHostProcess
    [-HostProcessInfo] <PSHostProcessInfo>
    [[-AppDomainName] <String>]
    [<CommonParameters>]

PipeNameParameterSet

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 olyan futtatóteret, amely hibakeresésre szolgál Debug-Runspace vagy Enable-RunspaceDebugfuttatásával.

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 a megadott névvel csak egy folyamat található, 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 Enter-PSHostProcess futtat a PowerShell-konzolon belül a PowerShell ISE folyamatának megadásához. Az eredményként kapott interaktív munkamenetben megtalálhatja a hibakereséshez használni kívánt futtatóteret a Get-Runspacefuttatásával, majd a futtatókörnyezet hibakeresésével.

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 Get-Runspacevisszaadott listából vegye figyelembe, hogy a futtatótér Állapot meg van nyitva, és rendelkezésre állási foglalt, ami azt jelenti, hogy a futtatótér továbbra is a hosszú ideig futó szkriptet futtatja. A Get-Runspace által visszaadott runspace-objektumok rendelkeznek egy NoteProperty is, amelyet ScriptStackTrace a futó parancsveremhez, ha elérhető.

[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:\>

A Debug-Runspace parancsmag futtatásával interaktív hibakeresési munkamenetet indíthat ezzel a futtatótérrel.

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. Ezzel visszakerül a PS C:\> parancssorba.

[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, DefaultAppDomainhasznál. Az alkalmazás tartományneveinek megjelenítése Get-PSHostProcessInfo használatával.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:DefaultAppDomain
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ProcessIdParameterSet
Position:1
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
ProcessParameterSet
Position:1
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
ProcessNameParameterSet
Position:1
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False
PSHostProcessInfoParameterSet
Position:1
Kötelező:False
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-CustomPipeName

Lekéri vagy beállítja az egyéni elnevezett csőnevet, amelyhez csatlakozni szeretne. Ezt általában a pwsh -CustomPipeNameegyütt használják.

Ez a paraméter a PowerShell 6.2-ben lett bevezetve.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

PipeNameParameterSet
Position:Named
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-HostProcessInfo

Egy PSHostProcessInfo objektumot ad meg, amely a PowerShell-lel csatlakoztatható. Az objektum lekéréséhez használja a Get-PSHostProcessInfo.

Paramétertulajdonságok

Típus:PSHostProcessInfo
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

PSHostProcessInfoParameterSet
Position:0
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Id

Egy folyamatot a folyamatazonosító alapján határoz meg. Folyamatazonosító lekéréséhez futtassa a Get-Process parancsmagot.

Paramétertulajdonságok

Típus:Int32
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ProcessIdParameterSet
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték: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.

Paramétertulajdonságok

Típus:String
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ProcessNameParameterSet
Position:0
Kötelező:True
Folyamatból származó érték:False
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

-Process

A folyamatobjektum által megadott folyamat. Ennek a paraméternek a legegyszerűbb módja egy Get-Process 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.

Paramétertulajdonságok

Típus:Process
Alapértelmezett érték:None
Támogatja a helyettesítő karaktereket:False
DontShow:False

Paraméterkészletek

ProcessParameterSet
Position:0
Kötelező:True
Folyamatból származó érték:True
Folyamatból származó érték tulajdonságnév alapján:False
Fennmaradó argumentumokból származó érték:False

CommonParameters

Ez a parancsmag a következő gyakori paramétereket támogatja: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction és -WarningVariable. További információért lásd about_CommonParameters.

Bevitelek

Process

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 a Enter-PSHostProcessfuttatási munkamenetével egy időben fut.

Enter-PSHostProcess csak a PowerShellt futtató folyamatokat adhatja meg. Vagyis betöltötték a PowerShell-motort.

Ha ki szeretne lépni egy folyamatból, írja be kilépési, majd nyomja le Enterbillentyű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 lehetővé teszi, hogy Enter-PSSession és Enter-PSHostProcess bármilyen interaktív távoli munkameneten belül működjön.