Suspend-Job

워크플로 작업을 일시적으로 중지합니다.

Syntax

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

Description

cmdlet은 Suspend-Job 워크플로 작업을 일시 중단합니다. 일시 중단은 워크플로 작업을 일시적으로 중단하거나 일시 중지하는 것을 의미합니다. 이 cmdlet을 사용하면 워크플로를 실행하는 사용자가 워크플로를 일시 중단할 수 있습니다. 워크플로를 일시 중단하는 워크플로https://go.microsoft.com/fwlink/?LinkId=267141 의 명령인 Suspend-Workflow 작업을 보완합니다.

cmdlet은 Suspend-Job 워크플로 작업에서만 작동합니다. cmdlet을 사용하여 시작한 작업과 같은 표준 백그라운드 작업에서는 Start-Job 작동하지 않습니다.

워크플로 작업을 식별하려면 작업의 PSJobTypeName 속성에서 PSWorkflowJob 값을 찾습니다. 특정 사용자 지정 작업 유형이 cmdlet을 Suspend-Job 지원하는지 여부를 확인하려면 사용자 지정 작업 유형에 대한 도움말 항목을 참조하세요.

워크플로 작업을 일시 중단하면 워크플로 작업이 다음 검사 지점으로 실행되고, 일시 중단되고, 워크플로 작업 개체가 즉시 반환됩니다. 작업을 가져오기 전에 일시 중단이 완료될 때까지 기다리려면 Wait 매개 변수 Suspend-Job 또는 cmdlet을 Wait-Job 사용합니다. 워크플로 작업이 일시 중단되면 작업의 상태 속성 값이 일시 중단됩니다.

일시 중단은 검사포인트에 의존합니다. 현재 작업 상태, 메타데이터 및 출력은 검사point에 저장되므로 상태 또는 데이터가 손실되지 않고 워크플로 작업을 다시 시작합니다. 워크플로 작업에 검사 지점이 없으면 올바르게 일시 중단될 수 없습니다. 실행 중인 워크플로에 검사포인트를 추가하려면 PSPersist 워크플로 공통 매개 변수를 사용합니다. Force 매개 변수를 사용하여 워크플로 작업을 즉시 일시 중단하고 검사포인트가 없는 워크플로 작업을 일시 중단할 수 있지만 이 작업으로 인해 상태 및 데이터가 손실될 수 있습니다.

워크플로 작업(PSWorkflowJob)과 같은 사용자 지정 작업 유형에서 작업 cmdlet을 사용하기 전에 cmdlet을 사용하거나 모듈에서 cmdlet을 사용 Import-Module 하거나 사용하여 사용자 지정 작업 유형을 지원하는 모듈을 가져옵니다.

이 cmdlet은 Windows PowerShell 3.0에서 도입되었습니다.

예제

예제 1: 이름으로 워크플로 작업 일시 중단

이 예제에서는 워크플로 작업을 일시 중단하는 방법을 보여 줍니다.

첫 번째 명령은 워크플로를 Get-SystemLog 만듭니다. 워크플로는 이 CheckPoint-Workflow 작업을 사용하여 워크플로의 검사포인트를 정의합니다.

두 번째 명령은 모든 워크플로에 공통적인 AsJob 매개 변수를 사용하여 워크플로를 Get-SystemLog 백그라운드 작업으로 실행합니다. 이 명령은 JobName 워크플로 공통 매개 변수를 사용하여 워크플로 작업의 이름을 지정합니다.

세 번째 명령은 cmdlet을 Get-Job 사용하여 워크플로 작업을 가져옵니다 Get-SystemLogJob . 출력은 PSJobTypeName 속성의 값이 PSWorkflowJob임을 보여 줍니다.

네 번째 명령은 cmdlet을 Suspend-Job 사용하여 작업을 일시 중단합니다 Get-SystemLogJob . 작업이 검사 지점으로 실행된 다음 일시 중단됩니다.

#Sample WorkflowWorkflow Get-SystemLog
{
    $Events = Get-WinEvent -LogName System
    CheckPoint-Workflow
    InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}

PS C:\> Get-SystemLog -AsJob -JobName "Get-SystemLogJob"

PS C:\> Get-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Running     True            localhost   Get-SystemLog

PS C:\> Suspend-Job -Name Get-SystemLogJob
Id     Name              PSJobTypeName   State       HasMoreData     Location   Command
--     ----              -------------   -----       -----------     --------   -------
4      Get-SystemLogJob  PSWorkflowJob   Suspended   True            localhost   Get-SystemLog

예제 2: 워크플로 작업 일시 중단 및 다시 시작

이 예제에서는 워크플로 작업을 일시 중단하고 다시 시작하는 방법을 보여 있습니다.

첫 번째 명령은 LogWorkflowJob 작업을 일시 중단합니다. 명령은 즉시 반환됩니다. 출력은 워크플로 작업이 일시 중단되더라도 여전히 실행 중임을 보여줍니다.

두 번째 명령은 cmdlet을 Get-Job 사용하여 LogWorkflowJob 작업을 가져옵니다. 출력은 워크플로 작업이 성공적으로 일시 중단되었음을 보여줍니다.

세 번째 명령은 cmdlet을 Get-Job 사용하여 LogWorkflowJob 작업 및 cmdlet을 Resume-Job 가져와 다시 시작합니다. 출력은 워크플로 작업이 성공적으로 다시 시작되어 현재 실행 중임을 보여 냅니다.

PS C:\> Suspend-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

PS C:\> Get-Job -Name LogWorkflowJob
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Suspended     True            localhost            LogWorkflow

PS C:\> Get-Job -Name LogWorkflowJob | Resume-Job
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
67     LogflowJob    PSWorkflowJob      Running       True            localhost            LogWorkflow

예제 3: 원격 컴퓨터에서 워크플로 작업 일시 중단

PS C:\> Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}

이 명령은 cmdlet을 Invoke-Command 사용하여 Srv01 원격 컴퓨터에서 워크플로 작업을 일시 중단합니다. Filter 매개 변수의 값은 CustomID 값을 지정하는 해시 테이블입니다. 이 CustomID 는 작업 메타데이터(PSPrivateMetadata)입니다.

예제 4: 워크플로 작업이 일시 중단되기를 기다립니다.

PS C:\> Suspend-Job VersionCheck -Wait
Id     Name          PSJobTypeName      State         HasMoreData     Location             Command
--     ----          -------------      -----         -----------     --------             -------
 5     VersionCheck  PSWorkflowJob      Suspended     True            localhost            LogWorkflow

이 명령은 VersionCheck 워크플로 작업을 일시 중단합니다. 이 명령은 Wait 매개 변수를 사용하여 워크플로 작업이 일시 중단될 때까지 기다립니다. 워크플로 작업이 다음 검사 지점으로 실행되고 일시 중단되면 명령이 완료되고 작업 개체가 반환됩니다.

예제 5: 워크플로 작업이 일시 중단되도록 강제 적용

PS C:\> Suspend-Job Maintenance -Force

이 명령은 Maintenance 워크플로 작업을 강제로 일시 중단합니다. 유지 관리 작업에는 검사 지점이 없습니다. 올바르게 일시 중단될 수 없으며 올바르게 다시 시작되지 않을 수 있습니다.

매개 변수

-Confirm

cmdlet을 실행하기 전에 확인 메시지가 표시됩니다.

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

-Filter

조건의 해시 테이블을 지정합니다. 이 cmdlet은 모든 조건을 충족하는 작업을 일시 중단합니다. 키가 작업 속성이고 값이 작업 속성 값인 해시 테이블을 입력합니다.

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

-Force

워크플로 작업을 즉시 일시 중단합니다. 이 작업을 수행하면 상태 및 데이터가 손실될 수 있습니다.

기본적으로 Suspend-Job 워크플로 작업은 다음 검사 지점까지 실행한 다음 일시 중단합니다. 이 매개 변수를 사용하여 검사 지점이 없는 워크플로 작업을 일시 중단할 수도 있습니다.

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

-Id

이 cmdlet이 일시 중단하는 작업의 ID를 지정합니다.

ID는 현재 세션의 작업을 고유하게 식별하는 정수입니다. 인스턴스 ID보다 기억하고 입력하는 것이 더 쉽지만 현재 세션에서만 고유합니다. 하나 이상의 ID를 쉼표로 구분하여 입력할 수 있습니다. 작업의 ID를 찾으려면 cmdlet을 Get-Job 사용합니다.

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

-InstanceId

이 cmdlet이 일시 중단하는 작업의 인스턴스 ID를 지정합니다. 기본값은 모든 작업입니다.

인스턴스 ID는 컴퓨터에서 작업을 고유하게 식별하는 GUID입니다. 작업의 인스턴스 ID를 찾으려면 .를 사용합니다 Get-Job.

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

-Job

이 cmdlet이 중지하는 워크플로 작업을 지정합니다. 워크플로 작업을 포함하는 변수 또는 워크플로 작업을 가져오는 명령을 입력합니다. 워크플로 작업을 cmdlet으로 Suspend-Job 파이프할 수도 있습니다.

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

-Name

이 cmdlet이 일시 중단하는 작업의 이름을 지정합니다. 워크플로 작업 이름을 하나 이상 입력합니다. 와일드카드 문자가 지원됩니다.

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

-State

작업 상태를 지정합니다. 이 cmdlet은 지정된 상태의 작업만 중지합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.

  • NotStarted
  • 실행 중
  • Completed
  • 실패
  • 중지됨
  • 차단됨
  • 일시 중단됨
  • 연결 끊김
  • Suspending
  • 중지 중

Suspend-Job는 실행 중인 상태에서 워크플로 작업만 일시 중단합니다.

작업 상태에 대한 자세한 내용은 JobState 열거형을 참조 하세요.

Type:JobState
Accepted values:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Wait

이 cmdlet은 워크플로 작업이 일시 중단된 상태가 될 때까지 명령 프롬프트를 표시하지 않습니다. 기본적으로 Suspend-Job 워크플로 작업이 아직 일시 중단된 상태가 아니더라도 즉시 반환됩니다.

Wait 매개 변수는 cmdlet에 Suspend-Job 명령을 Wait-Job 파이핑하는 것과 같습니다.

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

-WhatIf

cmdlet이 실행될 경우 결과 동작을 표시합니다. cmdlet이 실행되지 않습니다.

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

입력

Job

모든 유형의 작업을 이 cmdlet으로 파이프할 수 있습니다. 그러나 지원되지 않는 형식의 작업을 가져오면 Suspend-Job 종료 오류가 반환됩니다.

출력

Job

이 cmdlet은 일시 중단된 작업을 반환합니다.

참고

Windows PowerShell에는 다음 별칭이 포함됩니다.Suspend-Job

  • sujb

일시 중단된 작업을 저장하는 메커니즘과 위치는 작업 유형에 따라 달라질 수 있습니다. 예를 들어 일시 중단된 워크플로 작업은 기본적으로 플랫 파일 저장소에 저장되지만 데이터베이스에 저장할 수도 있습니다.

실행 중 상태가 Suspend-Job 아닌 워크플로 작업을 제출하면 경고 메시지가 표시됩니다. 경고를 표시하지 않으면 SilentlyContinue 값과 함께 WarningAction 공통 매개 변수를 사용합니다.

작업이 일시 중단 Suspend-Job 을 지원하는 형식이 아닌 경우 종료 오류를 반환합니다.

이 cmdlet에 의해 일시 중단된 작업을 포함하여 일시 중단된 워크플로 작업을 찾으려면 cmdlet의 Get-Job 상태 매개 변수를 사용하여 일시 중단된 상태에서 워크플로 작업을 가져옵니다.

일부 작업 유형에는 Windows PowerShell이 작업을 일시 중단하지 못하도록 하는 옵션 또는 속성이 있습니다. 작업 일시 중단 시도가 실패하는 경우 작업 옵션 및 속성이 일시 중단을 허용하는지 확인합니다.