Поделиться через


Debug-Job

Отладка запущенного фонового или удаленного задания.

Синтаксис

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

Описание

Командлет Debug-Job позволяет выполнять отладку скриптов, выполняемых в заданиях. Командлет предназначен для отладки заданий рабочего процесса PowerShell, фоновых заданий и заданий, выполняемых в удаленных сеансах. Debug-Job принимает выполняющийся объект задания, имя, идентификатор или идентификатор экземпляра в качестве входных данных и запускает сеанс отладки для выполняемого скрипта. Команда отладчика quit останавливает задание и выполнение скрипта. Команда exit отсоединяет отладчик и позволяет заданию продолжать выполняться.

Примеры

Пример 1. Отладка задания по идентификатору задания

Эта команда разбивается на выполняемое задание с идентификатором 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"

Параметры

-BreakAll

Позволяет немедленно прерывать подключение отладчика в текущем расположении.

Этот параметр был добавлен в PowerShell 7.2.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Confirm

Запрос подтверждения перед выполнением командлета.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Id

Указывает идентификатор выполняемого задания. Чтобы получить идентификатор задания, выполните Get-Job командлет.

Тип:Int32
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-InstanceId

Указывает идентификатор идентификатора экземпляра выполняемого задания.

Тип:Guid
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Job

Указывает выполняющийся объект задания. Самый простой способ использования этого параметра — сохранить результаты Get-Job команды, возвращающей выполняемое задание, которое требуется отлаживать в переменной, а затем указать переменную в качестве значения этого параметра.

Тип:Job
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Name

Указывает задание по понятному имени задания. При запуске задания можно указать имя задания, добавив параметр JobName в таких командлетах, как Invoke-Command и Start-Job.

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WhatIf

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

System.Management.Automation.RemotingJob