Freigeben über


Debug-Job

Debuggt einen ausgeführten Hintergrund-, Remote- oder Windows PowerShell-Workflowauftrag.

Syntax

JobParameterSet (Standard)

Debug-Job
    [-Job] <Job>
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

JobNameParameterSet

Debug-Job
    [-Name] <String>
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

JobIdParameterSet

Debug-Job
    [-Id] <Int32>
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

JobInstanceIdParameterSet

Debug-Job
    [-InstanceId] <Guid>
    [-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 Windows 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 Skript, das ausgeführt wird. Der Befehl zum Beenden des Debuggers beendet den Auftrag und das Ausführen des Skripts. Ab Windows PowerShell 5.0 trennt der Befehl exit den Debugger und ermöglicht die weitere Ausführung des Auftrags.

Beispiele

Beispiel 1: Debuggen eines Auftrags nach Auftrags-ID

PS C:\> 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"

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

Parameter

-Confirm

Fordert Sie zur Bestätigung auf, bevor Sie das Cmdlet ausführen.

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:vgl

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:Int32
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

JobIdParameterSet
Position:0
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-InstanceId

Gibt die Instanz-ID-GUID eines ausgeführten Einzelvorgangs an. Um die InstanceId eines Auftrags abzurufen, führen Sie das Cmdlet Get-Job aus, und übergeben Sie die Ergebnisse an ein Format -*-Cmdlet, wie im folgenden Beispiel gezeigt:

Get-Job | Format-List -Property Id,Name,InstanceId,State

Parametereigenschaften

Typ:Guid
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

JobInstanceIdParameterSet
Position:0
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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, den Sie debuggen möchten, in einer Variablen zurückgibt, und dann die Variable als Wert dieses Parameters anzugeben.

Parametereigenschaften

Typ:Job
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

JobParameterSet
Position:0
Obligatorisch:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten: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 JobName-Parameter in Cmdlets wie Invoke-Command und Start-Job hinzufügen.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

JobNameParameterSet
Position:0
Obligatorisch:True
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-WhatIf

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

Parametereigenschaften

Typ:SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Wi

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

System.Management.Automation.RemotingJob