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


Resume-Job

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

Синтаксис

SessionIdParameterSet (По умолчанию)

Resume-Job
    [-Id] <Int32[]>
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

JobParameterSet

Resume-Job
    [-Job] <Job[]>
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

NameParameterSet

Resume-Job
    [-Name] <String[]>
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

InstanceIdParameterSet

Resume-Job
    [-InstanceId] <Guid[]>
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

StateParameterSet

Resume-Job
    [-State] <JobState>
    [-Wait]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

FilterParameterSet

Resume-Job
    [-Filter] <Hashtable>
    [-Wait]
    [-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. Он также использует параметр состояния , чтобы убедиться, что задание рабочего процесса приостановлено, прежде чем пытаться возобновить его.

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. Ожидание возобновления заданий

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

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

Запрашивает подтверждение перед запуском cmdlet.

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:cf

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Filter

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

Свойства параметров

Тип:Hashtable
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

FilterParameterSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Id

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

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

Свойства параметров

Тип:

Int32[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

SessionIdParameterSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-InstanceId

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

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

Свойства параметров

Тип:

Guid[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

InstanceIdParameterSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Job

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

Свойства параметров

Тип:

Job[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

JobParameterSet
Position:0
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Name

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

Свойства параметров

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

NameParameterSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-State

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

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

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

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

Свойства параметров

Тип:JobState
Default value:None
Допустимые значения:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

StateParameterSet
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Wait

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

Свойства параметров

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-WhatIf

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

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:wi

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

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

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 для получения заданий в состоянии запуска.

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