Compartir a través de


Enter-PSHostProcess

Se conecta a y entra en una sesión interactiva con un proceso local.

Sintaxis

ProcessIdParameterSet (valor predeterminado)

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>]

Description

El cmdlet Enter-PSHostProcess se conecta y entra en una sesión interactiva con un proceso local.

En lugar de crear un nuevo proceso para hospedar Windows PowerShell y ejecutar una sesión remota, la sesión interactiva remota se ejecuta en un proceso existente que ya ejecuta Windows PowerShell. Al interactuar con una sesión remota en un proceso especificado, puede enumerar los espacios de ejecución en ejecución y, a continuación, seleccionar un espacio de ejecución para depurar mediante la ejecución de Debug-Runspace o Enable-RunspaceDebug.

El proceso que desea especificar debe hospedar Windows PowerShell (System.Management.Automation.dll). Debe ser miembro del grupo Administradores en el equipo en el que se encuentra el proceso o debe ser el usuario que ejecuta el script que inició el proceso.

Después de seleccionar un espacio de ejecución para depurar, se abre una sesión de depuración remota para el espacio de ejecución si está ejecutando actualmente un comando o se detiene en el depurador. Después, puede depurar el script de espacio de ejecución de la misma manera que depuraría otros scripts de sesión remota.

Desasocie de una sesión de depuración y, a continuación, la sesión interactiva con el proceso, ejecutando salir dos veces o detener la ejecución del script ejecutando el comando quit del depurador existente.

Si especifica un proceso mediante el parámetro Name y solo se encuentra un proceso con el nombre especificado, se escribe el proceso. Si se encuentra más de un proceso con el nombre especificado, Windows PowerShell devuelve un error y enumera todos los procesos encontrados con el nombre especificado.

Para admitir la asociación a procesos en equipos remotos, el cmdlet Enter-PSHostProcess está habilitado en un equipo remoto especificado, de modo que pueda asociarse a un proceso local dentro de una sesión remota de Windows PowerShell.

Ejemplos

Ejemplo 1: Iniciar la depuración de un espacio de ejecución en el proceso de Windows PowerShell ISE

En este ejemplo, se ejecuta Enter-PSHostProcess desde la consola de Windows PowerShell para entrar en el proceso ISE de Windows PowerShell. En la sesión interactiva resultante, puede encontrar un espacio de ejecución que desee depurar ejecutando Get-Runspace y, a continuación, depurar el espacio de ejecución.

PS C:\> Enter-PSHostProcess -Name powershell_ise
[Process:1520]: PS C:\Test\Documents>

Next, get available runspaces within the process you have entered.
PS C:\> [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

# The runspace objects returned by **Get-Runspace** also have a NoteProperty
# called **ScriptStackTrace** of the running command stack, if available.Next,
# debug runspace ID 4, that is running another user's long-running script. From
# the list returned from **Get-Runspace**, note that the runspace state is
# **Opened**, and **Availability** is **Busy**, meaning that the runspace is
# still running the long-running script.

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

# Start an interactive debugging session with this runspace by running the
# Debug-Runspace cmdlet.

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

# After you are finished debugging, allow the script to continue running without
# the debugger attached by running the **exit** debugger command. Alternatively,
# you can quit the debugger with the **q** or **Stop** commands.

PS C:\> [Process:346]: [RSDBG: 3]: PS C:\> > exit
[Process:1520]: PS C:\>

# When you are finished working in the process, exit the process by running the
# Exit-PSHostProcess cmdlet. This returns you to the PS C:\> prompt.

PS C:\> [Process:1520]: PS C:\>  Exit-PSHostProcess
PS C:\>

Parámetros

-AppDomainName

El cmdlet Enter-PSHostProcess se conecta y entra en una sesión interactiva con un proceso local.

En lugar de crear un nuevo proceso para hospedar Windows PowerShell y ejecutar una sesión remota, la sesión interactiva remota se ejecuta en un proceso existente que ya ejecuta Windows PowerShell. Al interactuar con una sesión remota en un proceso especificado, puede enumerar los espacios de ejecución en ejecución y, a continuación, seleccionar un espacio de ejecución para depurar mediante la ejecución de Debug-Runspace o Enable-RunspaceDebug.

El proceso que desea especificar debe hospedar Windows PowerShell (System.Management.Automation.dll). Debe ser miembro del grupo Administradores en el equipo en el que se encuentra el proceso o debe ser el usuario que ejecuta el script que inició el proceso.

Después de seleccionar un espacio de ejecución para depurar, se abre una sesión de depuración remota para el espacio de ejecución si está ejecutando actualmente un comando o se detiene en el depurador. Después, puede depurar el script de espacio de ejecución de la misma manera que depuraría otros scripts de sesión remota.

Desasocie de una sesión de depuración y, a continuación, la sesión interactiva con el proceso, ejecutando salir dos veces o detener la ejecución del script ejecutando el comando quit del depurador existente.

Si especifica un proceso mediante el parámetro Name y solo se encuentra un proceso con el nombre especificado, se escribe el proceso. Si se encuentra más de un proceso con el nombre especificado, Windows PowerShell devuelve un error y enumera todos los procesos encontrados con el nombre especificado.

Para admitir la asociación a procesos en equipos remotos, el cmdlet Enter-PSHostProcess está habilitado en un equipo remoto especificado, de modo que pueda asociarse a un proceso local dentro de una sesión remota de Windows PowerShell.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

(All)
Posición:1
Obligatorio:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-HostProcessInfo

El cmdlet Enter-PSHostProcess se conecta y entra en una sesión interactiva con un proceso local.

En lugar de crear un nuevo proceso para hospedar Windows PowerShell y ejecutar una sesión remota, la sesión interactiva remota se ejecuta en un proceso existente que ya ejecuta Windows PowerShell. Al interactuar con una sesión remota en un proceso especificado, puede enumerar los espacios de ejecución en ejecución y, a continuación, seleccionar un espacio de ejecución para depurar mediante la ejecución de Debug-Runspace o Enable-RunspaceDebug.

El proceso que desea especificar debe hospedar Windows PowerShell (System.Management.Automation.dll). Debe ser miembro del grupo Administradores en el equipo en el que se encuentra el proceso o debe ser el usuario que ejecuta el script que inició el proceso.

Después de seleccionar un espacio de ejecución para depurar, se abre una sesión de depuración remota para el espacio de ejecución si está ejecutando actualmente un comando o se detiene en el depurador. Después, puede depurar el script de espacio de ejecución de la misma manera que depuraría otros scripts de sesión remota.

Desasocie de una sesión de depuración y, a continuación, la sesión interactiva con el proceso, ejecutando salir dos veces o detener la ejecución del script ejecutando el comando quit del depurador existente.

Si especifica un proceso mediante el parámetro Name y solo se encuentra un proceso con el nombre especificado, se escribe el proceso. Si se encuentra más de un proceso con el nombre especificado, Windows PowerShell devuelve un error y enumera todos los procesos encontrados con el nombre especificado.

Para admitir la asociación a procesos en equipos remotos, el cmdlet Enter-PSHostProcess está habilitado en un equipo remoto especificado, de modo que pueda asociarse a un proceso local dentro de una sesión remota de Windows PowerShell.

Propiedades de parámetro

Tipo:PSHostProcessInfo
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

PSHostProcessInfoParameterSet
Posición:0
Obligatorio:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Id

Especifica un proceso por el identificador de proceso. Para obtener un identificador de proceso, ejecute el cmdlet Get-Process.

Propiedades de parámetro

Tipo:Int32
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ProcessIdParameterSet
Posición:0
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Name

Especifica un proceso por su nombre. Para obtener un nombre de proceso, ejecute el cmdlet Get-Process. También puede obtener nombres de proceso en el cuadro de diálogo Propiedades de un proceso en el Administrador de tareas.

Propiedades de parámetro

Tipo:String
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ProcessNameParameterSet
Posición:0
Obligatorio:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

-Process

Especifica un proceso mediante el objeto de proceso. La manera más sencilla de usar este parámetro es guardar los resultados de un comando Get-Process que devuelve el proceso que desea escribir en una variable y, a continuación, especificar la variable como valor de este parámetro.

Propiedades de parámetro

Tipo:Process
Valor predeterminado:None
Admite caracteres comodín:False
DontShow:False

Conjuntos de parámetros

ProcessParameterSet
Posición:0
Obligatorio:True
Valor de la canalización:True
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes:False

CommonParameters

Este cmdlet admite los parámetros comunes: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction y -WarningVariable. Para obtener más información, vea about_CommonParameters.

Entradas

Process

Notas

  • enter-PSHostProcess no puede escribir el proceso de la sesión de Windows PowerShell en la que ejecuta el comando. Sin embargo, puede escribir el proceso de otra sesión de Windows PowerShell o una sesión de Windows PowerShell ISE que se ejecuta al mismo tiempo que la sesión en la que se ejecuta Enter-PSHostProcess.

    Enter-PSHostProcess solo puede especificar los procesos que hospedan Windows PowerShell. Es decir, han cargado el motor de Windows PowerShell.

    Para salir de un proceso desde el proceso, escriba exit y presione Entrar.