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


Resume-Job

Перезапускает приостановленное задание.

Синтаксис

Resume-Job
      [-Wait]
      [-Id] <Int32[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Job] <Job[]>
      [-Wait]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-Name] <String[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-InstanceId] <Guid[]>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-State] <JobState>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resume-Job
      [-Wait]
      [-Filter] <Hashtable>
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Описание

Командлет Resume-Job возобновляет задание рабочего процесса, которое было приостановлено, например с помощью командлета Suspend-Job или действия about_Suspend-Workflow . Когда задание рабочего процесса возобновляется, подсистема заданий восстанавливает состояние, метаданные и выходные данные из сохраненных ресурсов, таких как контрольные точки. Задание перезапущено без потери состояния или данных. Состояние задания изменяется с "Приостановлено" на "Запущено".

Используйте параметры для выбора заданий по имени, идентификатору Resume-Job , идентификатору экземпляра или каналу объекта задания, например одному из возвращаемых командлетом Get-Job Resume-Job. Для выбора задания, которое нужно возобновить, можно также использовать фильтр свойств.

По умолчанию возвращается немедленно, Resume-Job даже если все задания еще не будут возобновлены. Чтобы отключить командную строку до возобновления всех указанных заданий, используйте параметр Wait .

Командлет Resume-Job работает только в пользовательских типах заданий, таких как задания рабочего процесса. Он не работает на стандартных фоновых заданиях, таких как запущенные с помощью командлета Start-Job . Если вы отправляете задание неподдерживаемого типа, Resume-Job создает завершающую ошибку и перестает работать.

Чтобы определить задание рабочего процесса, найдите значение PSWorkflowJob в свойстве PSJobTypeName задания. Чтобы определить, поддерживает Resume-Job ли определенный настраиваемый тип задания командлет, см. разделы справки для пользовательского типа задания.

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

Этот командлет впервые появился в Windows PowerShell 3.0.

Примеры

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

Команды в этом примере проверяют, является ли задание приостановленным заданием рабочего процесса, а затем возобновляют его. Первая команда использует Get-Job командлет для получения задания. Выходные данные показывают, что задание является приостановленным заданием рабочего процесса. Вторая команда использует параметр id командлета Resume-Job для возобновления задания со значением идентификатора 4.

PS C:\> Get-Job EventJob
Id     Name            PSJobTypeName   State         HasMoreData     Location   Command
--     ----            -------------   -----         -----------     --------   -------
4      EventJob        PSWorkflowJob   Suspended     True            Server01   \\Script\Share\Event.ps1

PS C:\> Resume-Job -Id 4

Пример 2. Возобновление задания по имени

Эта команда использует параметр Name для возобновления нескольких заданий рабочего процесса на локальном компьютере.

PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest*

Пример 3. Использование значений настраиваемых свойств

В этой команде с помощью значения настраиваемого свойства определяется задание рабочего процесса, которое нужно возобновить. Он использует параметр Filter для идентификации задания рабочего процесса по свойству CustomID . Он также использует параметр State , чтобы убедиться, что задание рабочего процесса приостановлено, прежде чем пытаться возобновить его.

PS C:\> Resume-Job -Filter @{CustomID="T091291"} -State Suspended

Пример 4. Возобновление всех приостановленных заданий на удаленном компьютере

Эта команда возобновляет все приостановленные задания на удаленном компьютере Srv01.

PS C:\> Invoke-Command -ComputerName Srv01 -ScriptBlock {Get-Job -State Suspended | Resume-Job}

Команда использует Invoke-Command командлет для выполнения команды на компьютере Srv01. Удаленная команда использует параметр State командлета Get-Job для получения всех приостановленных заданий на компьютере. Оператор конвейера (|) отправляет приостановленные задания командлету Resume-Job , который возобновляет их.

Пример 5. Ожидание возобновления заданий

Эта команда использует параметр Wait для возврата Resume-Job только после возобновления всех указанных заданий. Параметр Wait особенно полезен в сценариях, предполагающих возобновление заданий перед продолжением скрипта.

PS C:\> Resume-Job -Name WorkflowJob, InventoryWorkflow, WFTest* -Wait

Пример 6. Возобновление рабочего процесса, который приостанавливает себя

В этом примере кода показано Suspend-Workflow действие в рабочем процессе.

Рабочий Test-Suspend процесс на компьютере Server01. При запуске рабочего процесса рабочий процесс запускает Get-Date действие и сохраняет результат в переменной $a . Затем он запускает Suspend-Workflow действие. В ответ он принимает контрольную точку, приостанавливает рабочий процесс и возвращает объект задания рабочего процесса. Suspend-Workflow возвращает объект задания рабочего процесса, даже если рабочий процесс не выполняется явным образом в качестве задания.

Resume-Job возобновляет рабочий Test-Suspend процесс в Job8. Он использует параметр Wait для хранения командной строки до возобновления задания.

Командлет Receive-Job получает результаты Test-Suspend рабочего процесса. Последняя команда в рабочем процессе возвращает объект TimeSpan , представляющий истекшее время между текущей датой и временем и временем, сохраненным в $a переменной до приостановки рабочего процесса.

#SampleWorkflow
Workflow Test-Suspend
{
    $a = Get-Date
    Suspend-Workflow
    (Get-Date)- $a
}

PS C:\> Test-Suspend -PSComputerName Server01
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
8      Job8            PSWorkflowJob   Suspended     True            Server01             Test-Suspend

PS C:\> Resume-Job -Name "Job8" -Wait
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
8      Job8            PSWorkflowJob   Running       True            Server01             Test-Suspend

PS C:\> Receive-Job -Name Job8
        Days              : 0
        Hours             : 0
        Minutes           : 0
        Seconds           : 19
        Milliseconds      : 823
        Ticks             : 198230041
        TotalDays         : 0.000229432917824074
        TotalHours        : 0.00550639002777778
        TotalMinutes      : 0.330383401666667
        TotalSeconds      : 19.8230041
        TotalMilliseconds : 19823.0041
        PSComputerName    : Server01

Командлет Resume-Job позволяет возобновить задание рабочего процесса, которое было приостановлено с помощью Suspend-Workflow действия. Это действие приостанавливает рабочий процесс из самого процесса. Оно допустимо только в рабочих процессах.

Дополнительные сведения об этом Suspend-Workflowсм. в разделе about_Suspend-Workflow](.). /PSWorkflow/about/about_Suspend-Workflow.md).

Параметры

-Confirm

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

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

-Filter

Задает хэш-таблицу условий. Этот командлет возобновляет задания, удовлетворяющие всем условиям в хэш-таблице. Введите хэш-таблицу, где ключи являются свойствами заданий, а значения — значениями этих свойств.

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

-Id

Задает массив идентификаторов для заданий, возобновляемых этим командлетом.

Идентификатор — это целое число, которое однозначно идентифицирует задание в текущем сеансе. Проще помнить и вводить идентификатор экземпляра, но он является уникальным только в текущем сеансе. Можно ввести один или несколько идентификаторов, разделенных запятыми. Чтобы найти идентификатор задания, выполните команду Get-Job.

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

-InstanceId

Задает массив идентификаторов экземпляров заданий, возобновляемых этим командлетом. По умолчанию останавливаются все задания.

Идентификатор экземпляра — это GUID, который однозначно определяет задание на компьютере. Чтобы найти идентификатор экземпляра задания, выполните команду Get-Job.

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

-Job

Указывает задания, которые нужно возобновить. Введите переменную, содержащую задания, либо команду, которая их возвращают. Можно также передать задания командлету Resume-Job .

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

-Name

Задает массив понятных имен заданий, возобновляемых этим командлетом. Введите одно или несколько имен заданий. Можно использовать подстановочные знаки.

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

-State

Указывает состояние возобновления заданий. Допустимые значения для этого параметра:

  • NotStarted
  • Выполняется
  • Завершено
  • Неудачно
  • Остановлено
  • Заблокировано
  • Приостановлена
  • Отключено
  • Приостановка
  • Остановка

Этот командлет возобновляет задания только в состоянии приостановки.

Дополнительные сведения о состояниях заданий см. в разделе "Перечисление JobState".

Тип:JobState
Допустимые значения:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:True
Принять подстановочные знаки:False

-Wait

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

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

-WhatIf

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

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

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

Job

Вы можете передать все типы заданий в этот командлет. Если Resume-Job получает задание неподдерживаемого типа, возвращается завершающая ошибка.

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

None, System.Management.Automation.Job

Этот командлет возвращает задания, которые он пытается возобновить, если используется параметр PassThru . В противном случае командлет не формирует никаких выходных данных.

Примечания

Windows PowerShell включает следующие псевдонимы для Resume-Job:

  • rujb

  • Resume-Job может возобновить только приостановленные задания. Если вы отправляете задание в другом состоянии, Resume-Job выполняет операцию возобновления задания, но создает предупреждение, чтобы уведомить вас о том, что задание не удалось возобновить. Чтобы отключить предупреждение, используйте общий параметр WarningAction со значением SilentlyContinue.

  • Если задание не является типом, поддерживающим возобновление, например задание рабочего процесса (PSWorkflowJob), Resume-Job возвращает завершающую ошибку.

  • Механизм и место сохранения приостановленного задания могут различаться в зависимости от его типа. Например, по умолчанию приостановленные задания рабочих процессов сохраняются в хранилище неструктурированных файлов, но также могут сохраняться в базе данных SQL.

  • При возобновлении задания состояние задания изменяется с "Приостановлено на выполнение". Чтобы найти выполняемые задания, в том числе те, которые были возобновлены этим командлетом, используйте параметр Get-Job State командлета для получения заданий в состоянии выполнения.

  • Задания некоторых типов имеют параметры или свойства, которые не позволяют среде Windows PowerShell приостанавливать их. Если попытка приостановить задание завершается ошибкой, убедитесь, что параметры и свойства задания разрешают приостановку.