Debug-Runspace
Inicia uma sessão de depuração interativa com um runspace.
Sintaxe
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
O cmdlet Debug-Runspace
inicia uma sessão de depuração interativa com um runspace ativo local ou remoto. Você pode encontrar um runspace que deseja depurar primeiro executando
Depois de selecionar um runspace para depurar, se o runspace estiver executando um comando ou script no momento ou se o script tiver parado em um ponto de interrupção, o PowerShell abrirá uma sessão de depurador remoto para o runspace. Você pode depurar o script de runspace da mesma forma que os scripts de sessão remota são depurados.
Você só poderá anexar a um processo de host do PowerShell se você for um administrador no computador que está executando o processo ou se estiver executando o script que deseja depurar. Além disso, você não pode inserir o processo de host que está executando a sessão atual do PowerShell. Você só pode inserir um processo de host que esteja executando uma sessão diferente do PowerShell.
Exemplos
Exemplo 1: Depurar um runspace 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:\> >
Neste exemplo, você depura um runspace aberto em um computador remoto, WS10TestServer. Na primeira linha do comando, você executa Get-Process
no computador remoto e filtra para processos de host do Windows PowerShell. Neste exemplo, você deseja depurar a ID do processo 1152, o processo de host ISE do Windows PowerShell.
No segundo comando, você executa Enter-PSSession
para abrir uma sessão remota no WS10TestServer. No terceiro comando, você anexa ao processo de host ise do Windows PowerShell em execução no servidor remoto executando Enter-PSHostProcess
e especificando a ID do processo de host obtido no primeiro comando, 1152.
No quarto comando, você lista os runspaces disponíveis para a ID do processo 1152 executando Get-Runspace
.
Você observa o número de ID do runspace Ocupado; ele está executando um script que você deseja depurar.
No último comando, você começa a depurar um runspace aberto que está executando um script, TestWFVar1.ps1, executando Debug-Runspace
e identificando o runspace por sua ID, 2, adicionando o parâmetro ID. Como há um ponto de interrupção no script, o depurador é aberto.
Parâmetros
-Confirm
Solicita a confirmação antes de executar o cmdlet.
Tipo: | SwitchParameter |
Aliases: | cf |
Cargo: | Named |
Valor padrão: | True |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Id
Especifica o número de ID de um runspace. Você pode executar Get-Runspace
para mostrar IDs de runspace.
Tipo: | Int32 |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-InstanceId
Especifica um runspace por sua ID de instância, um GUID que você pode mostrar executando Get-Runspace
.
Tipo: | Guid |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Name
Especifica um runspace pelo nome. Você pode executar Get-Runspace
para mostrar os nomes dos runspaces.
Tipo: | String |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-Runspace
Especifica um objeto de runspace. A maneira mais simples de fornecer um valor para esse parâmetro é especificar uma variável que contenha os resultados de um comando Get-Runspace
filtrado.
Tipo: | Runspace |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | True |
Aceitar a entrada de pipeline: | True |
Aceitar caracteres curinga: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Tipo: | SwitchParameter |
Aliases: | wi |
Cargo: | Named |
Valor padrão: | True |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
Você pode canalizar os resultados de um comando Get-Runspace
para Debug-Runspace.
Observações
Debug-Runspace
funciona em runspaces que estão no estado Aberto. Se um estado de runspace for alterado de Aberto para outro estado, esse runspace será removido automaticamente da lista em execução. Um runspace será adicionado à lista em execução somente se atender aos critérios a seguir.
- Se ele for proveniente de Invoke-Command; ou seja, ele tem uma ID do GUID
Invoke-Command
. - Se ele vem de
Debug-Runspace
; ou seja, ele tem uma ID do GUIDDebug-Runspace
. - Se ele for proveniente de um fluxo de trabalho do PowerShell e sua ID de trabalho de fluxo de trabalho for igual à ID do trabalho de fluxo de trabalho do depurador ativo atual.