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 Get-Job Cmdlet ruft Objekte ab, die die Hintergrundaufträge darstellen, die in der aktuellen Sitzung gestartet wurden. Sie können verwenden Get-Job , um Aufträge abzurufen, die mithilfe des Start-Job Cmdlets oder mithilfe des AsJob-Parameters eines beliebigen Cmdlets gestartet wurden.

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 zurückgibt, Get-Job enthält nützliche Informationen zum Auftrag, aber nicht die Auftragsergebnisse. Verwenden Sie das Cmdlet, um die Receive-Job 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 geplanter Aufträge. Zum Ermitteln des Auftragstyps eines Auftrags verwenden Sie die PSJobTypeName-Eigenschaft des Auftrags.

Um das Abrufen eines benutzerdefinierten Auftragstyps zu aktivieren Get-Job , 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 eines Cmdlets im Modul. Informationen zu einem bestimmten benutzerdefinierten Auftragstyp finden Sie in der Dokumentation der Funktion „Benutzerdefinierte Auftragstypen“.

Beispiele

Beispiel 1: Abrufen aller In der aktuellen Sitzung gestarteten Hintergrundaufträge

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 instance-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. Der Name-Parameter wird verwendet, um den Auftrag zu identifizieren. Der Befehl speichert das Auftragsobjekt, das Get-Job in der $j Variablen zurückgibt. In diesem Beispiel ist nur ein Auftrag mit dem angegebenen Namen vorhanden. Mit dem zweiten Befehl wird die InstanceId-Eigenschaft des Objekts in der $j Variablen abgerufen und in der $ID Variablen gespeichert. Der dritte Befehl zeigt den Wert der $ID Variablen an. Der vierte Befehl verwendet Stop-Job das Cmdlet, um den Auftrag zu beenden. Es verwendet den InstanceId-Parameter, um den Auftrag und $ID die Variable zu identifizieren, um die instance 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

Mit diesem Befehl werden die Aufträge auf dem System abgerufen, die einen Get-Process Befehl enthalten. Der Befehl verwendet den Command-Parameter von Get-Job , um die abgerufenen Aufträge zu begrenzen. Der Befehl verwendet Feldhalterzeichen (*), um Aufträge abzurufen, 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 (|), um ein PSCustomObject mit dem Befehl NoteProperty an das Get-Job Cmdlet zu senden. 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 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

Mit diesem Befehl werden alle Aufträge abgerufen, 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 verwenden Get-Job , um ein Auftragsobjekt abzurufen, und dann wird gezeigt, wie das Auftragsobjekt verwendet wird, 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 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 an $j . Der Wert der State-Eigenschaft zeigt an, dass der Auftrag abgeschlossen ist. Der Wert der HasMoreData-Eigenschaft zeigt, dass Ergebnisse des Auftrags 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 zu Receive-Jobsenden.

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 unterschiedlichen 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; daher verwenden Sie lokale Befehle zum Verwalten des Auftrags. Der dritte Befehl verwendet das Invoke-Command Cmdlet, um einen Start-Job Befehl auf dem S2-Computer auszuführen. Mit dieser Methode wird das Auftragsobjekt auf dem Remotecomputer erstellt, sodass Sie Remotebefehle verwenden, um den Auftrag zu verwalten. 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 wurde, zeigt, dass der lokale Auftrag, der mithilfe des Start-Job Cmdlets gestartet wurde, ein Hintergrundauftrag ist und der in einer Remotesitzung mit dem Invoke-Command Cmdlet gestartete Auftrag 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 wird der Auftrag mithilfe des Get-Job Befehls auf dem S2-Computer mithilfe der PSSession abgerufen. Die Beispielausgabe zeigt die Ergebnisse des Get-Job Befehls. Auf dem Computer S2 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 fehlerhaften Auftrags

Dieser Befehl zeigt, wie Sie das Auftragsobjekt verwenden, das zurückgibt, um zu untersuchen, Get-Job 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ückgegeben wird, Start-Job zeigt, dass der Auftrag fehlgeschlagen ist. Der Wert der State-Eigenschaft ist Failed.

Der zweite Befehl verwendet das Get-Job Cmdlet, um den Auftrag abzurufen. Der Befehl verwendet die Punktmethode, 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. Es verwendet einen Get-Job Befehl zum Abrufen des Auftrags und 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 mit dem Namen Job2 enthält.

Der vierte Befehl verwendet Get-Job , um das Auftragsobjekt abzurufen, das den untergeordneten Job2-Auftrag darstellt. Dies ist der Auftrag, in dem der Befehl tatsächlich ausgeführt wurde. Sie verwendet die dot-Methode, um die Reason-Eigenschaft der JobStateInfo-Eigenschaft abzurufen. Das Ergebnis zeigt, dass der Auftrag aufgrund eines Zugriffsverweigerungsfehlers fehlgeschlagen ist. In diesem Fall hat der Benutzer vergessen, die Option Als Administrator ausführen zu verwenden, wenn er Windows PowerShell startet. Da Hintergrundaufträge die Remotingfeatures von Windows PowerShell verwenden, muss der Computer für remoting konfiguriert sein, um einen Auftrag auszuführen, auch wenn der Auftrag auf dem lokalen Computer ausgeführt wird. Informationen zu den Anforderungen für 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

Dieses Beispiel zeigt, wie Sie den Filter-Parameter zum Abrufen eines Workflowauftrags verwenden. Der in Windows PowerShell 3.0 eingeführte Filter-Parameter ist nur für benutzerdefinierte Auftragstypen gültig, wie z. B. Workflowaufträge und geplante Aufträge.

Der erste Befehl verwendet die Workflow-Schlüsselwort (keyword) workflow, um den WFProcess-Workflow zu erstellen. Der zweite Befehl verwendet den AsJob-Parameter des WFProcess-Workflows, um den Workflow als Hintergrundauftrag auszuführen. Mithilfe des JobName-Parameters des Workflows wird ein Name für den Auftrag angegeben und mithilfe des PSPrivateMetadata-Parameters des Workflows eine benutzerdefinierte ID. Der dritte Befehl verwendet den Filter-Parameter 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

Dieses Beispiel zeigt die Auswirkungen der Verwendung der Parameter IncludeChildJob und ChildJobState des Get-Job Cmdlets.

Der erste Befehl ruft die Aufträge in der aktuellen Sitzung ab. Die Ausgabe umfasst einen Hintergrundauftrag, einen Remoteauftrag und mehrere Instanzen eines geplanten Auftrags. Bei der Ausführung des Remoteauftrags (Job4) scheint ein Fehler aufgetreten zu sein. Der zweite Befehl verwendet den IncludeChildJob-Parameter von Get-Job. Die Ausgabe fügt die untergeordneten Aufträge aller Aufträge hinzu, die über untergeordnete Aufträge verfügen. In diesem Fall zeigt die überarbeitete Ausgabe an, dass nur der untergeordnete Auftrag Auftrag5 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 die zugehörige 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 vom Get-Date Cmdlet zurückgegebenes Objekt oder eine Zeichenfolge, die in ein DateTime-Objekt konvertiert werden kann, z Dec 1, 2012 2:00 AM . B. oder 11/06.

Dieser Parameter kann nur für benutzerdefinierte Auftragstypen wie z. B. Workflowaufträge und geplante Aufträge verwendet werden, die über eine EndTime-Eigenschaft verfügen. Dies funktioniert nicht für Standard-Hintergrundaufträge, z. B. solche, 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.

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 kann nur für benutzerdefinierte Auftragstypen wie z. B. Workflowaufträge und geplante Aufträge verwendet werden, die über eine EndTime-Eigenschaft verfügen. Dies funktioniert nicht für Standard-Hintergrundaufträge, z. B. solche, 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.

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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

Standardmäßig Get-Job werden keine untergeordneten Aufträge abgerufen. Ruft mithilfe des IncludeChildJob-Parameters alle untergeordneten Get-Job Aufträge ab. Bei Verwendung des ChildJobState-Parameters hat der IncludeChildJob-Parameter keine Auswirkungen.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

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

-Command

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. Sie können Mithilfe von Wildcardzeichen ein Befehlsmuster angeben.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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. Dies funktioniert nicht für Standard-Hintergrundaufträge, z. B. solche, 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.

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

-HasMoreData

Gibt an, ob dieses Cmdlet nur Aufträge abruft, die über den angegebenen HasMoreData-Eigenschaftswert verfügen. Die HasMoreData-Eigenschaft gibt an, ob alle Auftragsergebnisse in der aktuellen Sitzung empfangen wurden. Um Aufträge mit mehr Ergebnissen abzurufen, geben Sie den Wert an $True. Um Aufträge abzurufen, die nicht mehr Ergebnisse aufweisen, geben Sie den Wert an $False.

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

Wenn Sie das Receive-Job Cmdlet verwenden, werden die zurückgegebenen Ergebnisse aus dem sitzungsspezifischen Speicher im Arbeitsspeicher gelöscht. Wenn alle Ergebnisse des Auftrags in der aktuellen Sitzung zurückgegeben wurden, wird der Wert der HasMoreData-Eigenschaft des Auftrags auf $False) festgelegt, um anzugeben, dass für den Auftrag in der aktuellen Sitzung keine Ergebnisse mehr vorliegen. Verwenden Sie den Keep-Parameter von, 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 für die aktuelle Sitzung spezifisch. Wenn Ergebnisse für einen benutzerdefinierten Auftragstyp außerhalb der Sitzung gespeichert werden, z. B. der geplante 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 ist $False. Weitere Informationen finden Sie in den Hilfethemen für den benutzerdefinierten Auftragstyp.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 einzugeben als die instance-ID, 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 ermitteln, geben Sie ohne Parameter ein Get-Job .

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

-IncludeChildJob

Gibt an, dass dieses Cmdlet neben übergeordneten Aufträgen auch untergeordnete Aufträge zurückgibt.

Dieser Parameter ist besonders nützlich für die Untersuchung von Workflowaufträgen, für die Get-Job ein übergeordneter Containerauftrag und Auftragsfehler zurückgegeben werden, 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.

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

-InstanceId

Gibt ein Array von instance 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 , um die instance-ID eines Auftrags zu ermittelnGet-Job.

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

-Name

Gibt ein Array von instance 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.

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

-Newest

Gibt eine Anzahl von aufträgen an, die abgerufen werden sollen. Dieses Cmdlet ruft die Aufträge ab, die zuletzt beendet wurden.

Die letzten Aufträge werden vom Newest-Parameter nicht in der Reihenfolge ihrer Endezeit sortiert oder zurückgegeben. Verwenden Sie das Cmdlet, um die Sort-Object Ausgabe zu sortieren.

Dieser Parameter wurde in Windows PowerShell 3.0 eingeführt.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

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

Eingaben

None

Sie können keine Objekte an dieses Cmdlet übergeben.

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 Start-Jobgestartet wurde.
  • RemoteJob. Der Auftrag wurde in einer PSSession mithilfe des AsJob-Parameters des Invoke-Command Cmdlets gestartet.
  • PSWorkflowJob. Auftrag, der mit dem allgemeinen AsJob-Parameter von Workflows gestartet wurde.