Partager via


Debug-Job

Débogue un travail de workflow Windows PowerShell en cours d’exécution, à distance ou en arrière-plan.

Syntaxe

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

Description

L’applet de commande Debug-Job vous permet de déboguer des scripts qui s’exécutent dans des travaux. L’applet de commande est conçue pour déboguer des travaux de flux de travail Windows PowerShell, des travaux en arrière-plan et des travaux s’exécutant dans des sessions à distance. Debug-Job accepte un objet de travail en cours d’exécution, un nom, un ID ou un ID d’instance comme entrée, et démarre une session de débogage sur le script qu’il exécute. Le débogueur quitter commande arrête le travail et exécute le script. À compter de Windows PowerShell 5.0, la commande quitter détache le débogueur et permet au travail de continuer à s’exécuter.

Exemples

Exemple 1 : Déboguer un travail par ID de travail

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"

Cette commande s’interrompt dans un travail en cours d’exécution avec un ID de 3.

Paramètres

-Confirm

Vous invite à confirmer avant d’exécuter l’applet de commande.

Type:SwitchParameter
Alias:cf
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Id

Spécifie le numéro d’ID d’un travail en cours d’exécution. Pour obtenir le numéro d’ID d’un travail, exécutez l’applet de commande Get-Job.

Type:Int32
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-InstanceId

Spécifie le GUID d’ID d’instance d’un travail en cours d’exécution. Pour obtenir l'InstanceId d’un travail, exécutez l’applet de commande Get-Job , en pipant les résultats dans une applet de commande Format-*, comme illustré dans l’exemple suivant :

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

Type:Guid
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-Job

Spécifie un objet de travail en cours d’exécution. La façon la plus simple d’utiliser ce paramètre consiste à enregistrer les résultats d’une commande Get-Job qui retourne le travail en cours d’exécution que vous souhaitez déboguer dans une variable, puis spécifier la variable comme valeur de ce paramètre.

Type:Job
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:True
Accepter les caractères génériques:False

-Name

Spécifie un travail par le nom convivial du travail. Lorsque vous démarrez un travail, vous pouvez spécifier un nom de travail en ajoutant le paramètre JobName, dans les applets de commande telles que Invoke-Command et Start-Job.

Type:String
Position:0
Valeur par défaut:None
Obligatoire:True
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-WhatIf

Affiche ce qui se passerait si l’applet de commande s’exécute. L’applet de commande n’est pas exécutée.

Type:SwitchParameter
Alias:wi
Position:Named
Valeur par défaut:False
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

System.Management.Automation.RemotingJob