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 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 processo personalizzati, ad esempio processi del flusso di lavoro e istanze di processi pianificati. Per trovare il tipo di un processo, usare la relativa proprietà PSJobTypeName.

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 esiste un unico 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 comando NoteProperty al Get-Job 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 di 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 del processo che potrebbero non essere stati ancora 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 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 usando il Start-Job cmdlet è un processo in background e il processo avviato in una sessione remota tramite il Invoke-Command cmdlet è un processo remoto. Il quinto, sesto e settimo comando usa il cmdlet per creare una sessione PSSession connessa al computer S2, viene usata Invoke-Command per avviare un processo nel computer remoto usando PSSession New-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 è apparentemente 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 in 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 verificare 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. Usa il metodo del punto 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 indica che il valore della proprietà Reason del processo è vuoto.

Il terzo comando esamina di più. 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 viene 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 all'avvio di Windows PowerShell. Poiché i processi in background usano le funzionalità di comunicazione remota di Windows PowerShell, il computer deve essere configurato per la comunicazione remota per eseguire un processo, 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 i suggerimenti sulla 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

Questo esempio illustra 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 processo 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'utilizzo dei parametri IncludeChildJob e ChildJobState del Get-Job cmdlet.

Il primo comando ottiene i processi della sessione corrente. L'output include un processo in background, un processo remoto e diverse istanze di un processo pianificato. Il processo remoto, Job4, apparentemente non è riuscito. Il secondo comando usa il parametro IncludeChildJob di Get-Job. L'output aggiunge i processi figlio di tutti i processi figlio con processi figlio. In questo caso, l'output modificato mostra che solo il processo figlio Job5 di Job4 non è riuscito. Il terzo comando usa il parametro ChildJobState con un valore di 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 uno 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 processo personalizzati, ad esempio processi del flusso di lavoro e processi pianificati, che hanno una proprietà EndTime. Non funziona sui 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.

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

-Before

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

Questo parametro funziona solo su tipi di processo personalizzati, ad esempio processi del flusso di lavoro e processi pianificati, che hanno una proprietà EndTime. Non funziona sui 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.

Type:DateTime
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
  • Bloccato
  • Suspended
  • Disconnesso
  • Suspending
  • Stopping

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 effetto.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

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 modello di comando.

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

-Filter

Specifica una tabella hash di condizioni. Questo cmdlet ottiene 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 sui 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.

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

-HasMoreData

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

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

Quando si usa il cmdlet, elimina dall'archiviazione specifica della sessione i risultati restituiti dall'archivio Receive-Job specifico della sessione. 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. Usare 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 nuovamente 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.

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

-Id

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

L'ID è un intero che identifica in modo univoco il processo nella sessione corrente. È più semplice ricordare e digitare l'ID dell'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.

Type:Int32[]
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters: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 cui Get-Job restituisce un processo padre del contenitore e errori di processo, perché il motivo dell'errore viene salvato in una proprietà del processo figlio.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

Type:Guid[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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.

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

-Newest

Specifica un numero di processi da ottenere. Questo cmdlet ottiene i processi che hanno terminato più di recente.

Il parametro Newest non ordina né restituisce i processi più recenti nell'ordine in base all'ora di completamento. Per ordinare l'output, usare il Sort-Object cmdlet.

Questo parametro è stato introdotto in Windows PowerShell 3.0.

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

-State

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

  • NotStarted
  • In esecuzione
  • Completato
  • Non riuscito
  • Arrestato
  • Bloccato
  • Suspended
  • Disconnesso
  • Suspending
  • Stopping

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

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

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

Input

None

Non è possibile eseguire la pipe degli 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. 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 usando Start-Job.
  • RemoteJob. Processo avviato in una sessione PSSession usando il parametro AsJob del Invoke-Command cmdlet.
  • PSWorkflowJob. processo avviato con il parametro comune AsJob dei flussi di lavoro.