Condividi tramite


Wait-Process

Attende che i processi vengano arrestati prima di accettare più input.

Sintassi

Name (Impostazione predefinita)

Wait-Process
    [-Name] <String[]>
    [[-Timeout] <Int32>]
    [<CommonParameters>]

Id

Wait-Process
    [-Id] <Int32[]>
    [[-Timeout] <Int32>]
    [<CommonParameters>]

InputObject

Wait-Process
    [[-Timeout] <Int32>]
    -InputObject <Process[]>
    [<CommonParameters>]

Descrizione

Il Wait-Process cmdlet attende che uno o più processi in esecuzione vengano arrestati prima di accettare l'input. Nella console di PowerShell questo cmdlet elimina il prompt dei comandi fino a quando i processi non vengono arrestati. È possibile specificare un processo in base al nome del processo o all'ID processo (PID) o inviare tramite pipe un oggetto processo a Wait-Process.

Wait-Process funziona solo sui processi in esecuzione nel computer locale.

Esempio

Esempio 1: Arrestare un processo e attendere

PS C:\> $nid = (Get-Process notepad).Id
PS C:\> Stop-Process -Id $nid
PS C:\> Wait-Process -Id $nid

In questo esempio viene arrestato il processo Blocco note e quindi viene attendibile l'arresto del processo prima di continuare con il comando successivo.

Il primo comando usa il Get-Process cmdlet per ottenere l'ID del processo del Blocco note. Archivia l'ID nella $nid variabile .

Il secondo comando usa il Stop-Process cmdlet per arrestare il processo con l'ID archiviato in $nid.

Il terzo comando usa Wait-Process per attendere che il processo del Blocco note venga arrestato. Usa il parametro Id di Wait-Process per identificare il processo.

Esempio 2: Specifica di un processo

PS C:\> $p = Get-Process notepad
PS C:\> Wait-Process -Id $p.Id
PS C:\> Wait-Process -Name "notepad"
PS C:\> Wait-Process -InputObject $p

Questi comandi mostrano tre metodi diversi per specificare un processo per Wait-Process. Il primo comando ottiene il processo del Blocco note e lo archivia nella $p variabile .

Il secondo comando utilizza il parametro Id , il terzo il parametro Name e il quarto il parametro InputObject .

Questi comandi hanno gli stessi risultati e possono essere utilizzati in modo intercambiabile.

Esempio 3: Attendere i processi per un tempo specificato

PS C:\> Wait-Process -Name outlook, winword -Timeout 30

Questo comando attende 30 secondi per l'arresto dei processi di Outlook e Winword. Se entrambi i processi non vengono arrestati, il cmdlet visualizza un errore non fatale e il prompt dei comandi.

Parametri

-Id

Specifica gli ID dei processi. Per specificare più ID, usare le virgole per separare gli ID. Per trovare il PID di un processo, digitare Get-Process.

Proprietà dei parametri

Tipo:

Int32[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:PID, ProcessId

Set di parametri

Id
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-InputObject

Specifica i processi inviando gli oggetti processo. Immettere una variabile contenente gli oggetti processo oppure digitare un comando o un'espressione che ottiene gli oggetti processo, ad esempio il Get-Process cmdlet .

Proprietà dei parametri

Tipo:

Process[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False

Set di parametri

InputObject
Posizione:Named
Obbligatorio:True
Valore dalla pipeline:True
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

-Name

Specifica i nomi dei processi. Per specificare più nomi, utilizzare le virgole per separarli. I caratteri jolly non sono supportati.

Proprietà dei parametri

Tipo:

String[]

Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:ProcessName

Set di parametri

Name
Posizione:0
Obbligatorio:True
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:True
Valore dagli argomenti rimanenti:False

-Timeout

Specifica il tempo massimo, in secondi, di attesa del cmdlet per l'arresto dei processi specificati. Alla scadenza di questo intervallo, il comando visualizza un errore non fatale che elenca i processi ancora in esecuzione e termina l'attesa. Per impostazione predefinita, non è previsto alcun timeout.

Proprietà dei parametri

Tipo:Int32
Valore predefinito:None
Supporta i caratteri jolly:False
DontShow:False
Alias:TimeoutSec

Set di parametri

(All)
Posizione:1
Obbligatorio:False
Valore dalla pipeline:False
Valore dalla pipeline in base al nome della proprietà:False
Valore dagli argomenti rimanenti:False

CommonParameters

Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.

Input

Process

È possibile inviare tramite pipe un oggetto processo a questo cmdlet.

Output

None

Questo cmdlet non restituisce alcun output.

Note

  • Questo cmdlet usa il metodo WaitForExit della classe System.Diagnostics.Process .

  • A differenza di Start-Process -Wait, Wait-Process attende solo i processi identificati. Start-Process -Wait attende che l'albero del processo (il processo e tutti i relativi discendenti) venga chiuso prima di restituire il controllo.