トリガーはログイン時、アクションはPowerShellスクリプト
前回はWindowsに備わる「タスクスケジューラ」という機能を紹介すると共に、「タスク」という概念がどのような情報で構成されているかを説明した。ウィザードを使えばタスクを追加するのは簡単だが、今回はあえて使わずにタスクを作成し、動作を確認してみよう。
まず、すごくシンプルなPowerShellスクリプトを作成する。今回は、次のようにメモ帳を起動するだけのPowerShellスクリプトを用意した。このスクリプトのファイル名は「runcmd.ps1」としておく。
& notepad
このruncmd.ps1を実行するのが「アクション」だ。
トリガーとしてはユーザーがサインイン(ログオン)したときに実行されるというものにしておく。トリガーとして何を設定しても良いのだが、サインアウトしてサインインすれば実行されるので、便利なのだ。ほかのプログラムも動作していないので、余計な影響を避けることができ、いろいろ試してみるには都合が良い。
「操作」→「タスクの作成」
それではタスクを作成しよう。タスクスケジューラを起動し、「操作」→「タスクの作成」を選択して、タスクの作成ダイアログを立ち上げる。
まず、タスクに名前を受ける。わかりやすい名前を付けておくとよい。セキュリティオプションを変更しても良いが、まずはそのままデフォルトで作成する。
「トリガー」タブを選択し、「新規」を選択してトリガーを作成する。
最初はタスクの開始条件が「スケジュールに従う」になっていると思うので、これを「ログオン時」に変更する。
詳細設定を編集してもよい。動作を確認したいだけなので、デフォルトのままでもよいと思う。「OK」を選択してトリガーを保存する。
次に「操作」タブを選択し、「新規」を押して操作(アクション)の追加を行う。
作成するタスクを次のように編集する。なお、ここでは作成したruncmd.ps1が「C:\Users\daichi\runcmd.ps1」であることを前提としている。
項目 | 内容 |
---|---|
操作 | プログラムの開始 |
プログラム/スクリプト | "C:\Program Files\PowerShell\7\pwsh.exe" |
引数の追加 | Command "C:\Users\daichi\runcmd.ps1" |
開始 | C:\Users\daichi |
PowerShellスクリプトをアクション(操作)として追加する際のポイントは、プログラム/スクリプトにPowerShellそのものを指定し、引数に作成したスクリプトのパスを指定する点にある。「開始」に指定してあるパスは最初にプログラムが実行される場所だと思っておけば良いだろう。作成したら「OK」を押して次へ進む。
条件タブと設定タブでタスク開始時の条件やタスクが失敗したときの動作などを指定する。最初はここはデフォルトのままにしておいてよい。実際に使い出してみて、不具合が発生したらこの部分を編集していく。
ここまで作業したら「OK」を押してタスクを保存だ。次のようにタスクマネージャに作成したタスクが追加されていることを確認する。
次に動作を確認してみよう。
作成したタスクの動作を確認
作成したタスクのトリガーは「ログオン」なので、ここで一旦ログアウトして、再度サインイン(ログオン)する。次のようにメモ帳が自動的に起動してくれば、作成したタスクの動作確認は完了だ。
今回はログオンをトリガーとして使ったが、時間をトリガーにして動作させることもできる。つまり、ユーザーが意識していないところで自動的に仕事をさせることもできるのだ。
LinuxやUNIX系のOSでは、「cronでシェルスクリプトを自動的に動かす」といった処理をすることがあるが、タスクスケジューラを使えば同じようなことができる。特にサーバでは便利な機能なのだが、もちろんデスクトップで使っていても何かと使える機能だ。
効率良く手を抜いていくためにも、タスクスケジューラの活用はぜひともマスターしたい。自動的にスクリプトを走らせることで、さまざまな“手抜き”が可能になる。