Remove-Job
PowerShell バックグラウンド ジョブを削除します。
構文
Remove-Job
[-Force]
[-Id] <Int32[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Job] <Job[]>
[-Force]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-Name] <String[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-InstanceId] <Guid[]>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Force]
[-Filter] <Hashtable>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-State] <JobState>
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Remove-Job
[-Command <String[]>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
説明
このコマンドレットはRemove-Job、コマンドレットまたは AsJob パラメーターをStart-JobサポートするコマンドレットによってInvoke-Command開始された PowerShell バックグラウンド ジョブを削除します。
すべてのジョブを削除したり、選択したジョブを削除したりするために使用 Remove-Job できます。 ジョブは、 名前、 ID、 インスタンス ID、 コマンド、または 状態によって識別されます。 または、ジョブ オブジェクトをパイプライン Remove-Jobの下に送信することもできます。 パラメーターまたはパラメーター値がない場合、 Remove-Job 効果はありません。
PowerShell 3.0 以降では、 Remove-Job スケジュールされたジョブやワークフロー ジョブなどのカスタム ジョブの種類を削除できます。 たとえば、 Remove-Job スケジュールされたジョブ、ディスク上のスケジュールされたジョブのすべてのインスタンス、およびトリガーされたすべてのジョブ インスタンスの結果を削除します。
実行中のジョブを削除しようとすると、 Remove-Job 失敗します。 実行中のジョブを Stop-Job 停止するには、コマンドレットを使用します。 または、実行中のジョブを削除するには、Force パラメーターと共に使用Remove-Jobします。
バックグラウンド ジョブを削除するか、PowerShell セッションを閉じるまで、ジョブはグローバル ジョブ キャッシュに残ります。
例
例 1: ジョブの名前を使用してジョブを削除する
この例では、変数とパイプラインを使用して、名前でジョブを削除します。
$batch = Get-Job -Name BatchJob
$batch | Remove-Job
Get-Jobは、Name パラメーターを使用してジョブ BatchJob を指定します。 ジョブ オブジェクトは変数に $batch 格納されます。 オブジェクト $batch がパイプライン Remove-Jobの下に送信されます。
別の方法として、 Job パラメーター (例: Remove-Job -Job $batch.
例 2: セッション内のすべてのジョブを削除する
この例では、現在の PowerShell セッション内のすべてのジョブが削除されます。
Get-job | Remove-Job
Get-Job は、現在の PowerShell セッション内のすべてのジョブを取得します。 ジョブ オブジェクトは、パイプライン Remove-Jobの下に送信されます。
例 3: NotStarted ジョブの削除
次の使用例は、開始されていない現在の PowerShell セッションからすべてのジョブを削除します。
Remove-Job -State NotStarted
Remove-Job は 、State パラメーターを使用してジョブの状態を指定します。
例 4: フレンドリ名を使用してジョブを削除する
次の使用例は、batch* で終わるフレンドリ名 (実行中のジョブを含む ) を含む、現在のセッションからすべてのジョブを削除します。
Remove-Job -Name *batch -Force
Remove-Job は 、Name パラメーターを使用してジョブ名パターンを指定します。 パターンには、バッチで終わるすべてのジョブ名を検索するアスタリスク (*) ワイルドカードが含まれています。 Force パラメーターは、実行中のジョブを削除します。
例 5: Invoke-Commandによって作成されたジョブを削除する
次の使用例は、AsJob パラメーターを使用してInvoke-Commandリモート コンピューターで開始されたジョブを削除します。
この例では AsJob パラメーターを使用するため、ジョブ オブジェクトはローカル コンピューターに作成されます。 ただし、ジョブはリモート コンピューターで実行されます。 その結果、ジョブを管理するには、ローカルのコマンドを使用することになります。
$job = Invoke-Command -ComputerName Server01 -ScriptBlock {Get-Process} -AsJob
$job | Remove-Job
Invoke-Commandは Server01 コンピューターでジョブを実行します。 AsJob パラメーターは、ScriptBlock をバックグラウンド ジョブとして実行します。 ジョブ オブジェクトは変数に $job 格納されます。 $job変数オブジェクトは、パイプラインRemove-Jobの下に送信されます。
例 6: Invoke-CommandおよびStart-Jobによって作成されたジョブを削除する
この例では、実行Start-Jobに使用Invoke-Commandして開始されたリモート コンピューター上のジョブを削除する方法を示します。 ジョブ オブジェクトはリモート コンピューターに作成され、リモート コマンドを使用してジョブを管理します。 リモート Start-Job コマンドを実行する場合は、永続的な接続が必要です。
$S = New-PSSession -ComputerName Server01
Invoke-Command -Session $S -ScriptBlock {Start-Job -ScriptBlock {Get-Process} -Name MyJob}
Invoke-Command -Session $S -ScriptBlock {Remove-Job -Name MyJob}
New-PSSessionは、Server01 コンピューターへの永続的な接続である PSSession を作成します。 接続は変数に $S 保存されます。
Invoke-Command に保存 $Sされているセッションに接続します。 ScriptBlock は、リモート ジョブを開始するために使用Start-Jobします。 ジョブはコマンドを Get-Process 実行し、 Name パラメーターを使用してフレンドリ ジョブ名 MyJob を指定します。
Invoke-Command セッションを $S 使用して実行します Remove-Job。 Name パラメーターは、MyJob という名前のジョブが削除されることを指定します。
例 7: InstanceId を使用してジョブを削除する
この例では、 その InstanceId に基づいてジョブを削除します。
$job = Start-Job -ScriptBlock {Get-Process PowerShell}
$job | Format-List -Property *
Remove-Job -InstanceId ad02b942-8007-4407-87f3-d23e71955872
State : Completed
HasMoreData : True
StatusMessage :
Location : localhost
Command : Get-Process PowerShell
JobStateInfo : Completed
Finished : System.Threading.ManualResetEvent
InstanceId : ad02b942-8007-4407-87f3-d23e71955872
Id : 3
Name : Job3
ChildJobs : {Job4}
PSBeginTime : 7/26/2019 11:36:56
PSEndTime : 7/26/2019 11:36:57
PSJobTypeName : BackgroundJob
Output : {}
Error : {}
Progress : {}
Verbose : {}
Debug : {}
Warning : {}
Information : {}
Start-Job はバックグラウンド ジョブを開始し、ジョブ オブジェクトは変数に $job 保存されます。
オブジェクト $job がパイプライン Format-Listの下に送信されます。 Property パラメーターでは、アスタリスク (*) を使用して、すべてのオブジェクトのプロパティを一覧に表示するように指定します。
Remove-Jobは、InstanceId パラメーターを使用して、削除するジョブを指定します。
パラメーター
指定された単語をコマンドに含んでいるジョブを削除します。 コンマ区切りの配列を入力できます。
| Type: | String[] |
| Position: | Named |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
実行前に確認 Remove-Job を求めるメッセージが表示されます。
| Type: | SwitchParameter |
| Aliases: | cf |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
関連付けられているハッシュ テーブルで確立されたすべての条件を満たすジョブを削除します。 ジョブのプロパティをキー、ジョブのプロパティ値を値とするハッシュ テーブルを入力します。
このパラメーターは、ワークフロー ジョブ、スケジュールされたジョブなどの、カスタムのジョブの種類に対してのみ機能します。 これは、標準のバックグラウンド ジョブ (例: Start-Job.
このパラメーターは、PowerShell 3.0 で導入されました。
| Type: | Hashtable |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
ジョブの状態が 実行中の場合でも、ジョブを削除します。 Force パラメーターが指定されていない場合、Remove-Job実行中のジョブは削除されません。
| Type: | SwitchParameter |
| Aliases: | F |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
指定した ID を持つバックグラウンド ジョブを削除します。コンマ区切りの配列を入力できます。 ジョブの ID は、現在のセッション内のジョブを識別する一意の整数です。
ジョブの ID を検索するには、パラメーターなしで使用 Get-Job します。
| Type: | Int32[] |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
指定した InstanceId を持つジョブを削除します。 コンマ区切りの配列を入力できます。 InstanceId は、ジョブを識別する一意の GUID です。
ジョブの InstanceId を検索するには、次を使用 Get-Jobします。
| Type: | Guid[] |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
削除するジョブを指定します。 ジョブが格納されている変数、またはジョブを取得するコマンドを入力します。 コンマ区切りの配列を入力できます。
パイプライン Remove-Jobの下にジョブ オブジェクトを送信できます。
| Type: | Job[] |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
指定されたフレンドリ名を持つジョブのみを削除します。 ワイルドカードを使用できます。 コンマ区切りの配列を入力できます。
PowerShell セッション内であっても、ジョブのフレンドリ名が一意であるとは限りません。 ファイルを名前で削除する場合は、 WhatIf パラメーターと Confirm パラメーターを使用します。
| Type: | String[] |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | True |
指定した状態のジョブのみを削除します。 実行中の状態のジョブを削除するには、Force パラメーターを使用します。
指定できる値:
- AtBreakpoint
- [ブロック済み]
- 完了
- [Disconnected](切断済み)
- 失敗
- NotStarted
- 実行中
- 停止済み
- 停止中
- Suspended
- 中断中
| Type: | JobState |
| Accepted values: | AtBreakpoint, Blocked, Completed, Disconnected, Failed, NotStarted, Running, Stopped, Stopping, Suspended, Suspending |
| Position: | 0 |
| Default value: | None |
| Accept pipeline input: | True |
| Accept wildcard characters: | False |
実行した場合 Remove-Job の動作を示します。 コマンドレットは実行されません。
| Type: | SwitchParameter |
| Aliases: | wi |
| Position: | Named |
| Default value: | False |
| Accept pipeline input: | False |
| Accept wildcard characters: | False |
入力
パイプライン Remove-Jobの下にジョブ オブジェクトを送信できます。
出力
None
Remove-Job は出力を生成しません。
メモ
PowerShell ジョブによって新しいプロセスが作成されます。 ジョブが完了すると、プロセスは終了します。 実行すると Remove-Job 、ジョブの状態が削除されます。
ジョブが完了する前に停止し、そのプロセスが終了していない場合、プロセスは強制的に終了されます。