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
コマンドレットは、現在のセッションで開始されたバックグラウンド ジョブを表すオブジェクトを取得します。 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-Job
の Command パラメーターを使用して、取得するジョブを制限します。 コマンドは、ワイルドカード文字 (*
) を使用して、コマンド文字列内の任意の場所に 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-Job
の Name パラメーターを使用して、ジョブにフレンドリ名を割り当てます。 2 番目のコマンドでは、 Get-Job
を使用してジョブを取得します。 Get-Job
の Name パラメーターを使用してジョブを識別します。 このコマンドは、結果のジョブ オブジェクトを $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-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: 子ジョブに関する情報を取得する
この例では、Get-Job
コマンドレットの IncludeChildJob パラメーターと ChildJobState パラメーターを使用した場合の効果を示します。
最初のコマンドは、現在のセッションのジョブを取得します。 出力には、バックグラウンド ジョブ、リモート ジョブ、スケジュールされたジョブの複数のインスタンスが含まれます。 リモート ジョブ Job4 が失敗したようです。
2 番目のコマンドでは、Get-Job
の IncludeChildJob パラメーターを使用します。 出力により、子ジョブを持つすべてのジョブの子ジョブが追加されます。この場合、変更された出力は、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 AM
や11/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-Job
の Keep パラメーターを使用して、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
このコマンドレットは、セッション内のジョブを表すオブジェクトを返します。
メモ
PowerShell には、 Get-Job
の次のエイリアスが含まれています。
- すべてのプラットフォーム:
gjb
ジョブの PSJobTypeName プロパティは、ジョブのジョブの種類を示します。 プロパティ値は、ジョブの種類の作成者によって決定されます。 次の一覧に、一般的なジョブの種類を示します。
- BackgroundJob。
Start-Job
を使用して開始されたローカル ジョブ。 - RemoteJob。
Invoke-Command
コマンドレットの AsJob パラメーターを使用してPSSession で開始されたジョブ。 - PSWorkflowJob。 ワークフローの共通パラメーター AsJob を使用して開始されたジョブ。
関連リンク
PowerShell