Suspend-Job
워크플로 작업을 일시적으로 중지합니다.
구문
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
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: 이름으로 워크플로 작업 일시 중단
이 예제에서는 워크플로 작업을 일시 중단하는 방법을 보여줍니다.
첫 번째 명령은 Get-SystemLog
워크플로를 만듭니다. 워크플로는 CheckPoint-Workflow
작업을 사용하여 워크플로에서 검사점을 정의합니다.
두 번째 명령은 모든 워크플로에 공통적인 AsJob 매개 변수를 사용하여 Get-SystemLog
워크플로를 백그라운드 작업으로 실행합니다. 이 명령은 JobName 워크플로 공통 매개 변수를 사용하여 워크플로 작업의 이름을 지정합니다.
세 번째 명령은 Get-Job
cmdlet을 사용하여 LogflowJob
워크플로 작업을 가져옵니다. 출력은 PSJobTypeName 속성의 값이 PSWorkflowJob임을 보여 줍니다.
네 번째 명령은 Suspend-Job
cmdlet을 사용하여 LogflowJob
작업을 일시 중단합니다. 작업이 검사점까지 실행된 다음 일시 중단됩니다.
#Sample Workflow
Workflow Get-SystemLog
{
$Events = Get-WinEvent -LogName System
CheckPoint-Workflow
InlineScript {\\Server01\Scripts\Analyze-SystemEvents.ps1 -Events $Events}
}
Get-SystemLog -AsJob -JobName "LogflowJob"
Get-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Running True localhost Get-SystemLog
Suspend-Job -Name LogflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
4 LogflowJob PSWorkflowJob Suspended True localhost Get-SystemLog
예제 2: 워크플로 작업 일시 중단 및 다시 시작
이 예제에서는 워크플로 작업을 일시 중단하고 다시 시작하는 방법을 보여 있습니다.
첫 번째 명령은 LogWorkflowJob 작업을 일시 중단합니다. 명령은 즉시 반환됩니다. 출력은 워크플로 작업이 일시 중단되더라도 여전히 실행 중임을 보여줍니다.
두 번째 명령은 Get-Job
cmdlet을 사용하여 LogWorkflowJob 작업을 가져옵니다. 출력은 워크플로 작업이 성공적으로 일시 중단되었음을 보여줍니다.
세 번째 명령은 Get-Job
cmdlet을 사용하여 LogWorkflowJob 작업 및 Resume-Job
cmdlet을 가져와 다시 시작합니다. 출력은 워크플로 작업이 성공적으로 다시 시작되어 현재 실행 중임을 보여 냅니다.
Suspend-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
Get-Job -Name LogWorkflowJob
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Suspended True localhost LogWorkflow
Get-Job -Name LogWorkflowJob | Resume-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
67 LogflowJob PSWorkflowJob Running True localhost LogWorkflow
예제 3: 원격 컴퓨터에서 워크플로 작업 일시 중단
Invoke-Command -ComputerName Srv01 -Scriptblock {Suspend-Job -Filter @{CustomID="031589"}
이 명령은 Invoke-Command
cmdlet을 사용하여 Srv01 원격 컴퓨터에서 워크플로 작업을 일시 중단합니다.
Filter 매개 변수의 값은 CustomID 값을 지정하는 해시 테이블입니다.
이 CustomID 작업 메타데이터(PSPrivateMetadata)입니다.
예제 4: 워크플로 작업이 일시 중단되기를 기다립니다.
Suspend-Job VersionCheck -Wait
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
5 VersionCheck PSWorkflowJob Suspended True localhost LogWorkflow
이 명령은 VersionCheck 워크플로 작업을 일시 중단합니다. 이 명령은 Wait 매개 변수를 사용하여 워크플로 작업이 일시 중단될 때까지 기다립니다. 워크플로 작업이 다음 검사점까지 실행되고 일시 중단되면 명령이 완료되고 작업 개체가 반환됩니다.
예제 5: 워크플로 작업이 일시 중단되도록 강제 적용
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
실행 중인 상태에서 워크플로 작업만 일시 중단합니다.
작업 상태에 대한 자세한 내용은 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은 일시 중단된 작업을 반환합니다.
참고
Windows PowerShell에는 Suspend-Job
다음과 같은 별칭이 포함되어 있습니다.
sujb
일시 중단된 작업을 저장하는 메커니즘 및 위치는 작업 유형에 따라 달라질 수 있습니다. 예를 들어 일시 중단된 워크플로 작업은 기본적으로 플랫 파일 저장소에 저장되지만 데이터베이스에 저장할 수도 있습니다.
실행 중 상태가 아닌 워크플로 작업을 제출하면 Suspend-Job
경고 메시지가 표시됩니다. 경고를 표시하지 않으면 WarningAction 일반 매개 변수와 SilentlyContinue 값을 사용합니다.
작업이 일시 중단을 지원하는 형식이 아닌 경우 Suspend-Job
종료 오류를 반환합니다.
이 cmdlet에 의해 일시 중단된 작업을 포함하여 일시 중단된 워크플로 작업을 찾으려면 Get-Job
cmdlet의 State 매개 변수를 사용하여 일시 중단된 상태에서 워크플로 작업을 가져옵니다.
일부 작업 유형에는 Windows PowerShell이 작업을 일시 중단하지 못하도록 하는 옵션 또는 속성이 있습니다. 작업 일시 중단 시도가 실패하는 경우 작업 옵션 및 속성이 일시 중단을 허용하는지 확인합니다.
관련 링크
PowerShell