これまでの記事
- Windows PowerShell でのバックグラウンドジョブ ~ その1 ローカルコンピュータでのバックグラウンドジョブ~
- Windows PowerShell でのバックグラウンドジョブ ~ その2 ジョブ完了の待機とジョブの停止~
では、ローカルコンピュータにおけるバックグラウンドジョブについて説明しました。
今回は
について説明します。
対話型セッションでのバックグラウンドジョブ
PowerShellにおける対話型セッションでも、バックグラウンドジョブを実行することができます。
対話型セッションの方法については、Windows PowerShell によるリモート制御 ~その1 準備編~ を参照ください。
まずは、リモートコンピュータ(ここでは例として MyServ01 とします)に対話型接続をします。
PS> Enter-PSSesion MyServ01 [MyServ01]: PS C:\Work>
あとは、Start-Jobコマンドレットを使用すれば、対話型セッションの中でもローカルコンピュータ同様にバックグラウンドジョブを実行できます。
[MyServ01]: PS C:\Work> $job = Start-Job -ScriptBlock { Get-Service }
Start-Jobコマンドレットの使用方法については
Windows PowerShell でのバックグラウンドジョブ ~ その1 ローカルコンピュータでのバックグラウンドジョブ~
を参照ください。
永続的なセッションでのバックグラウンドジョブ
今度は、対話型セッションではなく、永続的なセッションでのバックグラウンドジョブについてです。
永続的なセッションについては、Windows PowerShell によるリモート制御 ~その3 永続的なセッション編 ~ を参照ください。
まずは、New-PSSessionコマンドレットでリモートコンピュータへのセッションを作成します。
PS >$sess = New-PSSession -ComputerName MyServ01
作成したセッションを使用してバックグラウンドジョブを実行するにはInvoke-Commandコマンドレットと-AsJobパラメータを使用します。
PS C:\Work>Invoke-Command -Session $sess -ScriptBlock { Get-Service } -AsJob Id Name State HasMoreData Location Command -- ---- ----- ----------- -------- ------- 1 Job1 Running True htaka2 Get-Service
たったこれだけで、リモートコンピュータでもバックグラウンドジョブを実行することができます。
参考記事
リモート制御については、下記の記事を参照ください
コメント