Compartir a través de


Debug-Runspace

Inicia una sesión de depuración interactiva con un espacio de ejecución.

Sintaxis

Debug-Runspace
     [-Runspace] <Runspace>
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Runspace
     [-Name] <String>
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Runspace
     [-Id] <Int32>
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Runspace
     [-InstanceId] <Guid>
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Description

El cmdlet Debug-Runspace inicia una sesión de depuración interactiva con un espacio de ejecución activo local o remoto. Puede encontrar un espacio de ejecución que quiera depurar ejecutando primero Get-Process para buscar procesos asociados a PowerShell y, a continuación, Enter-PSHostProcess con el identificador de proceso especificado en el parámetro id. de id. para asociar al proceso y, a continuación, Get-Runspace para enumerar los espacios de ejecución dentro del proceso de host de PowerShell.

Después de seleccionar un espacio de ejecución para depurar, si el espacio de ejecución está ejecutando actualmente un comando o script, o si el script se ha detenido en un punto de interrupción, PowerShell abre una sesión del depurador remoto para el espacio de ejecución. Puede depurar el script de espacio de ejecución de la misma manera que se depuran los scripts de sesión remota.

Solo puede asociarse a un proceso de host de PowerShell si es administrador en el equipo que ejecuta el proceso o ejecuta el script que desea depurar. Además, no puede escribir el proceso de host que ejecuta la sesión actual de PowerShell. Solo puede escribir un proceso de host que ejecute una sesión de PowerShell diferente.

Ejemplos

Ejemplo 1: Depuración de un espacio de ejecución remoto

PS C:\> Get-Process -ComputerName "WS10TestServer" -Name "*powershell*"

Handles      WS(K)   VM(M)      CPU(s)    Id  ProcessName
-------      -----   -----      ------    --  -----------
    377      69912     63     2.09      2420  powershell
    399     123396    829     4.48      1152  powershell_ise

PS C:\> Enter-PSSession -ComputerName "WS10TestServer"
[WS10TestServer]:PS C:\> Enter-PSHostProcess -Id 1152
[WS10TestServer:][Process:1152]: PS C:\Users\Test\Documents> Get-Runspace

Id Name            ComputerName    Type          State         Availability
-- ----            ------------    ----          -----         ------------
 1 Runspace1       WS10TestServer  Remote        Opened        Available
 2 RemoteHost      WS10TestServer  Remote        Opened        Busy

PS C:\> [WS10TestServer][Process:1152]: PS C:\Users\Test\Documents> Debug-Runspace -Id 2

Hit Line breakpoint on 'C:\TestWFVar1.ps1:83'
At C:\TestWFVar1.ps1:83 char:1
+ $scriptVar = "Script Variable"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[Process:1152]: [RSDBG: 2]: PS C:\> >

En este ejemplo, depura un espacio de ejecución que está abierto en un equipo remoto, WS10TestServer. En la primera línea del comando, ejecute Get-Process en el equipo remoto y filtre los procesos de host de Windows PowerShell. En este ejemplo, quiere depurar el identificador de proceso 1152, el proceso de host de ISE de Windows PowerShell.

En el segundo comando, ejecutará Enter-PSSession para abrir una sesión remota en WS10TestServer. En el tercer comando, se adjunta al proceso de host de Windows PowerShell ISE que se ejecuta en el servidor remoto ejecutando Enter-PSHostProcessy especificando el identificador del proceso de host que obtuvo en el primer comando, 1152.

En el cuarto comando, se enumeran los espacios de ejecución disponibles para el identificador de proceso 1152 mediante la ejecución de Get-Runspace. Anote el número de identificador del espacio de ejecución Ocupado; ejecuta un script que desea depurar.

En el último comando, se inicia la depuración de un espacio de ejecución abierto que ejecuta un script, TestWFVar1.ps1, mediante la ejecución de y la identificación del espacio de ejecución por su identificador, 2, agregando el parámetro id de . Dado que hay un punto de interrupción en el script, se abre el depurador.

Parámetros

-Confirm

Le pide confirmación antes de ejecutar el cmdlet.

Tipo:SwitchParameter
Alias:cf
Posición:Named
Valor predeterminado:True
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Id

Especifica el número de identificador de un espacio de ejecución. Puede ejecutar Get-Runspace para mostrar identificadores de espacio de ejecución.

Tipo:Int32
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-InstanceId

Especifica un espacio de ejecución por su identificador de instancia, un GUID que puede mostrar ejecutando Get-Runspace.

Tipo:Guid
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Name

Especifica un espacio de ejecución por su nombre. Puede ejecutar Get-Runspace para mostrar los nombres de los espacios de ejecución.

Tipo:String
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-Runspace

Especifica un objeto de espacio de ejecución. La manera más sencilla de proporcionar un valor para este parámetro es especificar una variable que contenga los resultados de un comando Get-Runspace filtrado.

Tipo:Runspace
Posición:0
Valor predeterminado:None
Requerido:True
Aceptar entrada de canalización:True
Aceptar caracteres comodín:False

-WhatIf

Muestra lo que sucedería si el cmdlet se ejecuta. El cmdlet no se ejecuta.

Tipo:SwitchParameter
Alias:wi
Posición:Named
Valor predeterminado:True
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

Runspace

Puede canalizar los resultados de un comando Get-Runspace para Debug-Runspace.

Notas

Debug-Runspace funciona en los espacios de ejecución que están en estado Abierto. Si un estado de espacio de ejecución cambia de Abierto a otro estado, ese espacio de ejecución se quita automáticamente de la lista de ejecución. Solo se agrega un espacio de ejecución a la lista en ejecución si cumple los siguientes criterios.

  • Si procede de Invoke-Command; es decir, tiene un identificador GUID de Invoke-Command.
  • Si procede de Debug-Runspace; es decir, tiene un identificador GUID de Debug-Runspace.
  • Si procede de un flujo de trabajo de PowerShell y su identificador de trabajo de flujo de trabajo es el mismo que el identificador de trabajo del flujo de trabajo del depurador activo actual.