Met de Debug-Job-cmdlet kunt u fouten opsporen in scripts die worden uitgevoerd in taken. De cmdlet is ontworpen om fouten op te sporen in PowerShell Workflow-taken, achtergrondtaken en taken die worden uitgevoerd in externe sessies.
Debug-Job accepteert een actief taakobject, naam, id of exemplaar-id als invoer en start een foutopsporingssessie op het script dat wordt uitgevoerd. De opdracht voor foutopsporingsprogramma quit stopt de taak en stopt het script. Met de opdracht exit wordt het foutopsporingsprogramma losgekoppeld en kan de taak worden uitgevoerd.
Voorbeelden
Voorbeeld 1: Debuggen van een taak door taak-id
Met deze opdracht wordt een actieve job met ID 3 onderbroken.
Debug-Job -Id 3
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
3 Job3 RemoteJob Running True PowerShellIx TestWFDemo1.ps1
Entering debug mode. Use h or ? for help.
Hit Line breakpoint on 'C:\TestWFDemo1.ps1:8'
At C:\TestWFDemo1.ps1:8 char:5
+ Write-Output -InputObject "Now writing output:"
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[DBG:PowerShellIx]: PS C:\> > list
3:
4: workflow SampleWorkflowTest
5: {
6: param ($MyOutput)
7:
8:* Write-Output -InputObject "Now writing output:"
9: Write-Output -Input $MyOutput
10:
11: Write-Output -InputObject "Get PowerShell process:"
12: Get-Process -Name powershell
13:
14: Write-Output -InputObject "Workflow function complete."
15: }
16:
17: # Call workflow function
18: SampleWorkflowTest -MyOutput "Hello"
Parameters
-BreakAll
Hiermee kunt u direct een pauze inlassen op de huidige locatie wanneer de debugger wordt gekoppeld.
Deze parameter is toegevoegd in PowerShell 7.2.
Parametereigenschappen
Type:
SwitchParameter
Default value:
None
Ondersteunt jokertekens:
False
DontShow:
False
Parametersets
(All)
Position:
Named
Verplicht:
False
Waarde uit pijplijn:
False
Waarde uit pijplijn op eigenschapsnaam:
False
Waarde van resterende argumenten:
False
-Confirm
Voordat u de cmdlet uitvoert, vraagt het systeem om bevestiging.
Hiermee specificeert u een lopend taakobject. De eenvoudigste manier om deze parameter te gebruiken, is het opslaan van de resultaten van een Get-Job-opdracht waarmee de actieve taak wordt geretourneerd die u in een variabele wilt opsporen en de variabele vervolgens opgeeft als de waarde van deze parameter.
Hiermee specificeert u een job met de gebruiksvriendelijke naam van de job. Wanneer u een taak start, kunt u een taaknaam opgeven door de parameter JobName toe te voegen in cmdlets zoals Invoke-Command en Start-Job.
De bron voor deze inhoud vindt u op GitHub, waar u ook problemen en pull-aanvragen kunt maken en controleren. Bekijk onze gids voor inzenders voor meer informatie.