Condividi tramite


Debug-Job

Esegue il debug di un processo flusso di lavoro in background, remoto Windows PowerShell o remoto.

Sintassi

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>]

Descrizione

Il cmdlet Debug-Job consente di eseguire il debug di script in esecuzione all'interno di processi. Il cmdlet è progettato per eseguire il debug di processi Windows PowerShell flusso di lavoro, processi in background e processi in esecuzione in sessioni remote. Debug-Job accetta un oggetto processo in esecuzione, nome, ID o ID istanza come input e avvia una sessione di debug nello script in esecuzione. Il comando di chiusura del debugger arresta il processo ed esegue lo script. A partire da Windows PowerShell 5.0, il comando exit scollega il debugger e consente al processo di continuare l'esecuzione.

Esempio

Esempio 1: Eseguire il debug di un processo in base all'ID processo

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"

Questo comando si interrompe in un processo in esecuzione con un ID pari a 3.

Parametri

-Confirm

Richiede la conferma dell'utente prima di eseguire il cmdlet.

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

-Id

Specifica il numero ID di un processo in esecuzione. Per ottenere il numero ID di un processo, eseguire il cmdlet Get-Job.

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

-InstanceId

Specifica il GUID dell'istanza di un processo in esecuzione. Per ottenere instanceId di un processo, eseguire il cmdlet Get-Job , piping dei risultati in un cmdlet Format-*, come illustrato nell'esempio seguente:

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

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

-Job

Specifica un oggetto processo in esecuzione. Il modo più semplice per usare questo parametro consiste nel salvare i risultati di un comando Get-Job che restituisce il processo in esecuzione che si vuole eseguire il debug in una variabile e quindi specificare la variabile come valore di questo parametro.

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

-Name

Specifica un processo in base al nome descrittivo del processo. Quando si avvia un processo, è possibile specificare un nome del processo aggiungendo il parametro JobName , nei cmdlet, ad esempio Invoke-Command e Start-Job.

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

-WhatIf

Mostra l'esito in caso di esecuzione del cmdlet. Il cmdlet non viene eseguito.

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

Input

System.Management.Automation.RemotingJob