Windows PowerShell バックグラウンド ジョブを停止します。
構文
Stop-Job [[-InstanceId] <Guid[]>] [-PassThru] [-確認] [-WhatIf] [<CommonParameters>] Stop-Job [-Job] <Job[]> [-PassThru] [-確認] [-WhatIf] [<CommonParameters>] Stop-Job [[-Name] <string[]>] [-PassThru] [-確認] [-WhatIf] [<CommonParameters>] Stop-Job [-Id] <Int32[]> [-PassThru] [-確認] [-WhatIf] [<CommonParameters>] Stop-Job [-State {<NotStarted> | <Running> | <Completed> | <Failed> | <Stopped> | <Blocked>}] [-PassThru] [-確認] [-WhatIf] [<CommonParameters>]
説明
Stop-Job コマンドレットは、進行中の Windows PowerShell バックグラウンド ジョブを停止します。このコマンドレットを使用すると、すべてのジョブを停止したり、名前、ID、インスタンス ID、または状態に基づいて選択したジョブのみを停止したりできます。また、ジョブ オブジェクトを Stop-Job に渡すことで停止することもできます。
Stop-Job を使用して、Start-Job、または Invoke-Command の AsJob パラメーターを使用して開始されたジョブを停止できます。バックグラウンド ジョブを停止すると、Windows PowerShell はジョブ キューにある保留中のすべてのタスクを完了してから、ジョブを終了します。このコマンドの送信後は、新しいタスクがキューに追加されることはありません。
このコマンドレットは、バックグラウンド ジョブを削除しません。ジョブを削除するには、Remove-Job を使用します。
パラメーター
-Id <Int32[]>
指定された ID を持つジョブを停止します。既定値は現在のセッションのすべてのジョブです。
ID は、現在のセッション内のジョブを一意に識別する整数です。InstanceId よりも覚えやすく入力も容易ですが、一意であるのは現在のセッション内のみです。1 つまたは複数の 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 コマンドレットに送信することもできます。既定では、Stop-Job は現在のセッションで開始されたすべてのジョブを削除します。
必須 |
true |
位置 |
1 |
既定値 |
|
パイプライン入力を許可する |
true (ByValue, ByPropertyName) |
ワイルドカード文字を許可する |
false |
-Name <string[]>
指定されたフレンドリ名のジョブのみを停止します。ジョブ名の一覧をコンマ区切りで入力するか、ワイルドカード文字 (*) を使用してジョブ名パターンを入力します。既定では、Stop-Job は現在のセッションで作成されたすべてのジョブを停止します。
フレンドリ名が一意である保証はないため、名前を指定してジョブを停止するときには WhatIf パラメーターおよび Confirm パラメーターを使用します。
必須 |
false |
位置 |
1 |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
true |
-PassThru
新しいバックグラウンド ジョブを表すオブジェクトを返します。既定では、このコマンドレットによる出力はありません。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-State <JobState>
指定された状態にあるジョブのみを停止します。有効な値は、NotStarted、Running、Completed、Stopped、Failed、および Blocked です。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
true (ByPropertyName) |
ワイルドカード文字を許可する |
false |
-確認
コマンドを実行する前に確認メッセージを表示します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
-WhatIf
実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。
必須 |
false |
位置 |
named |
既定値 |
|
パイプライン入力を許可する |
false |
ワイルドカード文字を許可する |
false |
<CommonParameters>
このコマンドレットは、次の共通パラメーターをサポートします: -Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer、および -OutVariable。Ô”¼š¤Ë¤Ä¤¤¤Æ¤Ï¡¢次を参照してください: about_Commonparameters.
入力と出力
入力値の型は、コマンドレットへのパイプが可能なオブジェクトの型です。戻り値の型は、コマンドレットによって返されるオブジェクトの型です。
入力 |
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 コマンドレットを使用して停止する方法を示します。 Invoke-Command を使用してリモートから Start-Job コマンドを実行することでジョブを開始したため、ジョブ オブジェクトはリモート コンピューター上に保存されています。そのため、別の Invoke-Command コマンドを使用してリモートから Stop-Job コマンドを実行する必要があります。リモート バックグラウンド ジョブの詳細については、「about_Remote_Jobs」を参照してください。 最初のコマンドは、Server01 コンピューター上に Windows PowerShell セッション (PSSession) を作成し、そのセッション オブジェクトを $s 変数に保存します。このコマンドは、ドメイン管理者の資格情報を使用します。 2 番目のコマンドは、Invoke-Command コマンドレットを使用して、セッションで Start-Job コマンドを実行します。ジョブのコマンドは、システム イベント ログのすべてのイベントを取得します。結果のジョブ オブジェクトは、$j 変数に保存されます。 3 番目のコマンドはジョブを停止します。Invoke-Command コマンドレットを使用して、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 説明 ----------- このコマンドは、3 つのジョブを停止します。これらのジョブは、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 が含まれます。集計プロパティを使用してジョブの状態を表示します。 2 番目のコマンドは、Stop-Job コマンドを InstanceID パラメーターと共に使用して、選択されたジョブを停止します。
例 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 コマンドレットを使用して停止する方法を示します。 Invoke-Command の AsJob パラメーターを使用してジョブを開始したため、ジョブはリモート コンピューターで実行されますが、ジョブ オブジェクトはローカル コンピューターに存在します。そのため、ローカルの Stop-Job コマンドを使用してジョブを停止できます。 最初のコマンドは、Invoke-Command コマンドレットを使用して、バックグラウンド ジョブを Server01 コンピューター上で開始します。このコマンドは、AsJob パラメーターを使用して、バックグラウンド ジョブとしてリモート コマンドを実行します。 このコマンドは、Start-Job によって返されるジョブ オブジェクトと同じジョブ オブジェクトを返します。このコマンドは、ジョブ オブジェクトを $j 変数に保存します。 2 番目のコマンドは、パイプライン演算子を使用して、$j 変数に保存されたジョブを Stop-Job に送信します。このコマンドは、PassThru パラメーターを使用して、ジョブ オブジェクトを返すように Stop-Job に指示します。ジョブ オブジェクトの表示で、ジョブの State が "Stopped" であることを確認します。 リモート バックグラウンド ジョブの詳細については、「about_Remote_Jobs」を参照してください。
関連項目