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 deDebug-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.