PowerShell Alias - rjb
 記事記号:[mdAc89] 初版:2010/Dec/28

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

名前
    Remove-Job
    
概要
    Windows PowerShell バックグラウンド ジョブを削除します。
    
構文
    Remove-Job [-Id] <Int32[]> [-Force] [-Confirm] [-WhatIf] [<CommonPa
    rameters>]
    
    Remove-Job [-Command <string[]>] [-Confirm] [-WhatIf] [<CommonParam
    eters>]
    
    Remove-Job [[-InstanceId] <Guid[]>] [-Force] [-Confirm] [-WhatIf] [<
    CommonParameters>]
    
    Remove-Job [-Job] <Job[]> [-Force] [-Confirm] [-WhatIf] [<CommonPar
    ameters>]
    
    Remove-Job [[-Name] <string[]>] [-Force] [-Confirm] [-WhatIf] [<Com
    monParameters>]
    
    Remove-Job [-State {NotStarted | Running | Completed | Failed | Stopped | Bl
    ocked}] [-Confirm] [-WhatIf] [<CommonParameters>]
    
説明
    Remove-Job コマンドレットは、Start-Job またはいずれかのコマンドレットの AsJo
    b パラメーターを使用して開始された Windows PowerShell バックグラウンド ジョ
    ブを削除します。
    
    このコマンドレットを使用すると、すべてのジョブを削除したり、名前、ID、インス
    タンス ID、コマンド、または状態に基づいて選択したジョブのみを削除したりでき
    ます。また、ジョブ オブジェクトを Remove-Job に渡すことで選択したジョブを削
    除することができます。パラメーターまたはパラメーターの値を指定しない場合、Re
    move-Job に効力はありません。
    
    実行中のジョブを削除する前に、Stop-Job コマンドレットを使用してジョブを停止し
    ます。実行中のジョブを削除しようとすると、コマンドは失敗します。Remove-Job の 
    Force パラメーターを使用すると、実行中のジョブを削除できます。
    
    バックグラウンド ジョブを削除しない場合は、ジョブが作成されたセッションを閉じ
    るまで、ジョブはグローバル ジョブ キャッシュに残っています。
    

パラメーター
    -Command <string[]>
        指定された単語がコマンド内に含まれるジョブを削除します。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   true (ByPropertyName)
        ワイルドカード文字を許可する false
        
    -Force [<SwitchParameter>]
        状態が "実行中" の場合でも、ジョブが削除されます。Force パラメーターを指
        定しないと、Remove-Job を使用しても実行中のジョブは削除されません。
        
        必須                         false
        位置                         named
        既定値                       
        パイプライン入力を許可する   false
        ワイルドカード文字を許可する false
        
    -Id <Int32[]>
        指定された ID を持つバックグラウンド ジョブを削除します。
        
        ID は、現在のセッション内のジョブを一意に識別する整数です。インスタンス 
        ID よりも覚えやすく入力も容易ですが、一意であるのは現在のセッション内の
        みです。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[]>
        削除するジョブを指定します。ジョブを格納する変数を入力するか、ジョブを取
        得するコマンドを入力します。パイプライン演算子を使用して、ジョブを Remov
        e-Job コマンドレットに送信することもできます。
        
        必須                         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 [<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.Job
        パイプを使用してジョブ オブジェクトを Remove-Job に渡すことができます。
    
出力
    None
        このコマンドレットは出力を生成しません。
    
メモ
    -------------------------- 例 1 --------------------------
    C:\PS>$batch = get-job -name BatchJob
    
    C:\PS> $batch | remove-job
    
    説明
    -----------
    これらのコマンドは、現在のセッションから BatchJob という名前のバックグラウン
    ド ジョブを削除します。最初のコマンドは、Get-Job コマンドレットを使用して、
    ジョブを表すオブジェクトを取得し、ジョブを $batch 変数に保存します。2 番目の
    コマンドは、パイプライン演算子 (|) を使用してジョブを Remove-Job コマンドレ
    ットに送信します。
    
    このコマンドでは、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-proces
    s} -asJob
    
    C:\PS> $j | remove-job
    
    説明
    -----------
    この例では、Invoke-Command コマンドレットの AsJob パラメーターを使用し、リモ
    ート コンピューター上で開始されたジョブを Remove-Job コマンドレットを使用し
    て削除する方法を示します。
    
    最初のコマンドは、Invoke-Command コマンドレットを使用して、ジョブを Server01 
    コンピューター上で実行します。AsJob パラメーターを使用してコマンドをバックグ
    ラウンド ジョブとして実行し、結果のジョブ オブジェクトを $j 変数に保存します。
    
    ジョブはリモート コンピューター上で実行されますが、コマンドで AsJob パラメー
    ターを使用しているため、ジョブ オブジェクトはローカル コンピューター上に作成
    されます。そのため、ローカル コマンドを使用してジョブを管理します。
    
    2 番目のコマンドは、Remove-Job コマンドレットを使用してジョブを削除します。
    このコマンドは、パイプライン演算子 (|) を使用して、$j に保存されたジョブを R
    emove-Job に送信します。このコマンドはローカル コマンドであることに注意して
    ください。AsJob パラメーターを使用して開始されたジョブを削除する場合、リモー
    ト コマンドは必要ありません。
    
    -------------------------- 例 6 --------------------------
    C:\PS>$s = new-pssession -computername Server01
    
    C:\PS> invoke-command -session $s -scriptblock {start-job -scriptblock {g
    et-process} -name MyJob}
    
    C:\PS> invoke-command -session $s -scriptblock {remove-job -name MyJob}
    
    説明
    -----------
    この例では、Invoke-Command を使用して Start-Job コマンドを実行することで開始
    されたジョブを削除する方法を示します。この場合、リモート コンピューター上に
    ジョブ オブジェクトが作成されるため、リモート コマンドを使用してジョブを管理
    します。
    
    最初のコマンドは、New-PSSession コマンドレットを使用して Server01 コンピュー
    ターとの PSSession (固定接続) を作成します。固定接続は、リモートから Start-J
    ob コマンドを実行するときに必要になります。このコマンドは PSSession を $s 変
    数に保存します。
    
    2 番目のコマンドは、Invoke-Command コマンドレットを使用して、$s に保存された 
    PSSession で Start-Job コマンドを実行します。ジョブは Get-Process コマンドを
    実行します。また、Start-Job の Name パラメーターを使用して、ジョブのフレンド
    リ名を指定します。
    
    3 番目のコマンドは、Invoke-Command コマンドレットを使用して、$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 コマンドレットを使用してバックグラウンド ジョブ
    を開始します。このコマンドは、結果のジョブ オブジェクトを $j 変数に保存しま
    す。
    
    2 番目のコマンドは、パイプライン演算子 (|) を使用して、$j に保存されたジョブ 
    オブジェクトを Format-List コマンドレットに送信します。Format-List コマンド
    は Property パラメーターに * (すべての値) を指定して、ジョブ オブジェクトの
    すべてのプロパティを一覧に表示します。
    
    ジョブ オブジェクトの表示には、ID プロパティおよび InstanceID プロパティの値
    がオブジェクトの他のプロパティと共に表示されます。
    
    3 番目のコマンドは、Remove-Job コマンドレットを使用して、現在のセッションか
    らジョブを削除します。コマンドを生成する際には、オブジェクトの表示から Insta
    nceID の値をコピーおよび貼り付けすることができます。
    
    Windows PowerShell コンソールの値をコピーするには、マウスを使用して値を選択
    し、Enter キーを押して値をコピーします。値を貼り付けるには、右クリックします。
    
関連するリンク
    Online version: http://go.microsoft.com/fwlink/?LinkID=113377
    about_Jobs 
    about_Job_Details 
    about_Remote_Jobs 
    Start-Job 
    Get-Job 
    Receive-Job 
    Wait-Job 
    Stop-Job 
    Invoke-Command 
	
記事で解説しているパソコンの環境
 基本ソフト: Windows 7
 キーワード: Windows PowerShell、ヘルプ、Alias、rjb
ご利用数: 1862270
感想・要望・問い合わせは こちら