Итак, я придумал эту простую функцию PowerShell, которая делает эту работу
Function Set-PSBreakPointHere {
$line = [int] $Myinvocation.ScriptlineNumber + 1 # following line
$script = $Myinvocation.PSCommandPath
# set a break point that pauses execution
Set-PSBreakpoint -Line $line -Script $script | Out-Null
# set a break point that removes the previous break and itself
Set-PSBreakpoint -Line $line -Script $script -Action { $breakPOint = Get-PSBreakpoint -Script $script | Where Line -EQ $line | Remove-PSBreakpoint }.GetNewClosure() | Out-Null
}
Эта функция создает две точки останова на строке в сценарии, где она вызывается. Одна из точек останова останавливает выполнение и входит в отладчик (это то, что я хотел), а другая точка прерывания отменяет регистрацию обеих этих точек останова, чтобы поддерживать чистоту.