Get-Job

現在のセッションで実行されている PowerShell バックグラウンド ジョブを取得します。

構文

Get-Job
   [-IncludeChildJob]
   [-ChildJobState <JobState>]
   [-HasMoreData <Boolean>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Newest <Int32>]
   [[-Id] <Int32[]>]
   [<CommonParameters>]
Get-Job
   [-IncludeChildJob]
   [-ChildJobState <JobState>]
   [-HasMoreData <Boolean>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Newest <Int32>]
   [-Command <String[]>]
   [<CommonParameters>]
Get-Job
   [-IncludeChildJob]
   [-ChildJobState <JobState>]
   [-HasMoreData <Boolean>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Newest <Int32>]
   [-InstanceId] <Guid[]>
   [<CommonParameters>]
Get-Job
   [-IncludeChildJob]
   [-ChildJobState <JobState>]
   [-HasMoreData <Boolean>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Newest <Int32>]
   [-Name] <String[]>
   [<CommonParameters>]
Get-Job
   [-IncludeChildJob]
   [-ChildJobState <JobState>]
   [-HasMoreData <Boolean>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Newest <Int32>]
   [-State] <JobState>
   [<CommonParameters>]
Get-Job
   [-Filter] <Hashtable>
   [<CommonParameters>]

説明

Get-Job コマンドレットは、現在のセッションで開始されたバックグラウンド ジョブを表すオブジェクトを取得します。 Get-Jobを使用して、Start-Job コマンドレットを使用するか、任意のコマンドレットの AsJob パラメーターを使用して開始されたジョブを取得できます。

パラメーターがない場合、 Get-Job コマンドは現在のセッション内のすべてのジョブを取得します。 Get-Jobのパラメーターを使用して、特定のジョブを取得できます。

Get-Job返されるジョブ オブジェクトには、ジョブに関する有用な情報が含まれていますが、ジョブの結果は含まれません。 結果を取得するには、 Receive-Job コマンドレットを使用します。

Windows PowerShell バックグラウンド ジョブは、現在のセッションと対話せずにバックグラウンドで実行されるコマンドです。 通常、バックグラウンド ジョブを使用して、完了に時間がかかる複雑なコマンドを実行します。 Windows PowerShell のバックグラウンド ジョブの詳細については、「 about_Jobs」を参照してください。

Windows PowerShell 3.0 以降では、 Get-Job コマンドレットは、ワークフロー ジョブやスケジュールされたジョブのインスタンスなどのカスタム ジョブの種類も取得します。 ジョブのジョブの種類を検索するには、ジョブの PSJobTypeName プロパティを使用します。

Get-Jobがカスタム ジョブの種類を取得できるようにするには、Import-Module コマンドレットを使用するか、モジュールでコマンドレットを使用または取得して、Get-Job コマンドを実行する前に、カスタム ジョブの種類をサポートするモジュールをセッションにインポートします。 特定のカスタム ジョブの種類については、カスタムのジョブの種類機能のドキュメントを参照してください。

例 1: 現在のセッションですべてのバックグラウンド ジョブを開始する

このコマンドは、現在のセッションで開始されたすべてのバックグラウンド ジョブを取得します。 ローカル コンピューター上でジョブが実行される場合でも、他のセッションで作成されたジョブは含まれません。

Get-Job

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
1      Job1            BackgroundJob   Completed     True            localhost             $env:COMPUTERNAME

例 2: インスタンス ID を使用してジョブを停止する

ジョブのインスタンス ID を取得し、それを使用してジョブを停止する方法を次のコマンドに示します。 一意ではないジョブ名とは異なり、インスタンス ID は一意です。

最初のコマンドでは、 Get-Job コマンドレットを使用してジョブを取得します。 Name パラメーターを使用してジョブを識別します。 このコマンドは、 Get-Job が返すジョブ オブジェクトを $j 変数に格納します。 この例では、指定した名前のジョブは 1 つだけです。 2 番目のコマンドは、$j変数内のオブジェクトの InstanceId プロパティを取得し、$ID変数に格納します。 3 番目のコマンドは、 $ID 変数の値を表示します。 4 番目のコマンドでは、 Stop-Job コマンドレットを使用してジョブを停止します。 InstanceId パラメーターを使用してジョブを識別し、変数$IDジョブのインスタンス ID を表します。

$j = Get-Job -Name Job1
$ID = $j.InstanceID
$ID

Guid
----
03c3232e-1d23-453b-a6f4-ed73c9e29d55

Stop-Job -InstanceId $ID

例 3: 特定のコマンドを含むジョブを取得する

このコマンドは、 Get-Process コマンドを含むシステム上のジョブを取得します。 このコマンドは、Get-JobCommand パラメーターを使用して、取得するジョブを制限します。 コマンドは、ワイルドカード文字 (*) を使用して、コマンド文字列内の任意の場所に Get-Process コマンドを含むジョブを取得します。

Get-Job -Command "*Get-Process*"

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
3      Job3            BackgroundJob   Running       True            localhost            Get-Process

例 4: パイプラインを使用して特定のコマンドを含むジョブを取得する

前の例のコマンドと同様に、このコマンドは、 Get-Process コマンドを含むシステム上のジョブを取得します。 このコマンドでは、パイプライン演算子 (|) を使用して、NoteProperty Command を含む PSCustomObject を Get-Job コマンドレットに送信します。 これは、前のコマンドと同等です。

[pscustomobject]@{Command='*Get-Process*'} | Get-Job

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
3      Job3            BackgroundJob   Running       True            localhost            Get-Process

例 5: 開始されていないジョブを取得する

このコマンドは、作成されている一方でまだ開始されていないジョブのみを取得します。 これには、後で実行するようにスケジュール設定されているジョブとまだスケジュール設定されていないジョブが含まれます。

Get-Job -State NotStarted

例 6: 名前が割り当てられていないジョブを取得する

このコマンドは、ジョブで始まるジョブ名を持つすべてのジョブを取得します。 job<number>はジョブの既定の名前であるため、このコマンドは明示的に割り当てられた名前を持たないすべてのジョブを取得します。

Get-Job -Name Job*

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
1      Job1            BackgroundJob   Completed     True            localhost             $env:COMPUTERNAME

例 7: ジョブ・オブジェクトを使用してコマンド内のジョブを表す

この例では、 Get-Job を使用してジョブ オブジェクトを取得する方法と、ジョブ オブジェクトを使用してコマンド内のジョブを表す方法を示します。

最初のコマンドでは、 Start-Job コマンドレットを使用して、ローカル コンピューターで Get-Process コマンドを実行するバックグラウンド ジョブを開始します。 このコマンドでは、Start-JobName パラメーターを使用して、ジョブにフレンドリ名を割り当てます。 2 番目のコマンドでは、 Get-Job を使用してジョブを取得します。 Get-JobName パラメーターを使用してジョブを識別します。 このコマンドは、結果のジョブ オブジェクトを $j 変数に保存します。 3 番目のコマンドは、 $j 変数内のジョブ オブジェクトの値を表示します。 State プロパティの値は、ジョブが完了したことを示します。 HasMoreData プロパティの値は、まだ取得されていないジョブから使用可能な結果があることを示します。 4 番目のコマンドでは、 Receive-Job コマンドレットを使用してジョブの結果を取得します。 $j変数内のジョブ オブジェクトを使用してジョブを表します。 パイプライン演算子を使用して、ジョブ オブジェクトを Receive-Jobに送信することもできます。

Start-Job -ScriptBlock {Get-Process} -Name MyJob
$j = Get-Job -Name MyJob
$j

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
6      MyJob           BackgroundJob   Completed     True            localhost            Get-Process

Receive-Job -Job $j

Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    124       4    13572      12080    59            1140 audiodg
    783      16    11428      13636   100             548 CcmExec
     96       4     4252       3764    59            3856 ccmsetup
...

例 8: 別の方法で開始されたジョブを含むすべてのジョブを取得する

この例では、 Get-Job コマンドレットが、異なるメソッドを使用して開始された場合でも、現在のセッションで開始されたすべてのジョブを取得できることを示します。

最初のコマンドでは、 Start-Job コマンドレットを使用して、ローカル コンピューターでジョブを開始します。 2 番目のコマンドでは、Invoke-Command コマンドレットの AsJob パラメーターを使用して、S1 コンピューターでジョブを開始します。 ジョブ内のコマンドはリモート コンピューターで実行されますが、ジョブ オブジェクトはローカル コンピューター上に作成されるため、ローカル コマンドを使用してジョブを管理します。 3 番目のコマンドでは、 Invoke-Command コマンドレットを使用して、S2 コンピューターで Start-Job コマンドを実行します。 このメソッドを使用すると、リモート コンピューター上にジョブ オブジェクトが作成されるため、リモート コマンドを使用してジョブを管理します。 4 番目のコマンドでは、 Get-Job を使用して、ローカル コンピューターに格納されているジョブを取得します。 Windows PowerShell 3.0 で導入されたジョブの PSJobTypeName プロパティは、 Start-Job コマンドレットを使用して開始されたローカル ジョブがバックグラウンド ジョブであり、 Invoke-Command コマンドレットを使用してリモート セッションで開始されたジョブがリモート ジョブであることを示しています。 5 番目、6 番目、7 番目のコマンドは、 New-PSSession コマンドレットを使用して S2 コンピューターに接続されている PSSession を作成し、 Invoke-Command を使用して PSSession パラメーターと Session パラメーターを使用してリモート コンピューターでジョブを開始します。 その後、PSSession を使用して S2 コンピューターの Get-Job コマンドを使用してジョブを取得します。 サンプル出力は、 Get-Job コマンドの結果を示しています。 S2 コンピューターでは、ジョブはローカル ジョブと見なされます。 コンピューター名は localhost で、ジョブの種類はバックグラウンド ジョブです。 リモート コンピューターでバックグラウンド ジョブを実行する方法の詳細については、 about_Remote_Jobsを参照してください。

Start-Job -ScriptBlock {Get-EventLog -LogName System}
Invoke-Command -ComputerName S1 -ScriptBlock {Get-EventLog -LogName System} -AsJob
Invoke-Command -ComputerName S2 -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog -LogName System}}
Get-Job

Id     Name       PSJobTypeName   State         HasMoreData     Location        Command
--     ----       -------------   -----         -----------     --------        -------
1      Job1       BackgroundJob   Running       True            localhost       Get-EventLog System
2      Job2       RemoteJob       Running       True            S1              Get-EventLog System

$Session = New-PSSession -ComputerName S2
Invoke-Command -Session $Session -ScriptBlock {Start-Job -ScriptBlock {Get-EventLog -LogName System}}
Invoke-Command -Session $Session -ScriptBlock {Get-Job}

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command                   PSComputerName
--     ----            -------------   -----         -----------     --------             -------                   --------------
1      Job1            BackgroundJob   Running       True            localhost            Get-EventLog -LogName Sy… S2

例 9: 失敗したジョブを調査する

このコマンドは、 Get-Job 返されるジョブ オブジェクトを使用して、ジョブが失敗した理由を調査する方法を示します。 また、各ジョブの子ジョブを取得する方法も示します。

最初のコマンドでは、 Start-Job コマンドレットを使用して、ローカル コンピューターでジョブを開始します。 Start-Job返されるジョブ オブジェクトは、ジョブが失敗したことを示しています。 State プロパティの値は Failed です。

2 番目のコマンドでは、 Get-Job コマンドレットを使用してジョブを取得します。 このコマンドでは、dot メソッドを使用して、オブジェクトの JobStateInfo プロパティの値を取得します。 パイプライン演算子を使用して、 JobStateInfo プロパティ内のオブジェクトを Format-List コマンドレットに送信し、リスト内のオブジェクト (*) のすべてのプロパティを書式設定します。 Format-List コマンドの結果は、ジョブの Reason プロパティの値が空白であることを示しています。

3 番目のコマンドは、さらに調査します。 Get-Job コマンドを使用してジョブを取得し、パイプライン演算子を使用してジョブ オブジェクト全体を Format-List コマンドレットに送信します。これにより、ジョブのすべてのプロパティが一覧に表示されます。ジョブ オブジェクト内のすべてのプロパティの表示は、ジョブに Job2 という名前の子ジョブが含まれていることを示しています。

4 番目のコマンドでは、 Get-Job を使用して、Job2 子ジョブを表すジョブ オブジェクトを取得します。 これは、コマンドが実際に実行されたジョブです。 dot メソッドを使用して、JobStateInfo プロパティの Reason プロパティを取得します。結果は、アクセス拒否エラーが原因でジョブが失敗したことを示しています。 この場合、ユーザーは Windows PowerShell を起動するときに [管理者として実行] オプションを使用するのを忘れました。バックグラウンド ジョブでは Windows PowerShell のリモート処理機能が使用されるため、ローカル コンピューターでジョブを実行する場合でも、リモート処理用にコンピューターを構成する必要があります。Windows PowerShell でのリモート処理の要件については、「 about_Remote_Requirements」を参照してください。 トラブルシューティングのヒントについては、 about_Remote_Troubleshootingを参照してください。

PS> Start-Job -ScriptBlock {Get-Process}
Id     Name       PSJobTypeName   State       HasMoreData     Location             Command
--     ----       -------------   -----       -----------     --------             -------
1      Job1       BackgroundJob   Failed      False           localhost            Get-Process

PS> (Get-Job).JobStateInfo | Format-List -Property *
State  : Failed
Reason :

PS> Get-Job | Format-List -Property *
HasMoreData   : False
StatusMessage :
Location      : localhost
Command       : get-process
JobStateInfo  : Failed
Finished      : System.Threading.ManualReset
EventInstanceId    : fb792295-1318-4f5d-8ac8-8a89c5261507
Id            : 1
Name          : Job1
ChildJobs     : {Job2}
Output        : {}
Error         : {}
Progress      : {}
Verbose       : {}
Debug         : {}
Warning       : {}
StateChanged  :

PS> (Get-Job -Name job2).JobStateInfo.Reason
Connecting to remote server using WSManCreateShellEx api failed. The async callback gave the
following error message: Access is denied.

例 10: フィルター処理された結果を取得する

この例では、 Filter パラメーターを使用してワークフロー ジョブを取得する方法を示します。 Windows PowerShell 3.0 で導入された Filter パラメーターは、ワークフロー ジョブやスケジュールされたジョブなどのカスタム ジョブの種類でのみ有効です。

最初のコマンドでは、 Workflow キーワードを使用して WFProcess ワークフローを作成します。 2 番目のコマンドでは、WFProcess ワークフローの AsJob パラメーターを使用して、ワークフローをバックグラウンド ジョブとして実行します。 ワークフローの JobName パラメーターを使用してジョブの名前を指定し、ワークフローの PSPrivateMetadata パラメーターを使用してカスタム ID を指定します。 3 番目のコマンドでは、Get-JobFilter パラメーターを使用して、PSPrivateMetadata パラメーターで指定されたカスタム ID でジョブを取得します。

PS> Workflow WFProcess {Get-Process}
PS> WFProcess -AsJob -JobName WFProcessJob -PSPrivateMetadata @{MyCustomId = 92107}
PS> Get-Job -Filter @{MyCustomId = 92107}
Id     Name            State         HasMoreData     Location             Command
--     ----            -----         -----------     --------             -------
1      WFProcessJob    Completed     True            localhost            WFProcess

例 11: 子ジョブに関する情報を取得する

この例では、Get-Job コマンドレットの IncludeChildJob パラメーターと ChildJobState パラメーターを使用した場合の効果を示します。

最初のコマンドは、現在のセッションのジョブを取得します。 出力には、バックグラウンド ジョブ、リモート ジョブ、スケジュールされたジョブの複数のインスタンスが含まれます。 リモート ジョブ Job4 が失敗したようです。 2 番目のコマンドでは、Get-JobIncludeChildJob パラメーターを使用します。 出力により、子ジョブを持つすべてのジョブの子ジョブが追加されます。この場合、変更された出力は、Job4 の Job5 子ジョブのみが失敗したことを示しています。 3 番目のコマンドでは、 ChildJobState パラメーターを使用し、値が Failed です。出力には、すべての親ジョブと失敗した子ジョブのみが含まれます。 5 番目のコマンドは、ジョブの JobStateInfo プロパティとその Reason プロパティを使用して、Job5 が失敗した理由を検出します。

PS> Get-Job

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
2      Job2            BackgroundJob   Completed     True            localhost            .\Get-Archive.ps1
4      Job4            RemoteJob       Failed        True            Server01, Server02   .\Get-Archive.ps1
7      UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help
8      UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help
9      UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help
10     UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help

PS> Get-Job -IncludeChildJob

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
2      Job2            BackgroundJob   Completed     True            localhost           .\Get-Archive.ps1
3      Job3                            Completed     True            localhost           .\Get-Archive.ps1
4      Job4            RemoteJob       Failed        True            Server01, Server02  .\Get-Archive.ps1
5      Job5                            Failed        False           Server01            .\Get-Archive.ps1
6      Job6                            Completed     True            Server02            .\Get-Archive.ps1
7      UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help
8      UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help
9      UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help
10     UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help

PS> Get-Job -Name Job4 -ChildJobState Failed

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
2      Job2            BackgroundJob   Completed     True            localhost           .\Get-Archive.ps1
4      Job4            RemoteJob       Failed        True            Server01, Server02  .\Get-Archive.ps1
5      Job5                            Failed        False           Server01            .\Get-Archive.ps1
7      UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help
8      UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help
9      UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help
10     UpdateHelpJob   PSScheduledJob  Completed     True            localhost            Update-Help

PS> (Get-Job -Name Job5).JobStateInfo.Reason

Connecting to remote server Server01 failed with the following error message:
Access is denied.

詳細については、「 about_Remote_Troubleshooting ヘルプ」トピックを参照してください。

パラメーター

-After

指定された日時以降に終了した完了済みのジョブを取得します。 DateTime オブジェクト (Get-Date コマンドレットによって返されたものや、Dec 1, 2012 2:00 AM11/06などのDateTime オブジェクトに変換できる文字列など) を入力します。

このパラメーターは、 EndTime プロパティを持つワークフロー ジョブやスケジュールされたジョブなどのカスタム ジョブの種類でのみ機能します。 Start-Job コマンドレットを使用して作成されたものなど、標準のバックグラウンド ジョブでは機能しません。 このパラメーターのサポートについては、ジョブの種類のヘルプ トピックを参照してください。

このパラメーターは Windows PowerShell 3.0 で導入されました。

型:DateTime
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Before

指定された日時以前に終了した完了済みのジョブを取得します。 DateTime オブジェクトを入力します。

このパラメーターは、 EndTime プロパティを持つワークフロー ジョブやスケジュールされたジョブなどのカスタム ジョブの種類でのみ機能します。 Start-Job コマンドレットを使用して作成されたものなど、標準のバックグラウンド ジョブでは機能しません。 このパラメーターのサポートについては、ジョブの種類のヘルプ トピックを参照してください。

このパラメーターは Windows PowerShell 3.0 で導入されました。

型:DateTime
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ChildJobState

指定された状態を持つ子ジョブのみを取得します。 このパラメーターの有効値は、次のとおりです。

  • NotStarted
  • 実行中
  • 完了
  • 失敗
  • 停止済み
  • ブロック済み
  • Suspended
  • [Disconnected](切断済み)
  • Suspending
  • Stopping

既定では、 Get-Job は子ジョブを取得しません。 IncludeChildJob パラメーターを使用すると、Get-Jobはすべての子ジョブを取得します。 ChildJobState パラメーターを使用する場合、IncludeChildJob パラメーターは無効です。

このパラメーターは Windows PowerShell 3.0 で導入されました。

型:JobState
指定可能な値:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Command

コマンドの配列を文字列として指定します。 このコマンドレットは、指定されたコマンドを含むジョブを取得します。 既定値はすべてのジョブです。 ワイルドカード文字を使用してコマンド パターンを指定できます。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-Filter

条件のハッシュ テーブルを指定します。 このコマンドレットは、すべての条件を満たすジョブを取得します。 ジョブのプロパティをキー、ジョブのプロパティ値を値とするハッシュ テーブルを入力します。

このパラメーターは、ワークフロー ジョブ、スケジュールされたジョブなどの、カスタムのジョブの種類に対してのみ機能します。 Start-Job コマンドレットを使用して作成されたものなど、標準のバックグラウンド ジョブでは機能しません。 このパラメーターのサポートについては、ジョブの種類のヘルプ トピックを参照してください。

このパラメーターは Windows PowerShell 3.0 で導入されました。

型:Hashtable
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-HasMoreData

このコマンドレットが、指定した HasMoreData プロパティ値を持つジョブのみを取得するかどうかを示します。 HasMoreData プロパティは、すべてのジョブ結果が現在のセッションで受信されたかどうかを示します。 結果が多いジョブを取得するには、 $Trueの値を指定します。 結果が多くないジョブを取得するには、 $Falseの値を指定します。

ジョブの結果を取得するには、 Receive-Job コマンドレットを使用します。

Receive-Job コマンドレットを使用すると、返された結果をメモリ内のセッション固有のストレージから削除します。 現在のセッションでジョブのすべての結果が返されると、ジョブの HasMoreData プロパティの値を $False) に設定して、現在のセッションのジョブの結果がそれ以上ないことを示します。 Receive-JobKeep パラメーターを使用して、Receive-Jobが結果を削除したり、HasMoreData プロパティの値を変更したりしないようにします。 詳細を表示するには「Get-Help Receive-Job」を入力します。

HasMoreData プロパティは、現在のセッションに固有です。 スケジュールされたジョブの種類 (ディスクにジョブの結果を保存するジョブの種類など) の外部にカスタム ジョブの種類の結果が保存されている場合は、別のセッションで Receive-Job コマンドレットを使用して、 HasMoreData の値が $Falseされている場合でも、ジョブの結果を再度取得できます。 詳細については、カスタムのジョブの種類のヘルプ トピックを参照してください。

このパラメーターは Windows PowerShell 3.0 で導入されました。

型:Boolean
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Id

このコマンドレットが取得するジョブの ID の配列を指定します。

ID は、現在のセッションのジョブを一意に識別する整数です。 インスタンス ID よりも覚えて入力する方が簡単ですが、現在のセッションでのみ一意です。 1 つ以上の ID をコンマで区切って入力できます。 ジョブの ID を検索するには、パラメーターを指定せずに Get-Job を入力します。

型:Int32[]
配置:0
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-IncludeChildJob

このコマンドレットは、親ジョブに加えて子ジョブを返します。

このパラメーターは、エラーの理由が子ジョブのプロパティに保存されるため、 Get-Job がコンテナーの親ジョブを返すワークフロー ジョブとジョブの失敗を調査する場合に特に便利です。

このパラメーターは Windows PowerShell 3.0 で導入されました。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-InstanceId

このコマンドレットが取得するジョブのインスタンス ID の配列を指定します。 既定値はすべてのジョブです。

インスタンス ID は、コンピューター上のジョブを一意に識別する GUID です。 ジョブのインスタンス ID を検索するには、 Get-Jobを使用します。

型:Guid[]
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Name

このコマンドレットが取得するジョブのインスタンスフレンドリ名の配列を指定します。 ジョブの名前を入力するか、またはワイルドカード文字を使用してジョブ名のパターンを入力します。 既定では、 Get-Job は現在のセッション内のすべてのジョブを取得します。

型:String[]
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:True

-Newest

取得するジョブの数を指定します。 このコマンドレットは、最後に終了したジョブを取得します。

Newest パラメーターは、終了時刻の順序で最新のジョブを並べ替えたり、返したりしません。 出力を並べ替えるには、 Sort-Object コマンドレットを使用します。

このパラメーターは Windows PowerShell 3.0 で導入されました。

型:Int32
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-State

ジョブの状態を指定します。 このコマンドレットは、指定された状態のジョブのみを取得します。 このパラメーターの有効値は、次のとおりです。

  • NotStarted
  • 実行中
  • 完了
  • 失敗
  • 停止済み
  • ブロック済み
  • Suspended
  • [Disconnected](切断済み)
  • Suspending
  • Stopping

既定では、 Get-Job は現在のセッション内のすべてのジョブを取得します。

ジョブの状態の詳細については、「 JobState 列挙を参照してください。

型:JobState
指定可能な値:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

入力

None

このコマンドレットにオブジェクトをパイプすることはできません。

出力

System.Management.Automation.RemotingJob

このコマンドレットは、セッション内のジョブを表すオブジェクトを返します。

メモ

Windows PowerShell には、 Get-Jobの次のエイリアスが含まれています。

  • gjb

ジョブの PSJobTypeName プロパティは、ジョブのジョブの種類を示します。 プロパティ値は、ジョブの種類の作成者によって決定されます。 次の一覧に、一般的なジョブの種類を示します。

  • BackgroundJobStart-Jobを使用して開始されたローカル ジョブ。
  • RemoteJobInvoke-Command コマンドレットの AsJob パラメーターを使用してPSSession で開始されたジョブ。
  • PSWorkflowJob。 ワークフローの共通パラメーター AsJob を使用して開始されたジョブ。