2013-07-30 27 views
8

PowerShellのStart-JobStart-Processの違いについて少し混乱します。私はStart-Jobがバックグラウンドで実行されることを知っていますが、よりもStart-Jobと異なる動作をしているのか、それ以外のものを使用しているのかどうかは疑問です。いつ他のものを使い分けるべきですか、どちらが他のものより優れているのでしょうか?Powershell 'Start-Job`と' Start-Process '

答えて

14

スタート-仕事は、バックグラウンドジョブを開始し、監視するために使用するジョブオブジェクトを作成し、クエリ、およびコマンドレットのGet-仕事を使用してジョブと対話し、が受信-仕事待ち、ジョブを,Stop-JobおよびRemove-JobReceive-Jobを使用してジョブオブジェクトをクエリするまで、対話型のウィンドウまたはコンソール出力は表示されません。これは、バックグラウンドジョブとは、実行されるがログオンセッションとやり取りしないことを意味します。ただし、出力があればジョブオブジェクトによって収集され、Receive-Jobで取得できます。受け取るデータがあるかどうかは、ジョブオブジェクトのプロパティのHasMoreDataをチェックして確認できますが、注意してください。これはPowerShell 2のバグです。これは覚えていますか? "HasMoreData" is true even after Receive-Job

開始プロセスは、対話形式で実行されるプロセスを起動します。

+0

重要事項**ジョブはあなたのセッションにとってローカルです**一つのpowershellセッションでは 'Start-Job'を、もう一つのセッションでは' Receive-Job'を実行することはできません。 –

関連する問題