Compartir vía


Debug-Runspace

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

Sintaxis

RunspaceParameterSet (Es el valor predeterminado).

Debug-Runspace
    [-Runspace] <Runspace>
    [-BreakAll]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

NameParameterSet

Debug-Runspace
    [-Name] <String>
    [-BreakAll]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

IdParameterSet

Debug-Runspace
    [-Id] <Int32>
    [-BreakAll]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InstanceIdParameterSet

Debug-Runspace
    [-InstanceId] <Guid>
    [-BreakAll]
    [-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 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 del espacio de ejecución de la misma manera que se depuran los scripts de sesiones remotas.

Solo puede asociar a un proceso de host de PowerShell si es administrador en el equipo que ejecuta el proceso o si está ejecutando el script que desea depurar. Además, no puede entrar en el proceso anfitrión que ejecuta la sesión actual de PowerShell. Solo puede acceder a un proceso de host que esté ejecutando una sesión de PowerShell diferente.

Ejemplos

Ejemplo 1: Depurar un espacio de ejecución remoto

En este ejemplo, depuras un entorno 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, desea depurar el identificador de proceso 1152, el proceso de host de ISE de Windows PowerShell.

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

[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 el segundo comando, ejecutará Enter-PSSession para abrir una sesión remota en WS10TestServer. En el tercer comando, usted se conecta al proceso de host de Windows PowerShell ISE que se ejecuta en el servidor remoto al ejecutar Enter-PSHostProcessy especificar el identificador del proceso de host obtenido 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. Observe el número de ID del espacio de ejecución ocupado; está ejecutando un script que desea depurar.

En el último comando, inicias la depuración de un espacio de ejecución abierto que está ejecutando un script, TestWFVar1.ps1, ejecutando Debug-Runspacee identificando el espacio de ejecución por su Id, 2, al agregar el parámetro Id de . Dado que hay un punto de interrupción en el script, se abre el depurador.

Parámetros

-BreakAll

Permite interrumpir inmediatamente en la ubicación actual cuando el depurador se asocia.

Este parámetro se agregó en PowerShell 7.2.

Propiedades del parámetro

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

Conjuntos de parámetros

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

-Confirm

Le pide confirmación antes de ejecutar el cmdlet.

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:True
Admite caracteres comodín:False
DontShow:False
Alias:cf

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades del parámetro

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

Conjuntos de parámetros

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

-InstanceId

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

Propiedades del parámetro

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

Conjuntos de parámetros

InstanceIdParameterSet
Posición:0
Mandatory: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 espacio de ejecución por su nombre. Puede ejecutar Get-Runspace para mostrar los nombres de los espacios de ejecución.

Propiedades del parámetro

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

Conjuntos de parámetros

NameParameterSet
Posición:0
Mandatory:True
Valor de la canalización:False
Valor de la canalización por nombre de propiedad:False
Valor de los argumentos restantes: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.

Propiedades del parámetro

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

Conjuntos de parámetros

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

-WhatIf

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

Propiedades del parámetro

Tipo:SwitchParameter
Valor predeterminado:True
Admite caracteres comodín:False
DontShow:False
Alias:Wi

Conjuntos de parámetros

(All)
Posición:Named
Mandatory:False
Valor de la canalización:False
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

Runspace

Puede canalizar los resultados de un comando Get-Runspace a este cmdlet.

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 ID de trabajo es el mismo que el ID del trabajo del flujo de trabajo que el depurador activo tiene actualmente.