Powershell で簡単なバックグラウンド ジョブを作成します。
Start-Job {"Hello"}
Get-Job で確認します。
Id Name State HasMoreData Location Command
-- ---- ----- ----------- -------- -------
1 Job1 Completed True localhost "Hello"
次に、単純に出力を受け取り、Get-Job を再度実行します。
Receive-Job 1
Get-Job
パラメーターを指定しなかったため、"HasMoreData" が false になっていることがわかり-keepます。
Start-Jobただし、またはを使用せずにジョブを開始するたびにInvoke-Command、この「HasMoreData」パラメーターがFalseに変更されないようです。
例:
Get-WMIObject win32_bios -AsJob
Test-Connection . -AsJob
指定しない限り、プロパティ HasMoreData が False に切り替わるように、この (間違った) 動作をバイパスできます-keepか?
ありがとう!
更新-AsJob:パラメーターを使用して行われたすべての呼び出しのようです。あなたが実行する場合
Start-Job {Test-Connection .}
それは機能します(「HasMoreData」は後にFalseになりますReceive-Job)が、
Test-Connection . -AsJob
ではない。