Suspend-Job
워크플로 작업을 일시적으로 중지합니다.
구문
Suspend-Job
[-Force]
[-Wait]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Job] <Job[]>
[-Force]
[-Wait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Suspend-Job
[-Force]
[-Wait]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Suspend-Job cmdlet은 워크플로 작업을 일시 중단합니다. 일시 중단은 워크플로 작업을 일시적으로 중단하거나 일시 중지하는 것을 의미합니다. 이 cmdlet을 사용하면 워크플로를 실행하는 사용자가 워크플로를 일시 중단할 수 있습니다. 워크플로를 일시 중단하는 워크플로의 명령인 Suspend-Workflowhttps://go.microsoft.com/fwlink/?LinkId=267141 작업을 보완합니다.
Suspend-Job cmdlet은 워크플로 작업에서만 작동합니다. Start-Job cmdlet을 사용하여 시작한 작업과 같은 표준 백그라운드 작업에서는 작동하지 않습니다.
워크플로 작업을 식별하려면 작업의 PSJobTypeName 속성에서 PSWorkflowJob 값을 찾습니다. 특정 사용자 지정 작업 유형이 Suspend-Job cmdlet을 지원하는지 확인하려면 사용자 지정 작업 유형에 대한 도움말 항목을 참조하세요.
워크플로 작업을 일시 중단하면 워크플로 작업이 다음 검사점까지 실행되고, 일시 중단되고, 워크플로 작업 개체가 즉시 반환됩니다. 작업을 가져오기 전에 일시 중단이 완료될 때까지 기다리려면 Suspend-Job 또는 Wait-Job cmdlet의 Wait 매개 변수를 사용합니다. 워크플로 작업이 일시 중단되면 작업의 State 속성 값이 일시 중단됩니다.
올바르게 일시 중단하면 검사점이 달라집니다. 현재 작업 상태, 메타데이터 및 출력이 검사점에서 저장되므로 상태 또는 데이터가 손실되지 않고 워크플로 작업을 다시 시작합니다. 워크플로 작업에 검사점이 없으면 올바르게 일시 중단될 수 없습니다. 실행 중인 워크플로에 검사점을 추가하려면 PSPersist 워크플로 공통 매개 변수를 사용합니다. Force 매개 변수를 사용하여 워크플로 작업을 즉시 일시 중단하고 검사점이 없는 워크플로 작업을 일시 중단할 수 있지만 이 작업으로 인해 상태 및 데이터가 손실될 수 있습니다.
워크플로 작업(PSWorkflowJob)과 같은 사용자 지정 작업 유형에서 작업 cmdlet을 사용하기 전에 Import-Module cmdlet을 사용하거나 모듈에서 cmdlet을 사용하여 사용자 지정 작업 유형을 지원하는 모듈을 가져옵니다.
이 cmdlet은 Windows PowerShell 3.0에서 도입되었습니다.
예제
예제 1: 이름으로 워크플로 작업 일시 중단
The first command creates the Get-SystemLog workflow. The workflow uses the CheckPoint-Workflow activity to define a checkpoint in the workflow.
#Sample WorkflowWorkflow Get-SystemLog
{
$Events = Get-WinEvent -LogName System
CheckPoint-Workflow
InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}
The second command uses the *AsJob* parameter that is common to all workflows to run the Get-SystemLog workflow as a background job. The command uses the *JobName* workflow common parameter to specify a friendly name for the workflow job.
PS C:\> Get-SystemLog -AsJob -JobName "Get-SystemLogJob"
The third command uses the **Get-Job** cmdlet to get the Get-SystemLogJob workflow job. The output shows that the value of the **PSJobTypeName** property is PSWorkflowJob.
PS C:\> Get-Job -Name Get-SystemLogJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 Get-SystemLogJob PSWorkflowJob Running True localhost Get-SystemLog
The fourth command uses the **Suspend-Job** cmdlet to suspend the Get-SystemLogJob job. The job runs to the checkpoint and then suspends.
PS C:\> Suspend-Job -Name Get-SystemLogJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 Get-SystemLogJob PSWorkflowJob Suspended True localhost Get-SystemLog
이 예제에서는 워크플로 작업을 일시 중단하는 방법을 보여줍니다.
예제 2: 워크플로 작업 일시 중단 및 다시 시작
The first command suspends the LogWorkflowJob job.The command returns immediately. The output shows that the workflow job is still running, even though it is being suspended.
PS C:\> Suspend-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
The second command uses the **Get-Job** cmdlet to get the LogWorkflowJob job. The output shows that the workflow job suspended successfully.
PS C:\> Get-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Suspended True localhost LogWorkflow
The third command uses the **Get-Job** cmdlet to get the LogWorkflowJob job and the Resume-Job cmdlet to resume it. The output shows that the workflow job resumed successfully and is now running.
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"}
이 명령은 Invoke-Command cmdlet을 사용하여 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
이 명령은 유지 관리 워크플로 작업을 강제로 일시 중단합니다. 유지 관리 작업에는 검사점이 없습니다. 올바르게 일시 중단될 수 없으며 올바르게 다시 시작되지 않을 수 있습니다.
매개 변수
-Confirm
cmdlet을 실행하기 전에 확인 메시지를 표시합니다.
형식: | SwitchParameter |
별칭: | cf |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Filter
조건의 해시 테이블을 지정합니다. 이 cmdlet은 모든 조건을 충족하는 작업을 일시 중단합니다. 키가 작업 속성이고 값이 작업 속성 값인 해시 테이블을 입력합니다.
형식: | Hashtable |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Force
워크플로 작업을 즉시 일시 중단합니다. 이 작업을 수행하면 상태 및 데이터가 손실될 수 있습니다.
기본적으로 Suspend-Job 다음 검사점까지 워크플로 작업을 실행한 다음 일시 중단합니다. 이 매개 변수를 사용하여 검사점이 없는 워크플로 작업을 일시 중단할 수도 있습니다.
형식: | SwitchParameter |
별칭: | F |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-Id
이 cmdlet이 일시 중단하는 작업의 ID를 지정합니다.
ID는 현재 세션의 작업을 고유하게 식별하는 정수입니다. 인스턴스 ID보다 기억하고 입력하는 것이 더 쉽지만 현재 세션에서만 고유합니다. 하나 이상의 ID를 쉼표로 구분하여 입력할 수 있습니다. 작업의 ID를 찾으려면 Get-Job cmdlet을 사용합니다.
형식: | Int32[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-InstanceId
이 cmdlet이 일시 중단하는 작업의 인스턴스 ID를 지정합니다. 기본값은 모든 작업입니다.
인스턴스 ID는 컴퓨터에서 작업을 고유하게 식별하는 GUID입니다. 작업의 인스턴스 ID를 찾으려면 Get-Job사용합니다.
형식: | Guid[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Job
이 cmdlet이 중지하는 워크플로 작업을 지정합니다. 워크플로 작업을 포함하는 변수 또는 워크플로 작업을 가져오는 명령을 입력합니다. 워크플로 작업을 Suspend-Job cmdlet으로 파이프할 수도 있습니다.
형식: | Job[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Name
이 cmdlet이 일시 중단하는 작업의 이름을 지정합니다. 하나 이상의 워크플로 작업 이름을 입력합니다. 와일드카드 문자가 지원됩니다.
형식: | String[] |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-State
작업 상태를 지정합니다. 이 cmdlet은 지정된 상태의 작업만 중지합니다. 이 매개 변수에 허용되는 값은 다음과 같습니다.
- NotStarted
- 달리기
- 완료
- 실패
- 중지
- 막힌
- 일시 중단
- 연결이 끊어진
- 일시 중단
- 중지
Suspend-Job실행 중인 상태에서 워크플로 작업만 일시 중단합니다.
작업 상태에 대한 자세한 내용은 MSDN 라이브러리의 JobState 열거형 참조하세요.
형식: | JobState |
허용되는 값: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Default value: | None |
필수: | True |
파이프라인 입력 허용: | True |
와일드카드 문자 허용: | False |
-Wait
이 cmdlet은 워크플로 작업이 일시 중단된 상태가 될 때까지 명령 프롬프트를 표시하지 않습니다. 워크플로 작업이 아직 일시 중단된 상태가 아니더라도 기본적으로 Suspend-Job 즉시 반환됩니다.
Wait 매개 변수는 Suspend-Job 명령을 Wait-Job cmdlet으로 파이핑하는 것과 같습니다.
형식: | SwitchParameter |
Position: | Named |
Default value: | None |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
-WhatIf
cmdlet이 실행되면 어떻게 되는지 보여 주세요. cmdlet이 실행되지 않습니다.
형식: | SwitchParameter |
별칭: | wi |
Position: | Named |
Default value: | False |
필수: | False |
파이프라인 입력 허용: | False |
와일드카드 문자 허용: | False |
입력
모든 유형의 작업을 이 cmdlet으로 파이프할 수 있습니다. 그러나 Suspend-Job 지원되지 않는 형식의 작업을 가져오면 종료 오류가 반환됩니다.
출력
이 cmdlet은 일시 중단된 작업을 반환합니다.
참고
일시 중단된 작업을 저장하는 메커니즘 및 위치는 작업 유형에 따라 달라질 수 있습니다. 예를 들어 일시 중단된 워크플로 작업은 기본적으로 플랫 파일 저장소에 저장되지만 데이터베이스에 저장할 수도 있습니다.
실행 중 상태가 아닌 워크플로 작업을 제출하면 Suspend-Job 경고 메시지가 표시됩니다. 경고를 표시하지 않으면 WarningAction 일반 매개 변수와 SilentlyContinue 값을 사용합니다.
작업이 일시 중단을 지원하는 형식이 아닌 경우 Suspend-Job 종료 오류를 반환합니다.
이 cmdlet에 의해 일시 중단된 작업을 포함하여 일시 중단된 워크플로 작업을 찾으려면 Get-Job cmdlet의 State 매개 변수를 사용하여 일시 중단된 상태에서 워크플로 작업을 가져옵니다.
일부 작업 유형에는 Windows PowerShell이 작업을 일시 중단하지 못하도록 하는 옵션 또는 속성이 있습니다. 작업 일시 중단 시도가 실패하는 경우 작업 옵션 및 속성이 일시 중단을 허용하는지 확인합니다.