Usar os pontos de interrupção nos 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. O exemplo a seguir descreve como definir 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 de acordo com uma linha, você precisa ter cuidado ao editar o script. À medida que você edita o script, pode adicionar ou remover linhas, e o ponto de interrupção não afetará o mesmo código pretendido inicialmente.
O exemplo a seguir descreve como definir um ponto de interrupção em 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 parâmetro -Mode para variáveis, para identificar se deseja interromper no momento em que o valor da variável for 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, em vez disso, você pode usar o parâmetro -Action para especificar o código executado. Isso permite executar operações complexas, como avaliar valores de variável, e interromper apenas se o valor estiver 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.
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. Além disso, no Windows PowerShell ISE, à medida que você adiciona ou remove linhas do script, 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.
As informações sobre o conteúdo de variável também são mais fáceis de encontrar no Visual Studio Code. Depois que um ponto de interrupção é disparado e você está no depurador, uma seção de variáveis exibe o conteúdo da variável para que você não precise interrogá-las.