Get-Job

取得目前會話中正在執行的 PowerShell 背景工作。

語法

SessionIdParameterSet (預設值)

Get-Job
    [[-Id] <Int32[]>]
    [-IncludeChildJob]
    [-ChildJobState <JobState>]
    [-HasMoreData <Boolean>]
    [-Before <DateTime>]
    [-After <DateTime>]
    [-Newest <Int32>]
    [<CommonParameters>]

InstanceIdParameterSet

Get-Job
    [-InstanceId] <Guid[]>
    [-IncludeChildJob]
    [-ChildJobState <JobState>]
    [-HasMoreData <Boolean>]
    [-Before <DateTime>]
    [-After <DateTime>]
    [-Newest <Int32>]
    [<CommonParameters>]

NameParameterSet

Get-Job
    [-Name] <String[]>
    [-IncludeChildJob]
    [-ChildJobState <JobState>]
    [-HasMoreData <Boolean>]
    [-Before <DateTime>]
    [-After <DateTime>]
    [-Newest <Int32>]
    [<CommonParameters>]

StateParameterSet

Get-Job
    [-State] <JobState>
    [-IncludeChildJob]
    [-ChildJobState <JobState>]
    [-HasMoreData <Boolean>]
    [-Before <DateTime>]
    [-After <DateTime>]
    [-Newest <Int32>]
    [<CommonParameters>]

CommandParameterSet

Get-Job
    [-IncludeChildJob]
    [-ChildJobState <JobState>]
    [-HasMoreData <Boolean>]
    [-Before <DateTime>]
    [-After <DateTime>]
    [-Newest <Int32>]
    [-Command <String[]>]
    [<CommonParameters>]

FilterParameterSet

Get-Job
    [-Filter] <Hashtable>
    [<CommonParameters>]

Description

指令 Get-Job 長會取得代表當前會話中啟動的背景工作物件。 你可以用 來 Get-Job 取得用 Start-Job cmdlet 啟動的工作,或是用任何 cmdlet 的 AsJob 參數來取得。

沒有參數時,指令 Get-Job 會取得目前會話中的所有工作。 你可以利用 的 Get-Job 參數來獲得特定的工作。

回 Get-Job 傳的工作物件包含關於該工作的有用資訊,但不包含工作結果。 要取得結果,請使用指令長(cmdlet)。Receive-Job

Windows PowerShell 背景工作是一種在背景執行、不與當前會話互動的指令。 通常你會用背景工作來執行一個需要很長時間才能完成的複雜指令。 欲了解更多關於 Windows PowerShell 背景工作,請參見 about_Jobs。

從 PowerShell 3.0 Windows 開始,Get-Job 指令小程式也新增自訂工作類型,例如工作流程工作和排程工作實例。 要找到工作類型,請使用該工作的 PSJobTypeName 屬性。

要啟用 Get-Job 自訂工作類型,請在執行 Get-Job 指令前,將支援該自訂工作類型的模組匯入會話,可以是使用 Import-Module cmdlet 或模組中的 cmdlet。 關於特定自訂工作類型的資訊,請參閱該自訂工作類型功能的說明文件。

範例

範例一:讓所有背景工作在當前會話中啟動

這個指令會啟動目前會話中所有背景工作。 它不包含在其他會話中建立的工作,即使這些工作是在本地電腦上執行。

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

範例 2:透過實例 ID 停止工作

這些指令展示了如何取得作業的實例 ID,然後用它來停止工作。 與工作名稱不同,實例 ID 是唯一的。

第一個指令使用 Get-Job cmdlet 來取得工作。 它使用 Name 參數來識別工作。 指令會將回 Get-Job 傳的工作物件儲存在變數中 $j 。 在這個例子中,只有一個工作名稱符合指定名稱。 第二個指令是在變數中取得物件$j的 InstanceId 屬性,並將其儲存在變數中$ID。 第三個指令顯示變 $ID 數的值。 第四個指令使用 Stop-Job cmdlet 來停止工作。 它使用 InstanceId 參數來識別工作,並 $ID 用變數來表示該工作的實例 ID。

$j = Get-Job -Name Job1
$ID = $j.InstanceId
$ID
Guid
----
03c3232e-1d23-453b-a6f4-ed73c9e29d55
Stop-Job -InstanceId $ID

範例三:取得包含特定指令的工作

此指令取得系統中包含指令 Get-Process 的工作。 指令使用命令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 指令的工作。 此指令使用管線運算子(|)將 PSCustomObject 與 NoteProperty 指令傳送給 Get-Job cmdlet。 這相當於前一個指令。

[pscustomobject]@{Command='*Get-Process*'} | Get-Job
Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
3      Job3            BackgroundJob   Running       True            localhost            Get-Process

範例五:接尚未開始的工作

此指令只會接收那些已建立但尚未開始的工作。 這包括未來預定執行的職缺以及尚未排定的職缺。

Get-Job -State NotStarted

範例 6:取得尚未命名的工作

此指令接收所有以 job 開頭的工作名稱。 由於 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 cmdlet 啟動背景工作,在本地電腦上執行指令 Get-Process 。 指令使用 Name Start-Job參數來為工作指派友善名稱。 第二個指令用 Get-Job 來獲得工作。 它使用 Name Get-Job參數來識別工作。 指令會將產生的工作物件儲存在變數中 $j 。 第三個指令顯示該工作物件在變數中的 $j 值。 州政府財產的價值顯示工作已完成。 HasMoreData 屬性的值顯示,該工作中仍有尚未被檢索的結果可用。 第四個指令使用 Receive-Job cmdlet 來取得該工作的結果。 它使用變數中的 $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 cmdlet 能取得當前會話中所有已啟動的工作,即使這些工作是用不同方法啟動的。

第一個指令使用 Start-Job cmdlet 在本地電腦上啟動工作。 第二個指令使用 cmdlet 的 Invoke-CommandAsJob 參數在 S1 電腦上啟動工作。 雖然工作中的指令是在遠端電腦上執行,但工作物件是在本地電腦上建立的,因此你使用本地指令來管理工作。 第三個指令使用 Invoke-Command 指令小程式在 S2 電腦上執行 Start-Job 指令。 透過此方法,工作物件會在遠端電腦上建立,因此你使用遠端指令來管理工作。 第四個指令用 Get-Job 來將工作儲存在本地電腦上。 PowerShell 3.0 Windows引入的 PSJobTypeName 屬性顯示,使用 Start-Job cmdlet 啟動的本地工作是背景工作,遠端工作階段使用 Invoke-Command cmdlet 啟動的工作則是遠端工作。 第五、第六和第七個指令使用 New-PSSession 指令小程式建立一個連接至 S2 電腦的 PSSession, Invoke-Command 並用 PSSession 和 Session 參數在遠端電腦上啟動工作。 接著它會用 Get-Job S2 電腦上的 PSSession 指令來獲得工作。 取樣輸出顯示指令 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 cmdlet 在本地電腦上啟動工作。 回 Start-Job 傳的工作物件顯示工作失敗。 州有財產的價值為失敗。

第二個指令是用 Get-Job cmdlet 來取得這個任務。 指令使用 dot 方法取得物件 JobStateInfo 屬性的值。 它使用管線運算子將 JobStateInfo 屬性中的物件傳送到 Format-List cmdlet,該 cmdlet 會將物件*的所有屬性()格式化成一個清單。指令的 Format-List 結果顯示該工作 Reason 屬性的值為空白。

第三個指令則進一步調查。 它會用 Get-Job 指令取得該工作,然後用管線操作員將整個工作物件傳送到 Format-List cmdlet,指令碼會以清單顯示該工作的所有屬性。工作物件中所有屬性的顯示顯示該工作包含一個名為 Job2 的子工作。

第四個指令用 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 參數來取得工作流程工作。 Filter參數於 Windows PowerShell 3.0 引入,僅適用於自訂工作類型,如工作流程工作與排程工作。

第一個指令使用 workflow 關鍵字來建立 WFProcess 的工作流程。 第二個指令使用 WFProcess 工作流程中的 AsJob 參數,將該工作流程作為背景工作執行。 它使用工作流程的 JobName 參數來指定工作名稱,並使用工作流程的 PSPrivateMetadata 參數來指定自訂 ID。 第三個指令使用 的 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:獲取兒童工作相關資訊

此範例展示了使用 cmdlet 中 Get-JobIncludeChildJob 與 ChildJobState 參數的效果。

第一個指令在當前工作階段取得工作。 輸出包含一個背景工作、一個遠端工作以及多個排程工作實例。 遠端工作 Job4 似乎失敗了。 第二個指令使用 IncludeChildJob 參數。Get-Job 輸出會加上所有有子工作的工作的子工作。在此情況下,修正後的輸出顯示只有 Job4 的 Job5 子工作失敗。 第三個指令使用 ChildJobState 參數,值為 Failed。輸出包含所有父工作,僅包含失敗的子工作。 第五個指令使用 JobStateInfo 的 jobs 屬性及其 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 cmdlet 回傳的,或是可轉換成 DateTime 物件的字串,例如 Dec 1, 2012 2:00 AM11/06或 。

此參數僅適用於具有 EndTime 屬性的自訂工作類型,如工作流程工作與排程工作。 它無法用於標準的背景工作,例如使用 Start-Job 指令長所建立的。 關於此參數的支援資訊,請參閱工作類型的說明主題。

此參數是在 Windows PowerShell 3.0 中引進的。

參數屬性

類型:DateTime
預設值:None
支援萬用字元:False
不要顯示:False

參數集

SessionIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
InstanceIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
NameParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
StateParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
CommandParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Before

獲得在指定日期和時間前完成的任務。 這時會進入 DateTime 物件。

此參數僅適用於具有 EndTime 屬性的自訂工作類型,如工作流程工作與排程工作。 它無法用於標準的背景工作,例如使用 Start-Job 指令長所建立的。 關於此參數的支援資訊,請參閱工作類型的說明主題。

此參數是在 Windows PowerShell 3.0 中引進的。

參數屬性

類型:DateTime
預設值:None
支援萬用字元:False
不要顯示:False

參數集

SessionIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
InstanceIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
NameParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
StateParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
CommandParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-ChildJobState

只會拿到指定狀態的子工作。 此參數可接受的值為:

  • 尚未開始
  • Running
  • 已完成
  • 失敗
  • 已停止
  • 已封鎖
  • 已暫停
  • 已中斷連線
  • 暫停中
  • 停止中

預設情況下, Get-Job 不會有兒童工作。 透過使用 IncludeChildJob 參數,取得 Get-Job 所有子工作。 如果你使用 ChildJobState 參數, IncludeChildJob 參數不會有影響。

此參數是在 Windows PowerShell 3.0 中引進的。

參數屬性

類型:JobState
預設值:None
接受的值:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
支援萬用字元:False
不要顯示:False

參數集

SessionIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
InstanceIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
NameParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
StateParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
CommandParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Command

以字串形式指定一組指令陣列。 此指令小程式會取得包含指定指令的工作。 預設是全部工作。 你可以用萬用字元來指定指令模式。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:True
不要顯示:False

參數集

CommandParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Filter

指定條件雜湊表。 這個指令長能獲得符合所有條件的工作。 輸入一個雜湊表,鍵為工作屬性,值為工作屬性值。

此參數僅適用於自訂工作類型,如工作流程工作與排程工作。 它無法用於標準的背景工作,例如使用 Start-Job 指令長所建立的。 關於此參數的支援資訊,請參閱工作類型的說明主題。

此參數是在 Windows PowerShell 3.0 中引進的。

參數屬性

類型:Hashtable
預設值:None
支援萬用字元:False
不要顯示:False

參數集

FilterParameterSet
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-HasMoreData

表示此 cmdlet 是否只接收具有指定 HasMoreData 屬性值的工作。 HasMoreData 屬性顯示本會話是否已收到所有工作結果。 要獲得更多結果的作業,請指定一個值。$true 要得到沒有更多結果的作業,請指定一個值。$false

要取得工作結果,請使用 Receive-Job 指令長(cmdlet)。

當你使用 Receive-Job cmdlet 時,它會從記憶體內的會話專用儲存中刪除回傳的結果。 當它回傳完當前工作階段的所有結果後,會將該工作的 HasMoreData 屬性值設為 $false,表示目前工作中沒有其他結果。 使用 KeepReceive-Job 參數來防止 Receive-Job 刪除結果並更改 HasMoreData 屬性的值。 如需詳細資訊,請鍵入 Get-Help Receive-Job。

HasMoreData 屬性是針對當前工作階段特有的。 如果自訂工作類型的結果被儲存在會話外,例如排程工作類型會將工作結果儲存在磁碟上,你可以在不同工作階段使用 Receive-Job 指令長來重新取得工作結果,即使 HasMoreData 的值是 $false。 欲了解更多資訊,請參閱自訂工作類型的說明主題。

此參數是在 Windows PowerShell 3.0 中引進的。

參數屬性

類型:Boolean
預設值:None
支援萬用字元:False
不要顯示:False

參數集

SessionIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
InstanceIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
NameParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
StateParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
CommandParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-Id

指定該指令子所獲得的工作 ID 陣列。

ID 是一個整數,唯一識別當前工作階段的工作。 它比實例 ID 更容易記憶和輸入,但它只在當前會話中是唯一的。 你可以用逗號分隔一個或多個識別碼。 要找到工作 ID,請輸入 Get-Job 無參數的 ID。

參數屬性

類型:

Int32[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

SessionIdParameterSet
Position:0
必要:False
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-IncludeChildJob

表示此指令小程式除了父工作外,還回傳子工作。

此參數對於調查工作流程工作特別有用,該 Get-Job 工作回傳容器父工作,以及工作失敗,因為失敗原因儲存在子工作屬性中。

此參數是在 Windows PowerShell 3.0 中引進的。

參數屬性

類型:SwitchParameter
預設值:None
支援萬用字元:False
不要顯示:False

參數集

SessionIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
InstanceIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
NameParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
StateParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
CommandParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-InstanceId

指定一個 Instance ID 陣列,該 cmdlet 會接收到作業。 預設是全部工作。

實例 ID 是一個 GUID,唯一識別電腦上的工作。 要找到作業的實例 ID,請使用 Get-Job。

參數屬性

類型:

Guid[]

預設值:None
支援萬用字元:False
不要顯示:False

參數集

InstanceIdParameterSet
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Name

指定一個實例友善的工作名稱陣列,該指令子會取得這些工作名稱。 輸入職缺名稱,或使用萬用字元輸入職缺名稱模式。 預設情況下,會 Get-Job 取得當前會話中的所有工作。

參數屬性

類型:

String[]

預設值:None
支援萬用字元:True
不要顯示:False

參數集

NameParameterSet
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

-Newest

指定了要取得的多種工作。 這個指令長會拿到最近結束的工作。

最新參數不會依時間順序排序或回傳最新的工作。 要排序輸出,請使用 Sort-Object cmdlet。

此參數是在 Windows PowerShell 3.0 中引進的。

參數屬性

類型:Int32
預設值:None
支援萬用字元:False
不要顯示:False

參數集

SessionIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
InstanceIdParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
NameParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
StateParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False
CommandParameterSet
Position:Named
必要:False
來自管線的值:False
來自管線按屬性名稱的值:False
來自剩餘引數的值:False

-State

指定工作狀態。 此指令檔只接收指定狀態下的任務。 此參數可接受的值為:

  • 尚未開始
  • Running
  • 已完成
  • 失敗
  • 已停止
  • 已封鎖
  • 已暫停
  • 已中斷連線
  • 暫停中
  • 停止中

預設情況下, Get-Job 會取得當前會話中的所有工作。

欲了解更多就業狀態資訊,請參閱 JobState Enumeration。

參數屬性

類型:JobState
預設值:None
接受的值:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
支援萬用字元:False
不要顯示:False

參數集

StateParameterSet
Position:0
必要:True
來自管線的值:False
來自管線按屬性名稱的值:True
來自剩餘引數的值:False

CommonParameters

此 cmdlet 支援常見參數:-Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction 和 -WarningVariable。 如需詳細資訊,請參閱 about_CommonParameters。

輸入

None

您不能將物件透過管道傳送到此 Cmdlet。

輸出

System.Management.Automation.RemotingJob

此 cmdlet 回傳代表會話中工作的物件。

備註

PowerShell 包含下列 Get-Job的別名:

  • 所有平臺:
    • gjb

工作中的 PSJobTypeName 屬性表示該工作的工作類型。 房產價值由工作類型作者決定。 以下列表顯示常見的工作類型。

  • 背景工作。 本地工作是從使用 Start-Job。
  • 遠端工作。 工作是在 PSSession 中透過 cmdlet 的 Invoke-CommandAsJob 參數開始的。
  • 附註:工作流。 工作起始於使用 AsJob 的工作流程共用參數。