Windows PowerShell でのバックグラウンドジョブ ~ その3 リモートコンピュータでのバックグラウンドジョブ~

これまでの記事

では、ローカルコンピュータにおけるバックグラウンドジョブについて説明しました。

今回は

について説明します。


対話型セッションでのバックグラウンドジョブ

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

たったこれだけで、リモートコンピュータでもバックグラウンドジョブを実行することができます。


参考記事

リモート制御については、下記の記事を参照ください

  • Windows PowerShell によるリモート制御 ~その1 準備編~
  • Windows PowerShell によるリモート制御 ~その2 セッション編(基礎)~
  • Windows PowerShell によるリモート制御 ~その3 永続的なセッション編 ~
  • Windows PowerShell によるリモート制御 ~その4 複数セッションの作成と使用 ~
  • Windows PowerShell によるリモート制御 ~その5 ComputerNameパラメータを持つコマンドレット ~
  • コメント

    タイトルとURLをコピーしました