Freigeben über


Debug-Job

Debugs a running background or remote job.

Syntax

Debug-Job
     [-Job] <Job>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Job
     [-Name] <String>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Job
     [-Id] <Int32>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]
Debug-Job
     [-InstanceId] <Guid>
     [-BreakAll]
     [-WhatIf]
     [-Confirm]
     [<CommonParameters>]

Beschreibung

Mit dem Cmdlet Debug-Job können Sie Skripts debuggen, die in Aufträgen ausgeführt werden. Das Cmdlet dient zum Debuggen von PowerShell-Workflowaufträgen, Hintergrundaufträgen und Aufträgen, die in Remotesitzungen ausgeführt werden. Debug-Job akzeptiert ein ausgeführtes Auftragsobjekt, einen Namen, eine ID oder eine Instanz-ID als Eingabe und startet eine Debugsitzung für das ausgeführte Skript. Der Debugger quit Befehl beendet den Auftrag und das Ausführen des Skripts. Der befehl exit trennt den Debugger und ermöglicht es dem Auftrag, den Vorgang fortzusetzen.

Beispiele

Beispiel 1: Debuggen eines Auftrags nach Auftrags-ID

Dieser Befehl bricht in einen ausgeführten Auftrag mit einer ID von 3 auf.

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"

Parameter

-BreakAll

Ermöglicht es Ihnen, sofort an der aktuellen Position zu unterbrechen, wenn der Debugger angefügt wird.

Dieser Parameter wurde in PowerShell 7.2 hinzugefügt.

Typ:SwitchParameter
Position:Named
Standardwert:None
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Confirm

Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.

Typ:SwitchParameter
Aliase:cf
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Id

Gibt die ID-Nummer eines ausgeführten Auftrags an. Um die ID-Nummer eines Auftrags abzurufen, führen Sie das cmdlet Get-Job aus.

Typ:Int32
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-InstanceId

Gibt die Instanz-ID-GUID eines ausgeführten Auftrags an.

Typ:Guid
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-Job

Gibt ein ausgeführtes Auftragsobjekt an. Die einfachste Möglichkeit, diesen Parameter zu verwenden, besteht darin, die Ergebnisse eines Get-Job Befehls zu speichern, der den ausgeführten Auftrag zurückgibt, den Sie in einer Variablen debuggen möchten, und dann die Variable als Wert dieses Parameters angeben.

Typ:Job
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:True
Platzhalterzeichen akzeptieren:False

-Name

Gibt einen Auftrag anhand des Anzeigenamens des Auftrags an. Wenn Sie einen Auftrag starten, können Sie einen Auftragsnamen angeben, indem Sie den Parameter JobName hinzufügen, in Cmdlets wie Invoke-Command und Start-Job.

Typ:String
Position:0
Standardwert:None
Erforderlich:True
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

-WhatIf

Zeigt, was passiert, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

Typ:SwitchParameter
Aliase:wi
Position:Named
Standardwert:False
Erforderlich:False
Pipelineeingabe akzeptieren:False
Platzhalterzeichen akzeptieren:False

Eingaben

System.Management.Automation.RemotingJob