Usar pontos de interrupção em scripts do Windows PowerShell
Um ponto de interrupção pausa um script e fornece um prompt interativo. No prompt interativo, você pode consultar ou modificar valores de variável e continuar o script. Você usará os pontos de interrupção para solucionar problemas de scripts, quando não se comportarem conforme o esperado.
Em um prompt do Windows PowerShell, você pode definir os pontos de interrupção usando o cmdlet Set-PSBreakPoint. Os pontos de interrupção podem ser definidos de acordo com a linha do script, em um comando específico que está sendo usado ou em uma variável específica que está sendo usada. Este exemplo define um ponto de interrupção em uma linha específica de um script:
Set-PSBreakPoint -Script "MyScript.ps1" -Line 23
Ao definir um ponto de interrupção com base em uma linha, tenha cuidado ao editar o script. Adicionar ou remover linhas pode afastar o ponto de interrupção do código pretendido inicialmente.
Este exemplo define um ponto de interrupção para um comando específico:
Set-PSBreakPoint -Command "Set-ADUser" -Script "MyScript.ps1"
Ao definir um ponto de interrupção de acordo com um comando, você pode incluir caracteres curinga. Por exemplo, você pode usar o valor *-ADUser para disparar um ponto de interrupção para Get-ADUser, Set-ADUser, New-ADUser e Remove-ADUser.
Para definir um ponto de interrupção para uma variável específica, faça o seguinte:
Set-PSBreakPoint -Variable "computer" -Script "MyScript.ps1" -Mode ReadWrite
Você pode usar o -Mode parâmetro para variáveis para identificar se deseja interromper quando o valor da variável é lido, gravado ou ambos. Os valores válidos são Read, Write e ReadWrite.
A ação padrão para Set-PSBreakPoint é interromper, que fornece o prompt interativo. No entanto, você pode usar o parâmetro -Action para especificar um código que será executado em seu lugar. Com -Action, você pode avaliar valores variáveis e interromper somente quando um valor ficar fora de um intervalo específico.
Observação
Os pontos de interrupção são armazenados na memória, e não como parte do script. Os pontos de interrupção não são compartilhados entre vários prompts do Windows PowerShell e são removidos quando o prompt é fechado.
Observação
O ISE do Windows PowerShell não está mais em desenvolvimento ativo de recursos e só dá suporte ao Windows PowerShell 5.1 e anteriores. Para o desenvolvimento de scripts, Visual Studio Code com a extensão do PowerShell é o editor recomendado.
ISE do PowerShell
No ISE (Ambiente de Script Integrado do Windows PowerShell), você pode definir pontos de interrupção de acordo com a linha. As opções relacionadas aos pontos de interrupção estão no menu Depurar. As linhas configuradas como pontos de interrupção estão em destaque, facilitando a identificação. No Windows PowerShell ISE, à medida que você adiciona ou remove linhas, os pontos de interrupção são atualizados automaticamente com o número de linha correto.
Visual Studio Code
O Microsoft Visual Studio Code permite definir e usar pontos de interrupção com opções mais avançadas do que o ISE do PowerShell. Você pode configurar pontos de interrupção condicionais, que são disparados quando as variáveis estão fora de um intervalo ou correspondem a um valor específico.
Visual Studio Code também facilita a inspeção do conteúdo variável. Quando um ponto de interrupção é disparado, o depurador mostra uma seção de variáveis que exibe o conteúdo de cada variável.