Windows PowerShell 백그라운드 작업을 삭제합니다.

구문

Remove-Job [-Id] <Int32[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Job [-Command <string[]>] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Job [[-InstanceId] <Guid[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Job [-Job] <Job[]> [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Job [[-Name] <string[]>] [-Force] [-Confirm] [-WhatIf] [<CommonParameters>]

Remove-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-Confirm] [-WhatIf] [<CommonParameters>]

설명

Remove-Job cmdlet은 Start-Job이나 임의의 cmdlet의 AsJob 매개 변수를 사용하여 시작된 Windows PowerShell 백그라운드 작업을 삭제합니다.

이 cmdlet을 사용하여 모든 작업을 삭제하거나 이름, ID, 인스턴스 ID, 명령 또는 상태를 기준으로 하거나 작업 개체를 Remove-Job으로 전달하여 선택된 작업을 삭제합니다. 매개 변수나 매개 변수 값이 없는 경우 Remove-Job은 영향을 주지 않습니다.

실행 중인 작업을 삭제하기 전에 Stop-Job cmdlet을 사용하여 작업을 중지합니다. 실행 중인 작업을 삭제하려고 하면 명령이 실패합니다. Remove-Job의 Force 매개 변수를 사용하여 실행 중인 작업을 삭제할 수 있습니다.

백그라운드 작업을 삭제하지 않으면 작업이 만들어진 세션을 닫을 때까지 작업이 전역 작업 캐시에 남아 있습니다.

매개 변수

-Command <string[]>

지정된 단어를 명령에 포함하는 작업을 제거합니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-Force

상태가 "Running"인 경우에도 작업을 삭제합니다. Force 매개 변수를 사용하지 않으면 Remove-Job이 실행 중인 작업을 삭제하지 않습니다.

필수 여부

false

위치

named

기본값

파이프라인 입력 적용 여부

false

와일드카드 문자 적용 여부

false

-Id <Int32[]>

지정된 ID를 가진 백그라운드 작업을 삭제합니다.

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

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-InstanceId <Guid[]>

지정된 인스턴스 ID를 가진 작업을 삭제합니다.

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

필수 여부

false

위치

1

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

false

-Job <Job[]>

삭제할 작업을 지정합니다. 작업이 포함된 변수나 작업을 가져오는 명령을 입력하십시오. 또한 파이프라인 연산자를 사용하여 작업을 Remove-Job cmdlet으로 전송할 수 있습니다.

필수 여부

true

위치

1

기본값

파이프라인 입력 적용 여부

true (ByValue, ByPropertyName)

와일드카드 문자 적용 여부

false

-Name <string[]>

지정된 이름의 작업만 삭제합니다. 와일드카드를 사용할 수 있습니다.

이름이 세션 내에서도 반드시 고유하지는 않으므로 이름으로 작업을 삭제하는 경우 WhatIf 및 Confirm 매개 변수를 사용하십시오.

필수 여부

false

위치

1

기본값

파이프라인 입력 적용 여부

true (ByPropertyName)

와일드카드 문자 적용 여부

true

-State <JobState>

지정된 상태의 작업만 삭제합니다. 유효한 값은 NotStarted, Running, Completed, Stopped, Failed 및 Blocked입니다. Running 상태인 작업을 삭제하려면 Force 매개 변수를 사용합니다.

필수 여부

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.Job

작업 개체를 Remove-Job으로 파이프할 수 있습니다.

출력

없음

이 cmdlet은 어떠한 출력도 생성하지 않습니다.

예 1

C:\PS>$batch = get-job -name BatchJob

C:\PS> $batch | remove-job

설명
-----------
이들 명령은 BatchJob이라는 백그라운드 작업을 현재 세션에서 삭제합니다. 첫 번째 명령은 Get-Job cmdlet을 사용하여 작업을 나타내는 개체를 가져온 다음 $batch 변수에 해당 작업을 저장합니다. 두 번째 명령은 파이프라인 연산자(|)를 사용하여 작업을 Remove-Job cmdlet으로 보냅니다.

이 명령은 Remove-Job의 Job 매개 변수를 사용하는 것과 같습니다(예: "remove-job -job $batch").






예 2

C:\PS>get-job | remove-job

설명
-----------
이 명령은 현재 세션의 모든 작업을 삭제합니다.






예 3

C:\PS>remove-job -state NotStarted

설명
-----------
이 명령은 현재 세션에서 아직 시작되지 않은 모든 작업을 삭제합니다.






예 4

C:\PS>remove-job -name *batch -force

설명
-----------
이 명령은 현재 세션에서 "batch"로 끝나는 이름의 모든 작업을 삭제합니다. 여기에는 실행 중인 작업도 포함됩니다. 

이 명령은 Remove-Job의 Name 매개 변수를 사용하여 작업 이름 패턴을 지정하고 Force 매개 변수를 사용하여 진행 중인 작업을 비롯한 모든 작업이 제거되도록 합니다.






예 5

C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-process} -asJob

C:\PS> $j | remove-job

설명
-----------
이 예에서는 Remove-Job cmdlet을 사용하여 Invoke-Command cmdlet의 AsJob 매개 변수를 통해 원격 컴퓨터에서 시작된 작업을 제거하는 방법을 보여 줍니다.

첫 번째 명령은 Invoke-Command cmdlet을 사용하여 Server01 컴퓨터에서 작업을 실행합니다. 이 명령은 AsJob 매개 변수를 사용하여 백그라운드 작업으로 명령을 실행하고 결과 작업 개체를 $j 변수에 저장합니다.

이 명령이 AsJob 매개 변수를 사용했기 때문에 작업이 원격 컴퓨터에서 실행되는 경우에도 작업 개체가 로컬 컴퓨터에 만들어집니다. 따라서 로컬 명령을 사용하여 작업을 관리합니다.

두 번째 명령은 Remove-Job cmdlet을 사용하여 작업을 제거합니다. 이 명령은 파이프라인 연산자(|)를 사용하여 $j의 작업을 Remove-Job으로 보냅니다. 이 명령은 로컬 명령입니다. 원격 명령은 AsJob 매개 변수를 사용하여 시작된 작업을 제거하는 데 필요하지 않습니다.






예 6

C:\PS>$s = new-pssession -computername Server01

C:\PS> invoke-command -session $s -scriptblock {start-job -scriptblock {get-process} -name MyJob}

C:\PS> invoke-command -session $s -scriptblock {remove-job -name MyJob}

설명
-----------
이 예에서는 Invoke-Command를 사용하여 시작된 작업을 제거하고 Start-Job 명령을 실행하는 방법을 보여 줍니다. 이 경우 작업 개체가 원격 컴퓨터에 만들어지므로 원격 명령을 사용하여 작업을 관리합니다.

첫 번째 명령은 New-PSSession cmdlet을 사용하여 Server01 컴퓨터에 PSSession(영구 연결)을 만듭니다. 영구 연결은 Start-Job 명령을 원격으로 실행할 때 필요합니다. 이 명령은 PSSession을 $s 변수에 저장합니다.

두 번째 명령은 Invoke-Command cmdlet을 사용하여 $s의 PSSession에서 Start-Job 명령을 실행합니다. 이 작업은 Get-Process 명령을 실행합니다. 또한 Start-Job의 Name 매개 변수를 사용하여 작업의 이름을 지정합니다.

세 번째 명령은 Invoke-Command cmdlet을 사용하여 $s의 PSSession에서 Remove-Job 명령을 실행합니다. 이 명령은 Remove-Job의 Name 매개 변수를 사용하여 삭제할 작업을 식별합니다.






예 7

C:\PS>$j = start-job -script {get-process powershell}

C:\PS> $j | format-list -property *

C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed

C:\PS> $j = start-job -script {get-process powershell}

C:\PS> $j | format-list -property *

HasMoreData   : False
StatusMessage :
Location      : localhost
Command       : get-process powershell
JobStateInfo  : Failed
Finished      : System.Threading.ManualResetEvent
InstanceId    : dce2ee73-f8c9-483e-bdd7-a549d8687eed
Id            : 1
Name          : Job1
ChildJobs     : {Job2}
Output        : {}
Error         : {}
Progress      : {}
Verbose       : {}
Debug         : {}
Warning       : {}
StateChanged  :

C:\PS> remove-job -instanceID dce2ee73-f8c9-483e-bdd7-a549d8687eed

설명
-----------
이 예에서는 인스턴스 ID에 따라 작업을 제거하는 방법을 보여 줍니다. 

첫 번째 명령은 Start-Job cmdlet을 사용하여 백그라운드 작업을 시작합니다. 이 명령은 결과 작업 개체를 $j 변수에 저장합니다.

두 번째 명령은 파이프라인 연산자(|)를 사용하여 $j의 작업 개체를 Format-List 명령으로 보냅니다. Format-List 명령은 모든 것을 나타내는 * 값과 함께 Property 매개 변수를 사용하여 작업 개체의 모든 속성을 목록으로 표시합니다.

작업 개체 표시에서는 개체의 다른 속성과 함께 ID 및 InstanceID 속성의 값을 보여 줍니다. 

세 번째 명령은 Remove-Job 명령을 사용하여 현재 세션에서 작업을 제거합니다. 명령을 생성하려면 개체 표시에서 InstanceID 값을 복사하고 붙여 넣을 수 있습니다. 

Windows PowerShell 콘솔에서 값을 복사하려면 마우스를 사용하여 값을 선택한 다음 Enter 키를 눌러 복사합니다. 값을 붙여 넣으려면 마우스 오른쪽 단추를 클릭합니다.






참고 항목




목차