7

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

ではない。

4

2 に答える 2