はじめに
PowerShell 1.0では、バックグラウンドでのジョブ実行ができなかったため、1つのコマンドが完了するまで次のコマンドの実行をすることができませんでした。PowerShell 2.0からは簡単にバックグラウンドでジョブを実行する機能が搭載されています。今回は、このバックグラウンドジョブに焦点を当てて解説します。
対象読者
- PowerShellの基本的な操作ができる方。
PowerShellについて学びたい方は、PowerShell入門の連載を参照ください。
必要条件
バックグラウンドジョブを実行するにはPowerShellがリモート処理用に構成されている必要があります。リモート処理用に構成する方法については前回の記事で解説していますので、そちらを参照してください。
ローカルコンピューターでバックグラウンドジョブを実行する方法
ローカルコンピューターでバックグラウンドジョブを実行するには、Start-Jobコマンドレットを使用します。このコマンドレットはPowerShell 2.0で新しく追加されたものです。
Start-Jobコマンドレットの基本構文は次の通りです。
Start-Job -ScriptBlock {バックグラウンドで実行するコマンド}
リスト1は、Get-ChildItemコマンドレットを「C:\Work」というフォルダに対して実行する例です。
Start-Job -ScriptBlock {Get-ChildItem C:\Work}
このコマンドを実行すると、すぐにプロンプトに戻り、図1のようにジョブの実行状況が表示されます。
Idは実行したジョブに付けられるユニークな番号を示します。またStateはジョブの実行状況を表し、「Running」となっている場合は、現在そのジョブがバックグラウンドで実行中であることを示します。