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>]
   [-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
   [-IncludeChildJob]
   [-ChildJobState <JobState>]
   [-HasMoreData <Boolean>]
   [-Before <DateTime>]
   [-After <DateTime>]
   [-Newest <Int32>]
   [-Command <String[]>]
   [<CommonParameters>]
Get-Job
   [-Filter] <Hashtable>
   [<CommonParameters>]

説明

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

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

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

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

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

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

例 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 番目のコマンドは、変数内 のオブジェクトの InstanceId プロパティを $j 取得し、変数に $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 取得します。 このコマンドは、取得したジョブを 制限するために Command パラメーター Get-Job を使用します。 コマンドは、ワイルドカード文字 (*) を使用して、コマンド文字列内の任意の場所にコマンドを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 コマンドを使用して 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 実行するバックグラウンド ジョブを開始します。 このコマンドでは、Name パラメーターStart-Job使用して、ジョブにフレンドリ名を割り当てます。 2 番目のコマンドは、ジョブを取得するために使用 Get-Job します。 Name パラメーターGet-Job使用してジョブを識別します。 このコマンドは、結果のジョブ オブジェクトを変数に $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 番目のコマンドでは、コマンドレットの AsJob パラメーターを Invoke-Command 使用して、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 を作成し、PSSession と Session パラメーターを使用してリモート コンピューターでジョブを開始するために使用Invoke-Commandします。 その後、PSSession を Get-Job 使用して S2 コンピューター上のコマンドを使用してジョブを取得します。 サンプル出力は、コマンドの結果を 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 番目のコマンドは、Job2 子ジョブを表すジョブ オブジェクトを取得するために使用 Get-Job します。 これは、コマンドが実際に実行されたジョブです。 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 パラメーターは、ワークフロー ジョブやスケジュールされたジョブなどのカスタム ジョブの種類でのみ有効です。

最初のコマンドでは、ワークフロー キーワード (keyword)を使用して WFProcess ワークフローを作成します。 2 番目のコマンドでは、 WFProcess ワークフローの AsJob パラメーターを使用して、ワークフローをバックグラウンド ジョブとして実行します。 ワークフローの JobName パラメーターを使用してジョブの名前を指定し、カスタム ID を指定するワークフローの PSPrivateMetadata パラメーターを使用します。 3 番目のGet-Jobコマンドでは、FILTER パラメーターを使用して、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: 子ジョブに関する情報を取得する

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

最初のコマンドは、現在のセッションのジョブを取得します。 出力には、バックグラウンド ジョブ、リモート ジョブ、スケジュールされたジョブの複数のインスタンスが含まれます。 リモート ジョブ Job4 が失敗したようです。 2 番目のコマンドでは、次の IncludeChildJob パラメーターを 使用します Get-Job。 出力により、子ジョブを持つすべてのジョブの子ジョブが追加されます。この場合、変更された出力は、Job4 の Job5 子ジョブのみが失敗したことを示しています。 3 番目の コマンドは、値が Failed の ChildJobState パラメーターを使用します。出力には、すべての親ジョブと失敗した子ジョブのみが含まれます。 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

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

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

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

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Before

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

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

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

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ChildJobState

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

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

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

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

Type:JobState
Accepted values:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Command

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-Filter

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

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

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

Type:Hashtable
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-HasMoreData

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

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

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

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

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

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Id

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

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

Type:Int32[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-IncludeChildJob

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

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

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-InstanceId

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

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

Type:Guid[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Name

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

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Newest

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

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

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

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-State

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

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

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

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

Type:JobState
Accepted values:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

入力

None

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

出力

System.Management.Automation.RemotingJob

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

メモ

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

  • すべてのプラットフォーム:
    • gjb

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

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