Condividi tramite


Get-Job

Ottiene i processi in background di PowerShell in esecuzione nella sessione corrente.

Sintassi

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>]

Descrizione

Il Get-Job cmdlet ottiene oggetti che rappresentano i processi in background avviati nella sessione corrente. È possibile usare Get-Job per ottenere i processi avviati usando il Start-Job cmdlet o il parametro AsJob di qualsiasi cmdlet.

Senza parametri, un Get-Job comando ottiene tutti i processi nella sessione corrente. È possibile usare i parametri di Get-Job per ottenere processi specifici.

L'oggetto processo che Get-Job restituisce contiene informazioni utili sul processo, ma non contiene i risultati del processo. Per ottenere i risultati, usare il Receive-Job cmdlet .

Un processo in background di Windows PowerShell è un comando eseguito in background senza interagire con la sessione corrente. In genere, si usa un processo in background per eseguire un comando complesso che richiede molto tempo per terminare. Per altre informazioni sui processi in background in Windows PowerShell, vedere about_Jobs.

A partire da Windows PowerShell 3.0, il Get-Job cmdlet ottiene anche tipi di processi personalizzati, ad esempio processi del flusso di lavoro e istanze di processi pianificati. Per trovare il tipo di processo di un processo, utilizzare la proprietà PSJobTypeName del processo.

Per abilitare Get-Job il recupero di un tipo di processo personalizzato, importare il modulo che supporta il tipo di processo personalizzato nella sessione prima di eseguire un Get-Job comando, usando il Import-Module cmdlet o usando o ottenendo un cmdlet nel modulo. Per informazioni su un tipo di processo personalizzato particolare, vedere la documentazione relativa alla funzionalità del tipo di processo personalizzato.

Esempio

Esempio 1: Avviare tutti i processi in background nella sessione corrente

Questo comando ottiene tutti i processi in background avviati nella sessione corrente. Non include i processi creati in altre sessioni, neanche se vengono eseguiti nel computer locale.

Get-Job

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

Esempio 2: Arrestare un processo usando un ID istanza

Questi comandi illustrano come ottenere l'ID istanza di un processo e quindi usarla per arrestare un processo. A differenza del nome di un processo, che non è univoco, l'ID istanza è univoco.

Il primo comando usa il Get-Job cmdlet per ottenere un processo. Usa il parametro Name per identificare il processo. Il comando archivia l'oggetto processo che Get-Job restituisce nella $j variabile . In questo esempio è presente un solo processo con il nome specificato. Il secondo comando ottiene la proprietà InstanceId dell'oggetto nella $j variabile e la archivia nella $ID variabile . Il terzo comando visualizza il valore della $ID variabile. Il quarto comando usa il Stop-Job cmdlet per arrestare il processo. Usa il parametro InstanceId per identificare il processo e $ID la variabile per rappresentare l'ID istanza del processo.

$j = Get-Job -Name Job1
$ID = $j.InstanceID
$ID

Guid
----
03c3232e-1d23-453b-a6f4-ed73c9e29d55

Stop-Job -InstanceId $ID

Esempio 3: Ottenere processi che includono un comando specifico

Questo comando ottiene i processi nel sistema che includono un Get-Process comando. Il comando usa il parametro Command di Get-Job per limitare i processi recuperati. Il comando usa caratteri jolly (*) per ottenere processi che includono un Get-Process comando in qualsiasi punto della stringa di comando.

Get-Job -Command "*Get-Process*"

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
3      Job3            BackgroundJob   Running       True            localhost            Get-Process

Esempio 4: Ottenere processi che includono un comando specifico usando la pipeline

Analogamente al comando nell'esempio precedente, questo comando ottiene i processi nel sistema che includono un Get-Process comando. Il comando usa un operatore pipeline (|) per inviare un PSCustomObject con il Get-Job comando NoteProperty al cmdlet . È l'equivalente del comando precedente.

[pscustomobject]@{Command='*Get-Process*'} | Get-Job

Id     Name            PSJobTypeName   State         HasMoreData     Location             Command
--     ----            -------------   -----         -----------     --------             -------
3      Job3            BackgroundJob   Running       True            localhost            Get-Process

Esempio 5: Ottenere processi non avviati

Questo comando ottiene solo i processi che sono stati creati ma non ancora avviati. Include i processi pianificati per l'esecuzione futura e quelli non ancora pianificati.

Get-Job -State NotStarted

Esempio 6: Ottenere processi a cui non è stato assegnato un nome

Questo comando ottiene tutti i processi con nomi di processo che iniziano con il processo. Poiché job<number> è il nome predefinito per un processo, questo comando ottiene tutti i processi che non hanno un nome assegnato in modo esplicito.

Get-Job -Name Job*

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

Esempio 7: Usare un oggetto processo per rappresentare il processo in un comando

In questo esempio viene illustrato come usare Get-Job per ottenere un oggetto processo e quindi viene illustrato come usare l'oggetto processo per rappresentare il processo in un comando.

Il primo comando usa il Start-Job cmdlet per avviare un processo in background che esegue un Get-Process comando nel computer locale. Il comando usa il parametro Name di Start-Job per assegnare un nome descrittivo al processo. Il secondo comando usa Get-Job per ottenere il processo. Usa il parametro Name di Get-Job per identificare il processo. Il comando salva l'oggetto processo risultante nella $j variabile . Il terzo comando visualizza il valore dell'oggetto processo nella $j variabile . Il valore della proprietà State indica che il processo è stato completato. Il valore della proprietà HasMoreData indica che sono disponibili risultati dal processo che non sono ancora stati recuperati. Il quarto comando usa il Receive-Job cmdlet per ottenere i risultati del processo. Usa l'oggetto processo nella $j variabile per rappresentare il processo. È anche possibile usare un operatore pipeline per inviare un oggetto processo a 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
...

Esempio 8: Ottenere tutti i processi inclusi i processi avviati da un metodo diverso

In questo esempio viene illustrato che il Get-Job cmdlet può ottenere tutti i processi avviati nella sessione corrente, anche se sono stati avviati usando metodi diversi.

Il primo comando usa il Start-Job cmdlet per avviare un processo nel computer locale. Il secondo comando usa il parametro AsJob del Invoke-Command cmdlet per avviare un processo nel computer S1. Anche se i comandi del processo vengono eseguiti nel computer remoto, l'oggetto processo viene creato nel computer locale, quindi si usano i comandi locali per gestire il processo. Il terzo comando usa il Invoke-Command cmdlet per eseguire un Start-Job comando nel computer S2. Usando questo metodo, l'oggetto processo viene creato nel computer remoto, quindi si usano i comandi remoti per gestire il processo. Il quarto comando usa Get-Job per ottenere i processi archiviati nel computer locale. La proprietà PSJobTypeName dei processi, introdotta in Windows PowerShell 3.0, mostra che il processo locale avviato tramite il Start-Job cmdlet è un processo in background e il processo avviato in una sessione remota usando il Invoke-Command cmdlet è un processo remoto. Il quinto, sesto e settimo comando usa il New-PSSession cmdlet per creare una SESSIONE PSSession connessa al computer S2, viene usata Invoke-Command per avviare un processo nel computer remoto usando PSSession e il parametro Session . Ottiene quindi il processo usando il Get-Job comando nel computer S2 usando la sessione PSSession. L'output di esempio mostra i risultati del Get-Job comando. Nel computer S2 il processo sembra essere un processo locale. Il nome del computer è localhost e il tipo di processo è un processo in background. Per altre informazioni su come eseguire processi in background nei computer remoti, vedere 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

Esempio 9: Analizzare un processo non riuscito

Questo comando illustra come usare l'oggetto processo che Get-Job restituisce per analizzare il motivo per cui un processo non è riuscito. Mostra anche come ottenere i processi figlio di ogni processo.

Il primo comando usa il Start-Job cmdlet per avviare un processo nel computer locale. L'oggetto processo che Start-Job restituisce indica che il processo non è riuscito. Il valore della proprietà State è Failed.

Il secondo comando usa il Get-Job cmdlet per ottenere il processo. Il comando usa il metodo dot per ottenere il valore della proprietà JobStateInfo dell'oggetto . Usa un operatore pipeline per inviare l'oggetto nella proprietà JobStateInfo al Format-List cmdlet , che formatta tutte le proprietà dell'oggetto (*) in un elenco. Il risultato del Format-List comando mostra che il valore della proprietà Reason del processo è vuoto.

Il terzo comando esamina più in dettaglio. Usa un Get-Job comando per ottenere il processo e quindi usa un operatore pipeline per inviare l'intero oggetto processo al Format-List cmdlet, che visualizza tutte le proprietà del processo in un elenco. La visualizzazione di tutte le proprietà nell'oggetto processo mostra che il processo contiene un processo figlio denominato Job2.

Il quarto comando usa Get-Job per ottenere l'oggetto processo che rappresenta il processo figlio Job2. Si tratta del processo in cui è stato effettivamente eseguito il comando. Usa il metodo dot per ottenere la proprietà Reason della proprietà JobStateInfo . Il risultato indica che il processo non è riuscito a causa di un errore di accesso negato. In questo caso, l'utente ha dimenticato di usare l'opzione Esegui come amministratore quando si avvia Windows PowerShell.Poiché i processi in background usano le funzionalità di comunicazione remota di Windows PowerShell, il computer deve essere configurato per l'esecuzione di un processo da remoto, anche quando il processo viene eseguito nel computer locale. Per informazioni sui requisiti per la comunicazione remota in Windows PowerShell, vedere about_Remote_Requirements. Per suggerimenti per la risoluzione dei problemi, vedere 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.

Esempio 10: Ottenere risultati filtrati

In questo esempio viene illustrato come usare il parametro Filter per ottenere un processo del flusso di lavoro. Il parametro Filter , introdotto in Windows PowerShell 3.0 è valido solo per i tipi di processi personalizzati, ad esempio processi del flusso di lavoro e processi pianificati.

Il primo comando usa la parola chiave Workflow per creare il flusso di lavoro WFProcess. Il secondo comando usa il parametro AsJob del flusso di lavoro WFProcess per eseguire il flusso di lavoro come processo in background. Usa il parametro JobName del flusso di lavoro per specificare un nome per il processo e il parametro PSPrivateMetadata del flusso di lavoro per specificare un ID personalizzato. Il terzo comando usa il parametro Filter di Get-Job per ottenere il processo in base all'ID personalizzato specificato nel parametro PSPrivateMetadata .

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

Esempio 11: Ottenere informazioni sui processi figlio

In questo esempio viene illustrato l'effetto dell'uso dei parametri IncludeChildJob e ChildJobState del Get-Job cmdlet .

Il primo comando ottiene i processi nella sessione corrente. L'output include un processo in background, un processo remoto e diverse istanze di un processo pianificato. Il processo remoto Job4 sembra non riuscito. Il secondo comando usa il parametro IncludeChildJob di Get-Job. L'output aggiunge i processi figlio di tutti i processi che dispongono di processi figlio. In questo caso, l'output rivisto mostra che solo il processo figlio Job5 di Job4 non è riuscito. Il terzo comando usa il parametro ChildJobState con un valore Failed.L'output include tutti i processi padre e solo i processi figlio non riusciti. Il quinto comando usa la proprietà JobStateInfo dei processi e la relativa proprietà Reason per individuare il motivo per cui Job5 non è riuscito.

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.

Per altre informazioni, vedere l'argomento della Guida di about_Remote_Troubleshooting .

Parametri

-After

Ottiene i processi completati dopo la data e l'ora specificate. Immettere un oggetto DateTime , ad esempio quello restituito dal Get-Date cmdlet o una stringa che può essere convertita in un oggetto DateTime , ad esempio Dec 1, 2012 2:00 AM o 11/06.

Questo parametro funziona solo su tipi di processi personalizzati, ad esempio processi del flusso di lavoro e processi pianificati, che dispongono di una proprietà EndTime . Non funziona su processi in background standard, ad esempio quelli creati usando il Start-Job cmdlet . Per informazioni sul supporto di questo parametro, vedere l'argomento della Guida relativo al tipo di processo.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Tipo:DateTime
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Before

Ottiene i processi completati prima della data e dell'ora specificate. Immettere un oggetto DateTime .

Questo parametro funziona solo su tipi di processi personalizzati, ad esempio processi del flusso di lavoro e processi pianificati, che dispongono di una proprietà EndTime . Non funziona su processi in background standard, ad esempio quelli creati usando il Start-Job cmdlet . Per informazioni sul supporto di questo parametro, vedere l'argomento della Guida relativo al tipo di processo.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Tipo:DateTime
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-ChildJobState

Ottiene solo i processi figlio con lo stato specificato. I valori validi per questo parametro sono:

  • NotStarted
  • In esecuzione
  • Completato
  • Non riuscito
  • Arrestato
  • Bloccati
  • Suspended
  • Disconnesso
  • Suspending
  • Arresto in corso

Per impostazione predefinita, Get-Job non ottiene processi figlio. Usando il parametro IncludeChildJob , Get-Job ottiene tutti i processi figlio. Se si usa il parametro ChildJobState , il parametro IncludeChildJob non ha alcun effetto.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Tipo:JobState
Valori accettati:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Command

Specifica una matrice di comandi come stringhe. Questo cmdlet ottiene i processi che includono i comandi specificati. Il valore predefinito corrisponde a tutti i processi. È possibile usare caratteri jolly per specificare un criterio di comando.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:True

-Filter

Specifica una tabella hash di condizioni. Questo cmdlet ottiene i processi che soddisfano tutte le condizioni. Immettere una tabella hash in cui le chiavi sono le proprietà del processo e i valori sono i valori di queste proprietà.

Questo parametro funziona solo su tipi di processo personalizzati, ad esempio i processi del flusso di lavoro e i processi pianificati. Non funziona su processi in background standard, ad esempio quelli creati usando il Start-Job cmdlet . Per informazioni sul supporto di questo parametro, vedere l'argomento della Guida relativo al tipo di processo.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Tipo:Hashtable
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-HasMoreData

Indica se questo cmdlet ottiene solo i processi con il valore della proprietà HasMoreData specificato. La proprietà HasMoreData indica se tutti i risultati del processo sono stati ricevuti nella sessione corrente. Per ottenere processi con più risultati, specificare il valore .$True Per ottenere processi che non hanno più risultati, specificare il valore .$False

Per ottenere i risultati di un processo, usare il Receive-Job cmdlet .

Quando si usa il Receive-Job cmdlet, elimina dalla risorsa di archiviazione in memoria specifica della sessione i risultati restituiti. Quando ha restituito tutti i risultati del processo nella sessione corrente, imposta il valore della proprietà HasMoreData del processo su $False) per indicare che non ha più risultati per il processo nella sessione corrente. Utilizzare il parametro Keep di Receive-Job per impedire Receive-Job l'eliminazione dei risultati e la modifica del valore della proprietà HasMoreData. Per ulteriori informazioni, digitare Get-Help Receive-Job.

La proprietà HasMoreData è specifica della sessione corrente. Se i risultati per un tipo di processo personalizzato vengono salvati all'esterno della sessione, ad esempio il tipo di processo pianificato, che salva i risultati del processo su disco, è possibile usare il Receive-Job cmdlet in una sessione diversa per ottenere di nuovo i risultati del processo, anche se il valore di HasMoreData è $False. Per altre informazioni, vedere gli argomenti della Guida sul tipo di processo personalizzato.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Tipo:Boolean
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-Id

Specifica una matrice di ID di processi che ottiene questo cmdlet.

L'ID è un numero intero che identifica in modo univoco il processo nella sessione corrente. È più facile ricordare e digitare l'ID istanza, ma è univoco solo nella sessione corrente. È possibile digitare uno o più ID separati da virgole. Per trovare l'ID di un processo, digitare Get-Job senza parametri.

Tipo:Int32[]
Posizione:0
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-IncludeChildJob

Indica che questo cmdlet restituisce processi figlio, oltre ai processi padre.

Questo parametro è particolarmente utile per analizzare i processi del flusso di lavoro, per i quali Get-Job restituisce un processo padre del contenitore e gli errori del processo, perché il motivo dell'errore viene salvato in una proprietà del processo figlio.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-InstanceId

Specifica una matrice di ID istanza di processi che ottiene questo cmdlet. Il valore predefinito corrisponde a tutti i processi.

Un ID istanza è un GUID che identifica in modo univoco il processo nel computer. Per trovare l'ID istanza di un processo, usare Get-Job.

Tipo:Guid[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-Name

Specifica una matrice di nomi descrittivi dell'istanza dei processi che ottiene questo cmdlet. Immettere un nome di processo oppure usare caratteri jolly per immettere un modello di nome di processo. Per impostazione predefinita, Get-Job ottiene tutti i processi nella sessione corrente.

Tipo:String[]
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:True

-Newest

Specifica un numero di processi da ottenere. Questo cmdlet ottiene i processi terminati più di recente.

Il parametro Newest non ordina o restituisce i processi più recenti nell'ordine di fine. Per ordinare l'output, usare il Sort-Object cmdlet .

Questo parametro è stato introdotto in Windows PowerShell 3.0.

Tipo:Int32
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-State

Specifica uno stato del processo. Questo cmdlet ottiene solo i processi nello stato specificato. I valori validi per questo parametro sono:

  • NotStarted
  • In esecuzione
  • Completato
  • Non riuscito
  • Arrestato
  • Bloccati
  • Suspended
  • Disconnesso
  • Suspending
  • Arresto in corso

Per impostazione predefinita, Get-Job ottiene tutti i processi nella sessione corrente.

Per altre informazioni sugli stati dei processi, vedere Enumerazione JobState.

Tipo:JobState
Valori accettati:NotStarted, Running, Completed, Failed, Stopped, Blocked, Suspended, Disconnected, Suspending, Stopping, AtBreakpoint
Posizione:0
Valore predefinito:None
Necessario:True
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

System.Management.Automation.RemotingJob

Questo cmdlet restituisce oggetti che rappresentano i processi nella sessione.

Note

PowerShell include gli alias seguenti per Get-Job:

  • Tutte le piattaforme:
    • gjb

La proprietà PSJobTypeName dei processi indica il tipo di processo del processo. Il valore della proprietà è determinato dall'autore del tipo di processo. L'elenco seguente indica i tipi di processo più comuni.

  • BackgroundJob. Processo locale avviato tramite Start-Job.
  • RemoteJob. Processo avviato in una sessione PSSession usando il parametro AsJob del Invoke-Command cmdlet .
  • PSWorkflowJob. Processo avviato usando il parametro comune AsJob dei flussi di lavoro.