【Windows10/WindowsServer2019】タスクスケジューラの設定

毎回忘れるのでメモ。

1.タスクスケジューラの設定

タスクスケジューラ画面の起動方法は二つ。
1つ目はデスクトップ左下の検索アイコンから「タスクスケジューラ」を検索する。
2つ目はナビゲーションウィンドウのPCアイコンを右クリックし、「管理」を押下。

タスクスケジューラライブラリを右クリックし、「タスクの作成」を押下。

1.1 [全般]の設定

f:id:engetu21:20211228153647j:plain

名前は適当でもいい。が、作成した後に変更はできない。
変更する場合は、作成後にエクスポートを行い、それをインポートするときに名前を変える。
その後元々作成していたものは削除する形になる。

セキュリティオプションについて、サーバ運用の場合は
「ユーザーがログオンしているかどうかにかかわらず実行する」
を選択する。

1.2 [トリガー]の設定

f:id:engetu21:20211228150615j:plain
スケジュール指定で起動させる場合は「スケジュールに従う」を選択。
該当日時に一回だけ動かすこともできるし、特定の曜日、月の特定の日だけとかなり自由に設定できる。

マシン起動と同時に動かすプログラムがある場合は、「スタートアップ時」を選択する。

1.3 [操作]の設定

f:id:engetu21:20211228151913j:plain
動かすプログラムを指定する。

PythonがC直下にインストールされている場合、プログラムがprogram配下にある場合は以下のように設定。

プログラム/スクリプト:C:\Python\Python310\python.exe
引数の追加:test.py
開始 :C:\program\test_py_program

プログラム/スクリプトPythonのEXEファイルを指定する。
引数の追加は動かすPythonプログラムファイルだが、ここにパスは記述しない。
パスの記述は開始欄に設定する必要がある。(パスの最後に\は不要)

また、PowerShellで作成したps1ファイルの場合は、以下のように設定する。

プログラム/スクリプト:%Systemroot%\System32\WindowsPowerShell\v1.0\powershell.exe
引数の追加:-ExecutionPolicy Bypass .\test.ps1
開始 :C:\program\test_ps_program

基本的にはpythonの時と同じだが、注意すべきは引数の追加の部分。
「-ExecutionPolicy Bypass」で実行ポリシーを設定している。
Bypassは一番強い権限となるため、基本的にはこれを設定すれば、どのps1も動く(はず)。
恒久的に変更する場合については以下のコマンドをPowerShellで実行する。
> PowerShell Set-ExecutionPolicy Bypass

詳しくはこちら↓
qiita.com

1.4 [設定]の設定

※[条件]の設定は適宜設定で、特に触れることがないので飛ばします。

f:id:engetu21:20211228153432j:plain
[設定]も特に変更なくてもいけますが、サーバとして動かす場合は、「タスクを停止するまでの時間」のチェックは外しておいたほうがよいかと思われます。