Debug-Runspace
Inicia uma sessão de depuração interativa com um espaço de execução.
Syntax
Debug-Runspace
[-Runspace] <Runspace>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Runspace
[-Name] <String>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Runspace
[-Id] <Int32>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Debug-Runspace
[-InstanceId] <Guid>
[-BreakAll]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
O Debug-Runspace
cmdlet inicia uma sessão de depuração interativa com um espaço de execução ativo local ou remoto. Pode encontrar um espaço de execução que pretende depurar ao executar Get-Process
primeiro para localizar processos associados ao PowerShell e, em seguida Enter-PSHostProcess
, com o ID do processo especificado no parâmetro ID para anexar ao processo e, em seguida Get-Runspace
, listar os espaços de execução no processo de anfitrião do PowerShell.
Depois de selecionar um espaço de execução para depurar, se o runspace estiver atualmente a executar um comando ou script, ou se o script tiver parado num ponto de interrupção, o PowerShell abre uma sessão de depurador remoto para o espaço de execução. Pode depurar o script de área de execução da mesma forma que os scripts de sessão remota são depurados.
Só pode anexar a um processo de anfitrião do PowerShell se for um administrador no computador que está a executar o processo ou se estiver a executar o script que pretende depurar. Além disso, não pode introduzir o processo de anfitrião que está a executar a sessão atual do PowerShell. Só pode introduzir um processo de anfitrião que esteja a executar uma sessão do PowerShell diferente.
Exemplos
Exemplo 1: Depurar um espaço de execução remoto
Neste exemplo, vai depurar um espaço de execução aberto num computador remoto WS10TestServer. Na primeira linha do comando, é executado Get-Process
no computador remoto e filtra Windows PowerShell processos de anfitrião. Neste exemplo, quer depurar o ID do processo 1152, o processo de anfitrião ise 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:\> >
No segundo comando, execute Enter-PSSession
para abrir uma sessão remota no WS10TestServer. No terceiro comando, anexa ao Windows PowerShell processo de anfitrião ISE em execução no servidor remoto ao executar Enter-PSHostProcess
e especificar o ID do processo de anfitrião que obteve no primeiro comando, 1152.
No quarto comando, lista os espaços de execução disponíveis para o ID de processo 1152 ao executar Get-Runspace
.
Anote o número de ID do espaço de execução Ocupado; está a executar um script que pretende depurar.
No último comando, começa a depurar um espaço de execução aberto que está a executar um script, TestWFVar1.ps1
, ao executar Debug-Runspace
e identificar o espaço de execução pelo respetivo ID, 2, ao adicionar o parâmetro ID . Uma vez que existe um ponto de interrupção no script, o depurador é aberto.
Parâmetros
-BreakAll
Permite-lhe interromper imediatamente a localização atual quando o depurador é anexado.
Este parâmetro foi adicionado ao PowerShell 7.2.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Solicita a sua confirmação antes de executar o cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Especifica o número de ID de um espaço de execução. Pode executar Get-Runspace
para mostrar os IDs do espaço de execução.
Type: | Int32 |
Position: | 0 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InstanceId
Especifica um espaço de execução pelo respetivo ID de instância, um GUID que pode mostrar ao executar Get-Runspace
.
Type: | Guid |
Position: | 0 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Especifica um espaço de execução pelo respetivo nome. Pode executar Get-Runspace
para mostrar os nomes dos runspaces.
Type: | String |
Position: | 0 |
Default value: | None |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Runspace
Especifica um objeto de espaço de execução. A forma mais simples de fornecer um valor para este parâmetro é especificar uma variável que contenha os resultados de um comando filtrado Get-Runspace
.
Type: | Runspace |
Position: | 0 |
Default value: | None |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Apresenta o que aconteceria mediante a execução do cmdlet. O cmdlet não é executado.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Pode encaminhar os resultados de um Get-Runspace
comando para este cmdlet.
Notas
Debug-Runspace
funciona em áreas de execução que estão no estado Aberto. Se o estado de um espaço de execução mudar de Aberto para outro estado, esse espaço de execução é removido automaticamente da lista em execução. Uma área de execução só é adicionada à lista em execução se cumprir os seguintes critérios.
- Se for proveniente de Invoke-Command; ou seja, tem um
Invoke-Command
ID de GUID. - Se for proveniente de
Debug-Runspace
; ou seja, tem umDebug-Runspace
ID de GUID. - Se for proveniente de um fluxo de trabalho do PowerShell e o ID da tarefa do fluxo de trabalho for o mesmo que o ID do fluxo de trabalho do depurador ativo atual.
Ligações Relacionadas
Comentários
Submeter e ver comentários