Get-Job
Ruft PowerShell-Hintergrundaufträge ab, die in der aktuellen Sitzung ausgeführt werden.
Syntax
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>]
Beschreibung
Das Get-Job
Cmdlet ruft Objekte ab, die die Hintergrundaufträge darstellen, die in der aktuellen Sitzung gestartet wurden. Sie können aufträge Get-Job
abrufen, die mit dem Start-Job
Cmdlet gestartet wurden, oder mithilfe des AsJob-Parameters eines beliebigen Cmdlets.
Ohne Parameter ruft ein Get-Job
Befehl alle Aufträge in der aktuellen Sitzung ab. Sie können die Parameter Get-Job
verwenden, um bestimmte Aufträge abzurufen.
Das Auftragsobjekt, das zurückgegeben wird, Get-Job
enthält nützliche Informationen zum Auftrag, enthält aber nicht die Auftragsergebnisse. Verwenden Sie das Receive-Job
Cmdlet, um die Ergebnisse abzurufen.
Ein Windows PowerShell-Hintergrundauftrag ist ein Befehl, der im Hintergrund ausgeführt wird, ohne mit der aktuellen Sitzung zu interagieren. In der Regel verwenden Sie einen Hintergrundauftrag, um einen komplexen Befehl auszuführen, der lange dauert. Weitere Informationen zu Hintergrundaufträgen in Windows PowerShell finden Sie unter about_Jobs.
Ab Windows PowerShell 3.0 ruft das Get-Job
Cmdlet auch benutzerdefinierte Auftragstypen ab, z. B. Workflowaufträge und Instanzen von geplanten Aufträgen. Um den Auftragstyp eines Auftrags zu finden, verwenden Sie die PSJobTypeName-Eigenschaft des Auftrags.
Get-Job
Um einen benutzerdefinierten Auftragstyp abzurufen, importieren Sie das Modul, das den benutzerdefinierten Auftragstyp unterstützt, in die Sitzung, bevor Sie einen Get-Job
Befehl ausführen, entweder mithilfe des Import-Module
Cmdlets oder mithilfe oder Abrufen eines Cmdlets im Modul. Informationen zu einem bestimmten benutzerdefinierten Auftragstyp finden Sie in der Dokumentation der Funktion „Benutzerdefinierte Auftragstypen“.
Beispiele
Beispiel 1: Abrufen aller Hintergrundaufträge, die in der aktuellen Sitzung gestartet wurden
Dieser Befehl ruft alle Hintergrundaufträge ab, die in der aktuellen Sitzung gestartet wurden. In anderen Sitzungen erstellte Aufträge sind nicht enthalten, auch wenn die Aufträge auf dem lokalen Computer ausgeführt werden.
Get-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Job1 BackgroundJob Completed True localhost $env:COMPUTERNAME
Beispiel 2: Beenden eines Auftrags mithilfe einer Instanz-ID
Diese Befehle zeigen, wie die Instanz-ID eines Auftrags abgerufen und dann zum Beenden eines Auftrags verwendet wird. Im Gegensatz zum Namen eines Auftrags, der nicht eindeutig ist, ist die Instanz-ID eindeutig.
Der erste Befehl verwendet das Get-Job
Cmdlet, um einen Auftrag abzurufen. Er verwendet den Parameter Name , um den Auftrag zu identifizieren. Der Befehl speichert das Auftragsobjekt, das Get-Job
in der $j
Variablen zurückgegeben wird. In diesem Beispiel gibt es nur einen Auftrag mit dem angegebenen Namen. Der zweite Befehl ruft die InstanceId-Eigenschaft des Objekts in der $j
Variablen ab und speichert es in der $ID
Variablen. Der dritte Befehl zeigt den Wert der $ID
Variablen an. Der vierte Befehl verwendet Stop-Job
cmdlet, um den Auftrag zu beenden.
Er verwendet den Parameter "InstanceId ", um den Auftrag und $ID
die Variable zu identifizieren, um die Instanz-ID des Auftrags darzustellen.
$j = Get-Job -Name Job1
$ID = $j.InstanceID
$ID
Guid
----
03c3232e-1d23-453b-a6f4-ed73c9e29d55
Stop-Job -InstanceId $ID
Beispiel 3: Abrufen von Aufträgen, die einen bestimmten Befehl enthalten
Dieser Befehl ruft die Aufträge im System ab, die einen Get-Process
Befehl enthalten. Der Befehl verwendet den Command-Parameter , um Get-Job
die abgerufenen Aufträge einzuschränken. Der Befehl verwendet Wildcardzeichen (*
) zum Abrufen von Aufträgen, die einen Befehl an einer Get-Process
beliebigen Stelle in der Befehlszeichenfolge enthalten.
Get-Job -Command "*Get-Process*"
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
3 Job3 BackgroundJob Running True localhost Get-Process
Beispiel 4: Abrufen von Aufträgen, die einen bestimmten Befehl enthalten, mithilfe der Pipeline
Wie der Befehl im vorherigen Beispiel ruft dieser Befehl die Aufträge auf dem System ab, die einen Get-Process
Befehl enthalten. Der Befehl verwendet einen Pipelineoperator (|
) zum Senden eines PSCustomObject mit dem Befehl "NoteProperty " an das Get-Job
Cmdlet. Dies entspricht dem vorherigen Befehl.
[pscustomobject]@{Command='*Get-Process*'} | Get-Job
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
3 Job3 BackgroundJob Running True localhost Get-Process
Beispiel 5: Abrufen von Aufträgen, die noch nicht gestartet wurden
Mit diesem Befehl werden nur die Aufträge abgerufen, die erstellt, aber noch nicht gestartet wurden. Dazu gehören Aufträge, deren Ausführung für einen Zeitpunkt in der Zukunft geplant ist, und solche, die noch nicht geplant wurden.
Get-Job -State NotStarted
Beispiel 6: Abrufen von Aufträgen, denen kein Name zugewiesen wurde
Dieser Befehl ruft alle Aufträge ab, die über Auftragsnamen verfügen, die mit dem Auftrag beginnen. Da job<number>
es sich um den Standardnamen für einen Auftrag handelt, ruft dieser Befehl alle Aufträge ab, für die kein explizit zugewiesener Name vorhanden ist.
Get-Job -Name Job*
Id Name PSJobTypeName State HasMoreData Location Command
-- ---- ------------- ----- ----------- -------- -------
1 Job1 BackgroundJob Completed True localhost $env:COMPUTERNAME
Beispiel 7: Verwenden eines Auftragsobjekts zum Darstellen des Auftrags in einem Befehl
In diesem Beispiel wird gezeigt, wie Get-Job
Sie ein Auftragsobjekt abrufen und dann das Auftragsobjekt verwenden, um den Auftrag in einem Befehl darzustellen.
Der erste Befehl verwendet das Start-Job
Cmdlet, um einen Hintergrundauftrag zu starten, der einen Get-Process
Befehl auf dem lokalen Computer ausführt. Der Befehl verwendet den Parameter Name , Start-Job
um dem Auftrag einen Anzeigenamen zuzuweisen. Der zweite Befehl verwendet Get-Job
, um den Auftrag abzurufen. Der Name-Parameter Get-Job
wird verwendet, um den Auftrag zu identifizieren. Der Befehl speichert das resultierende Auftragsobjekt in der $j
Variablen. Der dritte Befehl zeigt den Wert des Auftragsobjekts in der $j
Variablen an. Der Wert der State-Eigenschaft zeigt an, dass der Auftrag abgeschlossen ist. Der Wert der HasMoreData-Eigenschaft zeigt, dass ergebnisse aus dem Auftrag verfügbar sind, die noch nicht abgerufen wurden. Der vierte Befehl verwendet das Receive-Job
Cmdlet, um die Ergebnisse des Auftrags abzurufen. Es verwendet das Auftragsobjekt in der $j
Variablen, um den Auftrag darzustellen. Sie können auch einen Pipelineoperator verwenden, um ein Auftragsobjekt an .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
...
Beispiel 8: Abrufen aller Aufträge einschließlich Aufträgen, die mit einer anderen Methode gestartet wurden
In diesem Beispiel wird veranschaulicht, dass das Get-Job
Cmdlet alle Aufträge abrufen kann, die in der aktuellen Sitzung gestartet wurden, auch wenn sie mit verschiedenen Methoden gestartet wurden.
Der erste Befehl verwendet das Start-Job
Cmdlet, um einen Auftrag auf dem lokalen Computer zu starten. Der zweite Befehl verwendet den AsJob-Parameter des Invoke-Command
Cmdlets, um einen Auftrag auf dem S1-Computer zu starten. Obwohl die Befehle im Auftrag auf dem Remotecomputer ausgeführt werden, wird das Auftragsobjekt auf dem lokalen Computer erstellt, sodass Sie lokale Befehle zum Verwalten des Auftrags verwenden. Der dritte Befehl verwendet das Invoke-Command
Cmdlet, um einen Start-Job
Befehl auf dem S2-Computer auszuführen. Mithilfe dieser Methode wird das Auftragsobjekt auf dem Remotecomputer erstellt, sodass Sie Remotebefehle zum Verwalten des Auftrags verwenden. Der vierte Befehl verwendet Get-Job
, um die aufträge abzurufen, die auf dem lokalen Computer gespeichert sind. Die PSJobTypeName-Eigenschaft von Aufträgen, die in Windows PowerShell 3.0 eingeführt wurden, zeigt, dass der lokale Auftrag, der mit dem Start-Job
Cmdlet gestartet wurde, ein Hintergrundauftrag ist und der Auftrag, der in einer Remotesitzung mithilfe des Invoke-Command
Cmdlets gestartet wurde, ein Remoteauftrag ist. Der fünfte, sechste und siebte Befehl verwendet das New-PSSession
Cmdlet, um eine PSSession zu erstellen, die mit dem S2-Computer verbunden ist. Es wird verwendet Invoke-Command
, um einen Auftrag auf dem Remotecomputer mithilfe der PSSession und des Session-Parameters zu starten. Anschließend ruft er den Auftrag mithilfe des Get-Job
Befehls auf dem S2-Computer mithilfe der PSSession ab.
Die Beispielausgabe zeigt die Ergebnisse des Get-Job
Befehls an. Auf dem S2-Computer scheint der Auftrag ein lokaler Auftrag zu sein. Der Computername ist "localhost", und der Auftragstyp ist ein Hintergrundauftrag.
Weitere Informationen zum Ausführen von Hintergrundaufträgen auf Remotecomputern finden Sie unter 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
Beispiel 9: Untersuchen eines fehlgeschlagenen Auftrags
Dieser Befehl zeigt, wie Sie das Auftragsobjekt verwenden, das zurückgibt, Get-Job
um zu untersuchen, warum ein Auftrag fehlgeschlagen ist.
Weiterhin wird gezeigt, wie die untergeordneten Aufträge der einzelnen Aufträge abgerufen werden.
Der erste Befehl verwendet das Start-Job
Cmdlet, um einen Auftrag auf dem lokalen Computer zu starten. Das Auftragsobjekt, das zurückgibt, Start-Job
zeigt an, dass der Auftrag fehlgeschlagen ist. Der Wert der State-Eigenschaft ist fehlgeschlagen.
Der zweite Befehl verwendet das Get-Job
Cmdlet, um den Auftrag abzurufen. Der Befehl verwendet die Dot-Methode, um den Wert der JobStateInfo-Eigenschaft des Objekts abzurufen. Es verwendet einen Pipelineoperator, um das Objekt in der JobStateInfo-Eigenschaft an das Format-List
Cmdlet zu senden, das alle Eigenschaften des Objekts (*
) in einer Liste formatiert. Das Ergebnis des Format-List
Befehls zeigt, dass der Wert der Reason-Eigenschaft des Auftrags leer ist.
Der dritte Befehl untersucht mehr. Er verwendet einen Get-Job
Befehl zum Abrufen des Auftrags und verwendet dann einen Pipelineoperator, um das gesamte Auftragsobjekt an das Format-List
Cmdlet zu senden, das alle Eigenschaften des Auftrags in einer Liste anzeigt. Die Anzeige aller Eigenschaften im Auftragsobjekt zeigt, dass der Auftrag einen untergeordneten Auftrag namens Job2 enthält.
Der vierte Befehl verwendet Get-Job
, um das Auftragsobjekt abzurufen, das den untergeordneten Auftrag Job2 darstellt. Dies ist der Auftrag, in dem der Befehl tatsächlich ausgeführt wurde. Es verwendet die Dot-Methode, um die Reason -Eigenschaft der JobStateInfo -Eigenschaft abzurufen. Das Ergebnis zeigt, dass der Auftrag aufgrund eines Fehlers "Zugriff verweigert" fehlgeschlagen ist. In diesem Fall hat der Benutzer vergessen, beim Starten von Windows PowerShell die Option "Als Administrator ausführen" zu verwenden. Da Hintergrundaufträge die Remotingfeatures von Windows PowerShell verwenden, muss der Computer für die Ausführung eines Auftrags konfiguriert werden, auch wenn der Auftrag auf dem lokalen Computer ausgeführt wird. Informationen zu den Anforderungen für das Remoting in Windows PowerShell finden Sie unter about_Remote_Requirements. Tipps zur Problembehandlung finden Sie unter 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.
Beispiel 10: Abrufen gefilterter Ergebnisse
In diesem Beispiel wird gezeigt, wie Sie den Parameter "Filter" verwenden, um einen Workflowauftrag abzurufen. Der in Windows PowerShell 3.0 eingeführte Parameter "Filter " ist nur für benutzerdefinierte Auftragstypen gültig, z. B. Workflowaufträge und geplante Aufträge.
Der erste Befehl verwendet das Workflow-Schlüsselwort zum Erstellen des WFProcess-Workflows. Der zweite Befehl verwendet den AsJob-Parameter des WFProcess-Workflows, um den Workflow als Hintergrundauftrag auszuführen. Er verwendet den JobName-Parameter des Workflows, um einen Namen für den Auftrag anzugeben, und den PSPrivateMetadata-Parameter des Workflows, um eine benutzerdefinierte ID anzugeben. Der dritte Befehl verwendet den Parameter "Filter " Get-Job
, um den Auftrag anhand der benutzerdefinierten ID abzurufen, die im PARAMETER "PSPrivateMetadata " angegeben wurde.
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
Beispiel 11: Abrufen von Informationen zu untergeordneten Aufträgen
In diesem Beispiel wird die Auswirkung der Verwendung der Parameter IncludeChildJob und ChildJobState des Get-Job
Cmdlets veranschaulicht.
Der erste Befehl ruft die Aufträge in der aktuellen Sitzung ab. Die Ausgabe enthält einen Hintergrundauftrag, einen Remoteauftrag und mehrere Instanzen eines geplanten Auftrags. Der Remoteauftrag Job4 scheint fehlgeschlagen zu sein.
Der zweite Befehl verwendet den IncludeChildJob-Parameter von Get-Job
. Die Ausgabe fügt die untergeordneten Aufträge aller Aufträge mit untergeordneten Aufträgen hinzu. In diesem Fall zeigt die überarbeitete Ausgabe an, dass nur der Job5-Untergeordnete Auftrag von Job4 fehlgeschlagen ist. Der dritte Befehl verwendet den Parameter ChildJobState mit dem Wert "Failed". Die Ausgabe enthält alle übergeordneten Aufträge und nur die untergeordneten Aufträge, die fehlgeschlagen sind. Der fünfte Befehl verwendet die JobStateInfo-Eigenschaft von Aufträgen und deren Reason-Eigenschaft , um zu ermitteln, warum Job5 fehlgeschlagen ist.
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.
Weitere Informationen finden Sie im Hilfethema about_Remote_Troubleshooting .
Parameter
-After
Ruft abgeschlossene Aufträge ab, die nach dem angegebenen Datum und der angegebenen Uhrzeit beendet wurden. Geben Sie ein DateTime-Objekt ein, z. B. ein Objekt, das Get-Date
vom Cmdlet zurückgegeben wird, oder eine Zeichenfolge, die in ein DateTime-Objekt konvertiert werden kann, z Dec 1, 2012 2:00 AM
. B. oder 11/06
.
Dieser Parameter funktioniert nur für benutzerdefinierte Auftragstypen, z. B. Workflowaufträge und geplante Aufträge, die über eine EndTime-Eigenschaft verfügen. Es funktioniert nicht bei Standardhintergrundaufträgen, z. B. bei denen, die mit dem Start-Job
Cmdlet erstellt wurden. Weitere Informationen zur Unterstützung für diesen Parameter finden Sie unter dem Hilfethema für den Auftragstyp.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | DateTime |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Before
Ruft abgeschlossene Aufträge ab, die vor dem angegebenen Datum und der angegebenen Uhrzeit beendet wurden. Geben Sie ein DateTime-Objekt ein.
Dieser Parameter funktioniert nur für benutzerdefinierte Auftragstypen, z. B. Workflowaufträge und geplante Aufträge, die über eine EndTime-Eigenschaft verfügen. Es funktioniert nicht bei Standardhintergrundaufträgen, z. B. bei denen, die mit dem Start-Job
Cmdlet erstellt wurden. Weitere Informationen zur Unterstützung für diesen Parameter finden Sie unter dem Hilfethema für den Auftragstyp.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | DateTime |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ChildJobState
Ruft nur die untergeordneten Aufträge ab, die den angegebenen Status aufweisen. Zulässige Werte für diesen Parameter:
- NotStarted
- Wird ausgeführt
- Abgeschlossen
- Fehler
- Beendet
- Blockiert
- Ausgesetzt
- Getrennt
- Wird angehalten
- Wird beendet
Get-Job
Standardmäßig werden keine untergeordneten Aufträge abgerufen. Mit dem Parameter IncludeChildJob Get-Job
ruft alle untergeordneten Aufträge ab. Wenn Sie den Parameter "ChildJobState " verwenden, hat der Parameter IncludeChildJob keine Auswirkung.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | JobState |
Zulässige Werte: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Command
Gibt ein Array von Befehlen als Zeichenfolgen an. Dieses Cmdlet ruft die Aufträge ab, die die angegebenen Befehle enthalten. Standardmäßig werden alle Aufträge fortgesetzt. Mit Wildcardzeichen können Sie ein Befehlsmuster angeben.
Typ: | String[] |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | True |
-Filter
Gibt eine Hashtabelle mit Bedingungen an. Dieses Cmdlet ruft Aufträge ab, die alle Bedingungen erfüllen. Geben Sie eine Hashtabelle ein, in der die Schlüssel Auftragseigenschaften und die Werte Werte der Auftragseigenschaften sind.
Dieser Parameter funktioniert nur mit benutzerdefinierten Auftragstypen, z. B. Workflowaufträgen und geplanten Aufträgen. Es funktioniert nicht bei Standardhintergrundaufträgen, z. B. bei denen, die mit dem Start-Job
Cmdlet erstellt wurden. Weitere Informationen zur Unterstützung für diesen Parameter finden Sie unter dem Hilfethema für den Auftragstyp.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | Hashtable |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-HasMoreData
Gibt an, ob dieses Cmdlet nur Aufträge mit dem angegebenen HasMoreData-Eigenschaftswert abruft.
Die HasMoreData-Eigenschaft gibt an, ob alle Auftragsergebnisse in der aktuellen Sitzung empfangen wurden. Wenn Sie Aufträge mit mehr Ergebnissen abrufen möchten, geben Sie einen Wert von $True
. Wenn Sie Aufträge abrufen möchten, die keine weiteren Ergebnisse aufweisen, geben Sie einen Wert von $False
.
Verwenden Sie das Receive-Job
Cmdlet, um die Ergebnisse eines Auftrags abzurufen.
Wenn Sie das Receive-Job
Cmdlet verwenden, löscht es aus dem speicherinternen, sitzungsspezifischen Speicher die zurückgegebenen Ergebnisse. Wenn alle Ergebnisse des Auftrags in der aktuellen Sitzung zurückgegeben wurden, legt sie den Wert der HasMoreData-Eigenschaft des Auftrags auf $False
) fest, um anzugeben, dass er keine weiteren Ergebnisse für den Auftrag in der aktuellen Sitzung hat. Verwenden Sie den Parameter Keep , Receive-Job
um zu verhindern, dass Receive-Job
Ergebnisse gelöscht und der Wert der HasMoreData-Eigenschaft geändert wird.
Geben Sie Folgendes ein, um weitere Informationen zu erhalten: Get-Help Receive-Job
.
Die HasMoreData-Eigenschaft ist spezifisch für die aktuelle Sitzung. Wenn Ergebnisse für einen benutzerdefinierten Auftragstyp außerhalb der Sitzung gespeichert werden, z. B. den geplanten Auftragstyp, der Auftragsergebnisse auf dem Datenträger speichert, können Sie das Receive-Job
Cmdlet in einer anderen Sitzung verwenden, um die Auftragsergebnisse erneut abzurufen, auch wenn der Wert von HasMoreData lautet $False
. Weitere Informationen finden Sie in den Hilfethemen für den benutzerdefinierten Auftragstyp.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | Boolean |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Id
Gibt ein Array von IDs von Aufträgen an, die dieses Cmdlet abruft.
Die ID ist eine ganze Zahl, die den Auftrag in der aktuellen Sitzung eindeutig identifiziert. Es ist einfacher zu merken und als die Instanz-ID einzugeben, aber sie ist nur in der aktuellen Sitzung eindeutig. Sie können eine oder mehrere IDs durch Kommas getrennt eingeben. Um die ID eines Auftrags zu finden, geben Sie Get-Job
ohne Parameter ein.
Typ: | Int32[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-IncludeChildJob
Gibt an, dass dieses Cmdlet untergeordnete Aufträge zusätzlich zu übergeordneten Aufträgen zurückgibt.
Dieser Parameter eignet sich besonders für die Untersuchung von Workflowaufträgen, für die Get-Job
ein übergeordneter Containerauftrag zurückgegeben wird, und Auftragsfehler, da der Grund für den Fehler in einer Eigenschaft des untergeordneten Auftrags gespeichert wird.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-InstanceId
Gibt ein Array von Instanz-IDs von Aufträgen an, die dieses Cmdlet abruft. Standardmäßig werden alle Aufträge fortgesetzt.
Eine Instanz-ID ist eine GUID, die den Auftrag auf dem Computer eindeutig identifiziert. Verwenden Sie die Instanz-ID eines Auftrags, um Get-Job
die Instanz-ID eines Auftrags zu finden.
Typ: | Guid[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
-Name
Gibt ein Array von Instanz-Anzeigenamen von Aufträgen an, die dieses Cmdlet abruft. Geben Sie einen Auftragsnamen ein, oder verwenden Sie Platzhalterzeichen, um ein Auftragsnamensmuster einzugeben. Ruft standardmäßig Get-Job
alle Aufträge in der aktuellen Sitzung ab.
Typ: | String[] |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | True |
-Newest
Gibt eine Anzahl von Aufträgen an, die abgerufen werden sollen. Dieses Cmdlet ruft die Aufträge ab, die zuletzt beendet wurden.
Der neueste Parameter sortiert oder gibt die neuesten Aufträge in der Endzeitreihenfolge nicht zurück. Verwenden Sie das Sort-Object
Cmdlet, um die Ausgabe zu sortieren.
Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.
Typ: | Int32 |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-State
Gibt einen Auftragsstatus an. Dieses Cmdlet ruft nur Aufträge im angegebenen Zustand ab. Zulässige Werte für diesen Parameter:
- NotStarted
- Wird ausgeführt
- Abgeschlossen
- Fehler
- Beendet
- Blockiert
- Ausgesetzt
- Getrennt
- Wird angehalten
- Wird beendet
Ruft standardmäßig Get-Job
alle Aufträge in der aktuellen Sitzung ab.
Weitere Informationen zu Auftragszuständen finden Sie unter JobState Enumeration.
Typ: | JobState |
Zulässige Werte: | NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | True |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Sie können keine Objekte an dieses Cmdlet weiterleiten.
Ausgaben
System.Management.Automation.RemotingJob
Dieses Cmdlet gibt Objekte zurück, die die Aufträge in der Sitzung darstellen.
Hinweise
PowerShell enthält die folgenden Aliase für Get-Job
:
- Alle Plattformen:
gjb
Die PSJobTypeName-Eigenschaft von Aufträgen gibt den Auftragstyp des Auftrags an. Der Eigenschaftswert wird vom Autor des Auftragstyps bestimmt. Die folgende Liste enthält allgemeine Auftragstypen.
- BackgroundJob. Lokaler Auftrag, der mit der Verwendung
Start-Job
begonnen hat. - RemoteJob. Auftrag gestartet in einer PSSession mithilfe des AsJob-Parameters des
Invoke-Command
Cmdlets. - PSWorkflowJob. Auftrag, der mithilfe des allgemeinen AsJob-Parameters von Workflows gestartet wurde.