Freigeben über


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 Cmdlet Get-Job ruft Objekte ab, die die Hintergrundaufträge darstellen, die in der aktuellen Sitzung gestartet wurden. Sie können Get-Job verwenden, um Aufträge abzurufen, die mit dem Cmdlet Start-Job 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 von Get-Job verwenden, um bestimmte Aufträge abzurufen.

Das Auftragsobjekt, das Get-Job zurückgibt, enthält nützliche Informationen zum Auftrag, enthält aber nicht die Auftragsergebnisse. Verwenden Sie zum Abrufen der Ergebnisse das Cmdlet Receive-Job.

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 Cmdlet Get-Job 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.

Um Get-Job zum Abrufen eines benutzerdefinierten Auftragstyps zu aktivieren, importieren Sie das Modul, das den benutzerdefinierten Auftragstyp unterstützt, in die Sitzung, bevor Sie einen Get-Job Befehl ausführen, entweder mithilfe des Cmdlets Import-Module oder mithilfe oder Abrufen eines Cmdlets im Modul. Informationen zu einem bestimmten benutzerdefinierten Auftragstyp finden Sie in der Dokumentation des Features für den benutzerdefinierten Auftragstyp.

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 werden. Sie enthält keine Aufträge, die in anderen Sitzungen erstellt wurden, 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 Sie die Instanz-ID eines Auftrags abrufen und dann verwenden, um einen Auftrag zu beenden. Im Gegensatz zum Namen eines Auftrags, der nicht eindeutig ist, ist die Instanz-ID eindeutig.

Der erste Befehl verwendet das Cmdlet Get-Job, um einen Auftrag abzurufen. Er verwendet den parameter Name, um den Auftrag zu identifizieren. Der Befehl speichert das Auftragsobjekt, das Get-Job in der variablen $j zurückgibt. 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 sie in der $ID Variablen. Der dritte Befehl zeigt den Wert der variablen $ID an. Der vierte Befehl verwendet Stop-Job Cmdlet, um den Auftrag zu beenden. Er verwendet den parameter InstanceId, um den Auftrag zu identifizieren und die Variable $ID, 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 auf dem System ab, die einen Get-Process Befehl enthalten. Der Befehl verwendet den parameter Command von Get-Job, um die abgerufenen Aufträge einzuschränken. Der Befehl verwendet Wildcardzeichen (*) zum Abrufen von Aufträgen, die einen Get-Process Befehl an einer 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 (|), um ein PSCustomObject mit der NoteProperty Commandan das Cmdlet Get-Job zu senden. Es 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

Dieser Befehl ruft nur die Aufträge ab, die erstellt wurden, aber noch nicht gestartet wurden. Dazu gehören Aufträge, die in Zukunft ausgeführt werden sollen und die noch nicht geplant sind.

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> der Standardname für einen Auftrag ist, ruft dieser Befehl alle Aufträge ab, die keinen explizit zugewiesenen Namen haben.

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 Sie Get-Job verwenden, um ein Auftragsobjekt abzurufen, und anschließend wird gezeigt, wie das Auftragsobjekt verwendet wird, um den Auftrag in einem Befehl darzustellen.

Der erste Befehl verwendet das Cmdlet Start-Job, um einen Hintergrundauftrag zu starten, der einen Get-Process Befehl auf dem lokalen Computer ausführt. Der Befehl verwendet den Name Parameter von Start-Job, um dem Auftrag einen Anzeigenamen zuzuweisen. Der zweite Befehl verwendet Get-Job, um den Auftrag abzurufen. Er verwendet den parameter Name von Get-Job, 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 variablen $j an. Der Wert der eigenschaft State zeigt, dass der Auftrag abgeschlossen ist. Der Wert der HasMoreData--Eigenschaft zeigt, dass ergebnisse aus dem Auftrag verfügbar sind, der noch nicht abgerufen wurde. Der vierte Befehl verwendet das cmdlet Receive-Job, 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-Jobzu senden.

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 Cmdlet Get-Job 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 Cmdlet Start-Job, um einen Auftrag auf dem lokalen Computer zu starten. Der zweite Befehl verwendet den parameter AsJob des Cmdlets Invoke-Command, 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 Cmdlet Invoke-Command, 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 auf dem lokalen Computer gespeicherten Aufträge abzurufen. Die PSJobTypeName Eigenschaft von Aufträgen, die in Windows PowerShell 3.0 eingeführt wurden, zeigt, dass der lokale Auftrag, der mit dem Cmdlet Start-Job gestartet wurde, ein Hintergrundauftrag ist und der Auftrag in einer Remotesitzung mithilfe des Cmdlets Invoke-Command ein Remoteauftrag ist. Der fünfte, sechste und siebte Befehl verwendet das Cmdlet New-PSSession, um eine PSSession zu erstellen, die mit dem S2-Computer verbunden ist. Er verwendet Invoke-Command, um einen Auftrag auf dem Remotecomputer mit der PSSession und dem parameter Session zu starten. Anschließend wird der Auftrag mithilfe des Befehls Get-Job auf dem S2-Computer mithilfe der PSSession ab. Die Beispielausgabe zeigt die Ergebnisse des Befehls Get-Job. 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 Get-Job zurückgibt, um zu untersuchen, warum ein Auftrag fehlgeschlagen ist. Außerdem wird gezeigt, wie sie die Kinderaufträge jeder Aufgabe erhalten.

Der erste Befehl verwendet das Cmdlet Start-Job, um einen Auftrag auf dem lokalen Computer zu starten. Das Auftragsobjekt, das Start-Job zurückgibt, zeigt an, dass der Auftrag fehlgeschlagen ist. Der Wert der State-Eigenschaft ist fehlgeschlagen.

Der zweite Befehl verwendet das cmdlet Get-Job, 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 cmdlet Format-List zu senden, das alle Eigenschaften des Objekts (*) in einer Liste formatiert. Das Ergebnis des Befehls Format-List zeigt, dass der Wert der Reason Eigenschaft des Auftrags leer ist.

Der dritte Befehl untersucht mehr. Es verwendet einen Get-Job-Befehl, um den Auftrag abzurufen, und verwendet dann einen Pipelineoperator, um das gesamte Auftragsobjekt an das cmdlet Format-List 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 eigenschaft Reason 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 schlüsselwort Workflow 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 der PSPrivateMetadata Parameter des Workflows, um eine benutzerdefinierte ID anzugeben. Der dritte Befehl verwendet den parameter Filter von Get-Job, um den Auftrag anhand der benutzerdefinierten ID abzurufen, die im PSPrivateMetadata Parameter 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 Parameter des Cmdlets Get-Job gezeigt.

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.The output includes all parent jobs and only the child jobs that failed. 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 vom Cmdlet Get-Date zurückgegeben wird, oder eine Zeichenfolge, die in ein DateTime--Objekt konvertiert werden kann, z. B. Dec 1, 2012 2:00 AM oder 11/06.

Dieser Parameter funktioniert nur für benutzerdefinierte Auftragstypen, z. B. Workflowaufträge und geplante Aufträge, die eine EndTime-eigenschaft aufweisen. Es funktioniert nicht für Standard-Hintergrundaufträge, z. B. für solche, die mit dem Cmdlet Start-Job erstellt wurden. Informationen zur Unterstützung für diesen Parameter finden Sie im 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 eine EndTime-eigenschaft aufweisen. Es funktioniert nicht für Standard-Hintergrundaufträge, z. B. für solche, die mit dem Cmdlet Start-Job erstellt wurden. Informationen zur Unterstützung für diesen Parameter finden Sie im 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 Zustand aufweisen. Die zulässigen Werte für diesen Parameter sind:

  • NotStarted
  • Ausgeführte
  • Abgeschlossen
  • Misslungen
  • Angehalten
  • Gesperrt
  • Ausgesetzt
  • Entfernt
  • Aufschiebend
  • Anhaltend

Standardmäßig erhalten Get-Job keine untergeordneten Aufträge. Mithilfe des parameters IncludeChildJob ruft Get-Job alle untergeordneten Aufträge ab. Wenn Sie den parameter ChildJobState verwenden, hat der IncludeChildJob Parameter 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. Der Standardwert ist alle Aufträge. 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 Auftragseigenschaftswerte sind.

Dieser Parameter funktioniert nur für benutzerdefinierte Auftragstypen, z. B. Workflowaufträge und geplante Aufträge. Es funktioniert nicht für Standard-Hintergrundaufträge, z. B. für solche, die mit dem Cmdlet Start-Job erstellt wurden. Informationen zur Unterstützung für diesen Parameter finden Sie im 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 abruft, die den angegebenen HasMoreData Eigenschaftswert aufweisen. Die eigenschaft HasMoreData 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 $Truean. Wenn Sie Aufträge abrufen möchten, die keine weiteren Ergebnisse aufweisen, geben Sie einen Wert von $Falsean.

Verwenden Sie das Cmdlet Receive-Job, um die Ergebnisse eines Auftrags abzurufen.

Wenn Sie das Cmdlet Receive-Job verwenden, wird es aus dem speicherinternen, sitzungsspezifischen Speicher gelöscht, die von ihm 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 Keep-Parameter von Receive-Job, um zu verhindern, dass Receive-Job Ergebnisse löscht und den Wert der HasMoreData-Eigenschaft ändert. Geben Sie Get-Help Receive-Jobein, um weitere Informationen zu erfahren.

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 Cmdlet Receive-Job in einer anderen Sitzung verwenden, um die Auftragsergebnisse erneut abzurufen, auch wenn der Wert von HasMoreData$Falseist. 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. Geben Sie Get-Job ohne Parameter ein, um die ID eines Auftrags zu finden.

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 zum Untersuchen von Workflowaufträgen, für die Get-Job einen übergeordneten Containerauftrag und Auftragsfehler zurückgibt, 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. Der Standardwert ist alle Aufträge.

Eine Instanz-ID ist eine GUID, die den Auftrag auf dem Computer eindeutig identifiziert. Um die Instanz-ID eines Auftrags zu finden, verwenden Sie Get-Job.

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 Zum Eingeben eines Auftragsnamenmusters Wildcardzeichen. Standardmäßig ruft 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 parameter Newest sortiert oder gibt die neuesten Aufträge nicht in Endzeitreihenfolge zurück. Verwenden Sie zum Sortieren der Ausgabe das Cmdlet Sort-Object.

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. Die zulässigen Werte für diesen Parameter sind:

  • NotStarted
  • Ausgeführte
  • Abgeschlossen
  • Misslungen
  • Angehalten
  • Gesperrt
  • Ausgesetzt
  • Entfernt
  • Aufschiebend
  • Anhaltend

Standardmäßig ruft 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. In der folgenden Liste sind allgemeine Auftragstypen aufgeführt.

  • BackgroundJob. Der lokale Auftrag wurde mit Start-Jobgestartet.
  • RemoteJob. Auftrag gestartet in einer PSSession mithilfe des AsJob- Parameters des cmdlets Invoke-Command.
  • PSWorkflowJob. Auftrag, der mit der Verwendung des AsJob allgemeinen Parameter von Workflows gestartet wurde.