Stop-Job
Windows PowerShell 백그라운드 작업을 중지합니다.
구문
Stop-Job [[-InstanceId] <Guid[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Stop-Job [-Job] <Job[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Stop-Job [[-Name] <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Stop-Job [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
Stop-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-PassThru] [-Confirm] [-WhatIf] [<CommonParameters>]
설명
Stop-Job cmdlet은 진행 중인 Windows PowerShell 백그라운드 작업을 중지합니다. 이 cmdlet을 사용하여 모든 작업을 중지하거나 이름, ID, 인스턴스 ID 또는 상태를 기준으로 하거나 작업 개체를 Stop-Job으로 전달하여 선택된 작업을 중지합니다.
Stop-Job을 사용하여 Start-Job을 통해서나 Invoke-Command의 AsJob 매개 변수를 통해 시작된 작업을 중지할 수 있습니다. 백그라운드 작업을 중지할 때 Windows PowerShell은 해당 작업 큐에서 보류 중인 모든 작업을 완료한 다음 해당 작업을 종료합니다. 이 명령이 전송된 후에는 새 작업이 큐에 추가되지 않습니다.
이 cmdlet은 백그라운드 작업을 삭제하지 않습니다. 작업을 삭제하려면 Remove-Job을 사용합니다.
매개 변수
-Id <Int32[]>
지정된 ID를 가진 작업을 중지합니다. 기본값은 현재 세션의 모든 작업입니다.
ID는 현재 세션 내에서 작업을 고유하게 식별하는 정수입니다. 이 ID는 InstanceId보다 기억하거나 입력하기 쉽지만 현재 세션 내부에서만 고유합니다. 쉼표로 구분하여 하나 이상의 ID를 입력할 수 있습니다. 작업 ID를 찾으려면 매개 변수 없이 "Get-Job"을 입력합니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-InstanceId <Guid[]>
지정된 인스턴스 ID를 가진 작업만 중지합니다. 기본값은 모든 작업입니다.
인스턴스 ID는 컴퓨터의 작업을 고유하게 식별하는 GUID입니다. 작업의 인스턴스 ID를 찾으려면 Get-Job을 사용합니다.
필수 여부 |
false |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-Job <Job[]>
중지할 작업을 지정합니다. 작업이 포함된 변수나 작업을 가져오는 명령을 입력하십시오. 또한 파이프라인 연산자를 사용하여 작업을 Stop-Job cmdlet으로 전송할 수 있습니다. 기본적으로 Stop-Job은 현재 세션에서 시작된 모든 작업을 삭제합니다.
필수 여부 |
true |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByValue, ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-Name <string[]>
지정된 이름의 작업만 중지합니다. 작업 이름을 쉼표로 구분된 목록으로 입력하거나 와일드카드 문자(*)를 사용하여 작업 이름 패턴을 입력합니다. 기본적으로 Stop-Job은 현재 세션에서 만들어진 모든 작업을 중지합니다.
이름이 반드시 고유하지는 않으므로 이름으로 작업을 중지하는 경우 WhatIf 및 Confirm 매개 변수를 사용하십시오.
필수 여부 |
false |
위치 |
1 |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
true |
-PassThru
새 백그라운드 작업을 나타내는 개체를 반환합니다. 기본적으로 이 cmdlet에서는 출력을 생성하지 않습니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-State <JobState>
지정된 상태의 작업만 중지합니다. 유효한 값은 NotStarted, Running, Completed, Stopped, Failed 및 Blocked입니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
true (ByPropertyName) |
와일드카드 문자 적용 여부 |
false |
-Confirm
명령을 실행하기 전에 확인 메시지를 표시합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
-WhatIf
명령을 실제로 실행하지 않고도 명령이 실행될 경우 발생할 수 있는 현상을 설명합니다.
필수 여부 |
false |
위치 |
named |
기본값 |
|
파이프라인 입력 적용 여부 |
false |
와일드카드 문자 적용 여부 |
false |
<CommonParameters>
이 cmdlet은 -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, -OutVariable 등의 일반 매개 변수를 지원합니다. 자세한 내용은 about_commonparameters.
입력 및 출력
입력 유형은 cmdlet으로 파이프할 수 있는 개체의 유형입니다. 반환 유형은 cmdlet에서 반환되는 개체의 유형입니다.
입력 |
System.Management.Automation.RemotingJob 작업 개체를 Stop-Job으로 파이프할 수 있습니다. |
출력 |
없음 또는 System.Management.Automation.RemotingJob PassThru 매개 변수를 사용하는 경우 Stop-Job은 작업 개체를 반환합니다. 그렇지 않으면 아무 출력도 생성하지 않습니다. |
예 1
C:\PS>$s = new-pssession -computername Server01 -credential domain01\admin02
C:\PS> $j = invoke-command -session $s -scriptblock {start-job -scriptblock {get-eventlog system}}
C:\PS> invoke-command -session $s -scriptblock {param($j) stop-job -job $j} -ArgumentList $j
설명
-----------
이 예에서는 Stop-Job cmdlet을 사용하여 원격 컴퓨터에서 실행되는 작업을 중지하는 방법을 보여 줍니다.
Invoke-Command를 통해 Start-Job 명령을 원격으로 실행하여 작업을 시작했기 때문에 작업 개체가 원격 컴퓨터에 저장되며, 다른 Invoke-Command 명령을 사용하여 Stop-Job 명령을 원격으로 실행해야 합니다. 원격 백그라운드 작업에 대한 자세한 내용은 about_Remote_Jobs를 참조하십시오.
첫 번째 명령은 Server01 컴퓨터에 Windows PowerShell 세션(PSSession)을 만든 다음 세션 개체를 $s 변수에 저장합니다. 이 명령은 도메인 관리자의 자격 증명을 사용합니다.
두 번째 명령은 Invoke-Command cmdlet을 사용하여 세션에서 Start-Job 명령을 실행합니다. 작업에서 이 명령은 시스템 이벤트 로그의 모든 이벤트를 가져옵니다. 결과 작업 개체는 $j 변수에 저장됩니다.
세 번째 명령은 작업을 중지합니다. 이 명령은 Invoke-Command cmdlet을 사용하여 Server01의 PSSession에서 Stop-Job 명령을 실행합니다. 작업 개체가 로컬 컴퓨터의 변수인 $j에 저장되기 때문에 이 명령은 "param" 키워드를 사용하여 명령에서 로컬 변수를 선언하고 ArgumentList 매개 변수를 사용하여 변수의 값을 제공합니다.
명령이 완료되면 작업이 중지되고 $s의 PSSession을 사용할 수 있습니다.
예 2
C:\PS>stop-job -state failed
설명
-----------
이 명령은 State 값이 "Failed"인 모든 작업을 중지합니다.
예 3
C:\PS>stop-job -name job1
설명
-----------
이 명령은 Job1 백그라운드 작업을 중지합니다.
예 4
C:\PS>stop-job -id 1, 3, 4
설명
-----------
이 명령은 세 작업을 중지하며, 해당 작업을 ID로 식별합니다.
예 5
C:\PS>get-job | stop-job
설명
-----------
이 명령은 현재 세션에서 모든 백그라운드 작업을 중지합니다.
예 6
C:\PS>stop-job -state blocked
설명
-----------
이 명령은 작업 상태가 "Blocked"인 모든 작업을 중지합니다.
예 7
C:\PS>get-job | format-table ID, Name, Command, @{Label="State";Expression={$_.jobstateinfo.state}}, I
nstanceID -auto
Id Name Command State InstanceId
-- ---- ------- ----- ----------
1 Job1 start-service schedule Running 05abb67a-2932-4bd5-b331-c0254b8d9146
3 Job3 start-service schedule Running c03cbd45-19f3-4558-ba94-ebe41b68ad03
5 Job5 get-service s* Blocked e3bbfed1-9c53-401a-a2c3-a8db34336adf
C:\PS> stop-job -instanceid e3bbfed1-9c53-401a-a2c3-a8db34336adf
설명
-----------
이들 명령은 인스턴스 ID에 따라 작업을 중지하는 방법을 보여 줍니다.
첫 번째 명령은 Get-Job 명령을 사용하여 현재 세션에서 작업을 가져옵니다. 이 명령은 파이프라인 연산자(|)를 사용하여 각 작업의 지정된 속성을 테이블로 표시하는 Format-Table 명령으로 작업을 보냅니다. 이 테이블에는 각 작업의 인스턴스 ID가 포함되며 계산된 속성을 사용하여 작업 상태가 표시됩니다.
두 번째 명령은 InstanceID 매개 변수와 함께 Stop-Job 명령을 사용하여 선택된 작업을 중지합니다.
예 8
C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-eventlog system} -asjob
C:\PS> $j | stop-job -passthru
Id Name State HasMoreData Location Command
-- ---- ---- ----------- -------- -------
5 Job5 Stopped True judithh-tablet get-eventlog system
설명
-----------
이 예에서는 Stop-Job cmdlet을 사용하여 원격 컴퓨터에서 실행되는 작업을 중지하는 방법을 보여 줍니다.
Invoke-Command의 AsJob 매개 변수를 사용하여 작업을 시작했기 때문에 작업이 원격 컴퓨터에서 실행되는 경우에도 작업 개체가 로컬 컴퓨터에 있습니다. 따라서 로컬 Stop-Job 명령을 사용하여 작업을 중지할 수 있습니다.
첫 번째 명령은 Invoke-Command cmdlet을 사용하여 Server01 컴퓨터에서 백그라운드 작업을 시작합니다. 이 명령은 AsJob 매개 변수를 사용하여 원격 명령을 백그라운드 작업으로 실행합니다.
이 명령은 Start-Job이 반환하는 것과 동일한 작업 개체를 반환하고 해당 작업 개체를 $j 변수에 저장합니다.
두 번째 명령은 파이프라인 연산자를 사용하여 $j 변수의 작업을 Stop-Job으로 보냅니다. 이 명령은 PassThru 매개 변수를 사용하여 작업 개체를 반환하도록 Stop-Job에 지정합니다. 작업 개체 표시를 통해 작업의 State가 "Stopped"인 것을 확인할 수 있습니다.
원격 백그라운드 작업에 대한 자세한 내용은 about_Remote_Jobs를 참조하십시오.
참고 항목
개념
about_Jobs
about_Job_Details
about_remote_jobs
Start-Job
Get-Job
Receive-Job
Wait-Job
Remove-Job
Invoke-Command