次の方法で共有


Wait-Process

より多くの入力を受け入れる前に、プロセスが停止するのを待ちます。

構文

Name (既定)

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

Id

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

InputObject

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

説明

Wait-Process コマンドレットは、入力を受け入れる前に、実行中の 1 つ以上のプロセスが停止するのを待機します。 PowerShell コンソールでは、このコマンドレットは、プロセスが停止するまでコマンド プロンプトを抑制します。 プロセス名またはプロセス ID (PID) でプロセスを指定したり、プロセス オブジェクトをパイプ処理して Wait-Processしたりできます。

Wait-Process は、ローカル コンピューターで実行されているプロセスでのみ機能します。

例 1: プロセスを停止して待機する

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

次の使用例は、メモ帳プロセスを停止し、プロセスが停止するのを待ってから、次のコマンドに進みます。

最初のコマンドでは、Get-Process コマンドレットを使用してメモ帳プロセスの ID を取得します。 ID は $nid 変数に格納されます。

2 番目のコマンドでは、Stop-Process コマンドレットを使用して、$nidに格納されている ID でプロセスを停止します。

3 番目のコマンドでは、Wait-Process を使用してメモ帳プロセスが停止するまで待機します。 Wait-Process パラメーターを使用してプロセスを識別します。

例 2: プロセスの指定

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

これらのコマンドは、Wait-Processするプロセスを指定する 3 つの異なる方法を示しています。 最初のコマンドはメモ帳プロセスを取得し、$p 変数に格納します。

2 番目のコマンドは Id パラメーターを使用し、3 番目のコマンドは Name パラメーターを使用し、4 番目のコマンドでは InputObject パラメーターを使用します。

これらのコマンドの結果は同じであり、同じ意味で使用できます。

例 3: 指定した時間プロセスを待機する

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

このコマンドは、Outlook と Winword のプロセスが停止するまで 30 秒待機します。 両方のプロセスが停止しない場合、コマンドレットは終了しないエラーとコマンド プロンプトを表示します。

パラメーター

-Id

プロセスのプロセス ID を指定します。 複数の ID を指定するには、コンマを使用して ID を区切ります。 プロセスの PID を見つけるには、「Get-Process」と入力します。

パラメーターのプロパティ

型:

Int32[]

規定値:None
ワイルドカードのサポート:False
DontShow:False
Aliases:PID, ProcessId

パラメーター セット

Id
配置:0
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-InputObject

プロセス オブジェクトを送信してプロセスを指定します。 プロセス オブジェクトを含む変数を入力するか、Get-Process コマンドレットなどのプロセス オブジェクトを取得するコマンドまたは式を入力します。

パラメーターのプロパティ

型:

Process[]

規定値:None
ワイルドカードのサポート:False
DontShow:False

パラメーター セット

InputObject
配置:Named
必須:True
パイプラインからの値:True
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

-Name

プロセスのプロセス名を指定します。 複数の名前を指定するには、コンマを使用して名前を区切ります。 ワイルドカード文字はサポートされていません。

パラメーターのプロパティ

型:

String[]

規定値:None
ワイルドカードのサポート:False
DontShow:False
Aliases:ProcessName

パラメーター セット

Name
配置:0
必須:True
パイプラインからの値:False
プロパティ名別のパイプラインからの値:True
残りの引数からの値:False

-Timeout

このコマンドレットが指定したプロセスの停止を待機する最大時間 (秒単位) を指定します。 この間隔が経過すると、実行中のプロセスの一覧を示す終了しないエラーが表示され、待機が終了します。 既定では、タイムアウトはありません。

パラメーターのプロパティ

型:Int32
規定値:None
ワイルドカードのサポート:False
DontShow:False
Aliases:TimeoutSec

パラメーター セット

(All)
配置:1
必須:False
パイプラインからの値:False
プロパティ名別のパイプラインからの値:False
残りの引数からの値:False

CommonParameters

このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。

入力

Process

このコマンドレットには、プロセス オブジェクトをパイプ処理できます。

出力

None

このコマンドレットは出力を返しません。

メモ

  • このコマンドレットでは、System.Diagnostics.Process クラスの WaitForExit メソッドを使用します。

  • Start-Process -Waitとは異なり、Wait-Process は特定されたプロセスのみを待機します。 Start-Process -Wait は、制御を返す前に、プロセス ツリー (プロセスとそのすべての子孫) が終了するのを待機します。