PowerShell Alias - spjb
 記事記号:[mdAc91] 初版:2010/Dec/28

この文書は、Windows PowerShellのヘルプ機能で表示される内容を再構成したものです。

名前
    Stop-Job
    
概要
    Windows PowerShell バックグラウンド ジョブを停止します。
    
構文
    Stop-Job [[-InstanceId] <Guid[]>] [-PassThru] [-Confirm] [-WhatIf] [
    <CommonParameters>]
    
    Stop-Job [-Job] <Job[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonPa
    rameters>]
    
    Stop-Job [[-Name] <string[]>] [-PassThru] [-Confirm] [-WhatIf] [<Co
    mmonParameters>]
    
    Stop-Job [-Id] <Int32[]> [-PassThru] [-Confirm] [-WhatIf] [<CommonP
    arameters>]
    
    Stop-Job [-State {NotStarted | Running | Completed | Failed | Stopped | Bloc
    ked}] [-PassThru] [-Confirm] [-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 [<SwitchParameter>]
        新しいバックグラウンド ジョブを表すオブジェクトを返します。既定では、こ
        のコマンドレットによる出力はありません。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -State <JobState>
        指定された状態にあるジョブのみを停止します。有効な値は、NotStarted、Runn
        ing、Completed、Stopped、Failed、および Blocked です。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   true (ByPropertyName)
        ワイルドカード文字を許可する false
        
    -Confirm [<SwitchParameter>]
        コマンドを実行する前に確認メッセージを表示します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -WhatIf [<SwitchParameter>]
        実際にコマンドを実行せずに、コマンドを実行すると何が起きるかを出力します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    <CommonParameters>
        このコマンドレットは、次の共通パラメーターをサポートします: Verbose、
        Debug、ErrorAction、ErrorVariable、WarningAction、WarningVariable、
        OutBuffer、および OutVariable。詳細については、
        「get-help 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\admi
    n02
    
    C:\PS> $j = invoke-command -session $s -scriptblock {start-job -scriptblo
    ck {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-Jo
    b コマンドを実行する必要があります。リモート バックグラウンド ジョブの詳細に
    ついては、「about_Remote_Jobs」を参照してください。
    
    最初のコマンドは、Server01 コンピューター上に Windows PowerShell セッション 
    (PSSession) を作成し、そのセッション オブジェクトを $s 変数に保存します。こ
    のコマンドは、ドメイン管理者の資格情報を使用します。
    
    2 番目のコマンドは、Invoke-Command コマンドレットを使用して、セッションで St
    art-Job コマンドを実行します。ジョブのコマンドは、システム イベント ログのす
    べてのイベントを取得します。結果のジョブ オブジェクトは、$j 変数に保存されま
    す。
    
    3 番目のコマンドはジョブを停止します。Invoke-Command コマンドレットを使用し
    て、Server01 上の PSSession で Stop-Job コマンドを実行します。ジョブ オブジ
    ェクトはローカル コンピューター上の変数である $j に保存されるため、コマンド
    は "param" キーワードを使用してローカル変数をコマンド内で宣言し、ArgumentLis
    t パラメーターを使用して変数の値を指定します。
    
    コマンドが完了すると、ジョブは停止し、$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";Expressio
    n={$_.jobstateinfo.state}}, InstanceID -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-Tab
    le コマンドに送信し、各ジョブの指定されたプロパティを表形式で表示します。表
    には、各ジョブのインスタンス ID が含まれます。集計プロパティを使用してジョブ
    の状態を表示します。
    
    2 番目のコマンドは、Stop-Job コマンドを InstanceID パラメーターと共に使用し
    て、選択されたジョブを停止します。
    
    -------------------------- 例 8 --------------------------
    C:\PS>$j = invoke-command -computername Server01 -scriptblock {get-eventl
    og 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」を参
    照してください。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113413
    about_Jobs 
    about_Job_Details 
    about_Remote_Jobs 
    Start-Job 
    Get-Job 
    Receive-Job 
    Wait-Job 
    Remove-Job 
    Invoke-Command 
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Alias、spjb
ご利用数: 1973185
感想・要望・問い合わせは こちら