Debug-Runspace
Inicia uma sessão de depuração interativa com um espaço de execução.
Sintaxe
RunspaceParameterSet (Predefinição)
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
O cmdlet Debug-Runspace inicia uma sessão de depuração interativa com um espaço de execução ativo local ou remoto. Você pode encontrar um espaço de execução que deseja depurar executando primeiro Get-Process para localizar processos associados ao PowerShell, depois Enter-PSHostProcess com a ID do processo especificada no parâmetro Id para anexar ao processo e, em seguida, Get-Runspace listar espaços de execução dentro do processo de host do PowerShell.
Depois de selecionar um espaço de execução para depurar, se o espaço de execução estiver atualmente executando um comando ou script, ou se o script tiver parado em um ponto de interrupção, o PowerShell abrirá uma sessão de depurador remoto para o espaço de execução. Você pode depurar o script de espaço de execução da mesma forma que os scripts de sessão remota são depurados.
Você só pode ligar a um processo de host do PowerShell se for um administrador no computador onde o processo está a ser executado, ou se estiver a executar o script que pretende 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 espaço de execução remoto
Neste exemplo, você depura um espaço de execução que está aberto em um computador remoto, WS10TestServer. Na primeira linha do comando, você executa Get-Process no computador remoto e filtra os processos de host do Windows PowerShell. Neste exemplo, você deseja depurar a ID do processo 1152, o processo de host ISE do 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, liga-se ao processo de anfitrião do Windows PowerShell ISE que está a ser executado no servidor remoto, executando Enter-PSHostProcesse especificando o ID do processo de anfitrião que obteve no primeiro comando, 1152.
No quarto comando, você lista os espaços de execução disponíveis para o processo ID 1152 executando Get-Runspace.
Você anota o número de ID do espaço de execução ocupado; ele está executando um script que você deseja depurar.
No último comando, você começa a depurar um espaço de execução aberto que está executando um script, TestWFVar1.ps1, executando Debug-Runspacee identificando o espaço de execução por sua ID, 2, adicionando o parâmetro Id. Como há um ponto de interrupção no script, o depurador é aberto.
Parâmetros
-BreakAll
Permite interromper imediatamente no local atual quando o depurador é ligado.
Esse parâmetro foi adicionado no PowerShell 7.2.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Confirm
Solicita confirmação antes de executar o cmdlet.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | True |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | Cf. |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Id
Especifica o número de ID de um espaço de execução. Você pode executar Get-Runspace para mostrar IDs de ambiente de execução.
Propriedades dos parâmetros
| Tipo: | Int32 |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
IdParameterSet
| Position: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-InstanceId
Especifica um espaço de execução pela sua ID de instância, um GUID que pode ser mostrado ao executar Get-Runspace.
Propriedades dos parâmetros
| Tipo: | Guid |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
InstanceIdParameterSet
| Position: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Name
Especifica um espaço de execução pelo nome. Você pode executar Get-Runspace para mostrar os nomes dos espaços de execução.
Propriedades dos parâmetros
| Tipo: | String |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
NameParameterSet
| Position: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
-Runspace
Especifica um objeto de espaço de execução. 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.
Propriedades dos parâmetros
| Tipo: | Runspace |
| Default value: | None |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
Conjuntos de parâmetros
RunspaceParameterSet
| Position: | 0 |
| Obrigatório: | True |
| Valor do pipeline: | True |
| Valor do pipeline por nome de propriedade: | True |
| Valor dos restantes argumentos: | False |
-WhatIf
Mostra o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Propriedades dos parâmetros
| Tipo: | SwitchParameter |
| Default value: | True |
| Suporta carateres universais: | False |
| NãoMostrar: | False |
| Aliases: | Wi |
Conjuntos de parâmetros
(All)
| Position: | Named |
| Obrigatório: | False |
| Valor do pipeline: | False |
| Valor do pipeline por nome de propriedade: | False |
| Valor dos restantes argumentos: | False |
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.
Entradas
Runspace
Você pode canalizar os resultados de um comando Get-Runspace para este cmdlet.
Notas
Debug-Runspace funciona em espaços de execução que estão no estado Aberto. Se um estado de espaço de execução mudar de Aberto para outro estado, esse espaço de execução será removido automaticamente da lista em execução. Um espaço de execução é adicionado à lista de execução somente se atender aos seguintes critérios.
- Se for proveniente de Invoke-Command; ou seja, tem um ID GUID
Invoke-Command. - Se vier de
Debug-Runspace, isto é, se possuir um GUID com o IDDebug-Runspace. - Se estiver a vir de um fluxo de trabalho do PowerShell e a sua ID de trabalho for a mesma que a ID de trabalho do fluxo do depurador ativo atual.