Elke scriptontwikkeling vereist meestal probleemoplossing, wat meestal resulteert in een van de twee benaderingen. Ofwel handmatig variabelen instellen op waarden en die gegevens uitvoeren tijdens het uitvoeren van het script, of foutopsporing gebruiken om onderbrekingspunten in te stellen om gegevens te inspecteren voordat u doorgaat of afbreekt. Ingebouwd in PowerShell ISE en in Visual Studio Code is de mogelijkheid om foutopsporing uit te voeren.
Hoe werkt PowerShell-foutopsporing?
Inbegrepen bij Windows PowerShell, is de PowerShell ISE de traditionele go-to-omgeving geweest om PowerShell-scripts te debuggen. Met een ingebouwd menu voor debuggen en een grafische weergave van breekpunten, is het gemakkelijk om aan de slag te gaan. Eerst moet elk script dat u debugt, worden opgeslagen. Vervolgens moet u op drie manieren breekpunten instellen.
- Gebruik op de gefocuste lijn de F9-toets om een breekpunt in te stellen.
- Klik met de rechtermuisknop naast een regel en kies Breekpunt wisselen om een breekpunt in te stellen.
- Gebruik de
Set-PSBreakPoint om een regel, variabele, functie of overeenkomende tekst op te geven.
Zodra je een breekpunt hebt ingesteld, kun je eenvoudig beginnen met debuggen door het script uit te voeren met F5, of Debug → Uitvoeren/Doorgaan. Zodra het script het opgegeven onderbrekingspunt bereikt, wordt de uitvoering gepauzeerd en moet u een van de volgende acties ondernemen.
- Step Over – Voer alleen de huidige instructie uit en stop voor de volgende instructie. Als de huidige instructie een functie of script is, voer dan de hele aanroep uit voordat u stopt.
- Step Into – Net als bij Step Over, voer alleen de huidige instructie uit en stop voor de volgende instructie. In plaats van de volledige functie of het hele script uit te voeren, indien aangeroepen, stap je in de aanroep.
- Step Out – Indien binnen een functie, stap uit en één niveau omhoog als de functie genest is. Als in het hoofdscript wordt uitgevoerd tot het einde van het script of het volgende onderbrekingspunt, afhankelijk van wat het eerst is. Overgeslagen instructies worden uitgevoerd maar niet doorlopen.
Als het script op een breekpunt wordt gestopt, kun je met de muiscursor over een variabele gaan en zien wat de waarden van een bepaalde variabele zijn. Bovendien kunt u de opdrachtregel gebruiken om variabelen uit te voeren en om de huidige status te zien. Hierbij zijn enkele kanttekeningen te plaatsen.
$_
,
$Input
,
$MyInvocation
,
$PSBoundParameters
, en
$Args zullen niet werken omdat het automatische variabelen zijn en niet onderhevig zijn aan debuggen. Een manier om die waarden op te halen, is door ze toe te wijzen aan een tussenvariabele die vervolgens als breekpunt kan worden ingesteld.

PowerShell-foutopsporing in Visual Studio Code
Zeer vergelijkbaar met hoe de PowerShell ISE werkt, voegt Visual Studio Code verschillende zeer nuttige foutopsporingsopties toe. Bovendien kunt u met VS Code eenvoudig fouten opsporen met PowerShell 7.x, terwijl de ISE traditioneel beperkt is tot alleen Windows PowerShell. Met dezelfde toetsopdrachten als de PowerShell ISE kunt u snel aan de slag met foutopsporing. Nog beter is dat je nu het debugging-venster binnen VS Code hebt dat een groot deel van de variabele uitvoer consolideert en het gemakkelijker maakt om een momentopname van alle variabele waarden in je code te zien.
Gebruik VS Code Debugging
Net als de PowerShell ISE kunt u F5 gebruiken om een interactieve foutopsporingssessie te starten. In tegenstelling tot de ISE biedt VS Code een veel betere en nuttigere debugging-ervaring. Je krijgt niet alleen de traditionele Debug-console, aangegeven door de
[DBG] prompt, maar je hebt ook alle bekende variabelen en hun uitvoer in het linker debugging-venster. Om het navigeren door debug-opties te verbeteren, maakt de bovenste debug-balk het heel eenvoudig om in, uit en over breekpunten te stappen. U hoeft ook niet op te slaan voordat u begint!

De opdracht Debugging-opdrachten gebruiken
Hoewel het zuiver debuggen vanaf de opdrachtregel soms niet de gemakkelijkste handeling is, kunt u dit doen met behulp van de ingebouwde debugging-opdrachten. Er zijn een paar ingebouwde commando's om dit gemakkelijk te maken.
-
Set-PSBreakPoint – Stel een breekpunt in dat wordt geactiveerd op een specifieke regel, opdracht of variabele.
-
Get-PSBreakPoint – Haal een specifiek breekpunt op op ID of vermeld alle breekpunten.
-
Remove-PSBreakPoint – Een specifiek breekpunt verwijderen.
-
Disable-PSBreakPoint – Schakel tijdelijk een onderbrekingspunt uit, maar verwijder het niet.
-
Enable-PSBreakPoint – Schakel een eerder uitgeschakeld breekpunt in.
Met behulp van de veelzijdige
Set-PSBreakPoint kun je snel een breekpunt instellen dat je, eenmaal geraakt, in de opdrachtprompt voor foutopsporing laat vallen. Op dat moment kunt u met behulp van de standaardtoetscombinaties snel variabelen inspecteren en de uitvoering op dat punt voortzetten of onderbreken.
Conclusie
Debuggen hoeft niet moeilijk te zijn en als je eenmaal hiermee aan de slag gaat met een van de bovenstaande methoden, zul je merken dat het een integraal onderdeel is van je scriptontwikkelingsbehoeften. Bekijk hoe u vandaag nog aan de slag kunt met PowerShell Debugging!