Share via


Debug-Job

Debuggt einen ausgeführten Hintergrund- oder Remoteauftrag.

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 Debug-Job dem Cmdlet können Sie Skripts debuggen, die innerhalb von 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-Jobakzeptiert ein ausgeführtes Auftragsobjekt, einen Namen, eine ID oder eine instance-ID als Eingabe und startet eine Debugsitzung für das skript, das ausgeführt wird. Der Debuggerbefehl quit beendet den Auftrag und die Ausführung des Skripts. Der exit Befehl trennt den Debugger und ermöglicht die weitere Ausführung des Auftrags.

Beispiele

Beispiel 1: Debuggen eines Auftrags nach Auftrags-ID

Dieser Befehl unterbricht einen ausgeführten Auftrag mit der ID 3.

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.

Der Parameter ist nur als experimentelles Feature verfügbar. Weitere Informationen finden Sie unter Verwenden experimenteller Features.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Hiermit werden Sie vor der Ausführung des Cmdlets zur Bestätigung aufgefordert.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

Gibt die ID-Nummer eines ausgeführten Auftrags an. Führen Sie das Cmdlet aus, um die Get-Job ID-Nummer eines Auftrags abzurufen.

Type:Int32
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-InstanceId

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

Type:Guid
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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 anzugeben.

Type:Job
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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-Jobhinzufügen.

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

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

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Eingaben

System.Management.Automation.RemotingJob