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 cmdlet Wait-Process attende l'arresto di uno o più processi in esecuzione prima di accettare l'input. Nella console di Windows 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) oppure reindirizzare un oggetto processo a Wait-Process.

Wait-Process funziona solo nei 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 cmdlet Get-Process per ottenere l'ID del processo Blocco note. Memorizza l'ID nella variabile $nid.

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

Il terzo comando utilizza Wait-Process per attendere l'arresto del processo del Blocco note. Utilizza 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 diversi metodi per specificare un processo in Wait-Process. Il primo comando ottiene il processo Blocco note e lo memorizza nella variabile $p.

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 che contiene gli oggetti processo oppure digitare un comando o un'espressione che ottenga gli oggetti processo, ad esempio il cmdlet Get-Process.

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 genera alcun output.

Note

  • Questo cmdlet utilizza il metodo WaitForExit della classe System.Diagnostics.Process. Per ulteriori informazioni su questo metodo, vedere Microsoft .NET Framework SDK.