「毎日決まった時間に~」とか、「10分間隔で繰り返し~」などPythonプログラムを定期実行するために必要なタスクスケジューラの設定方法です
※大部分はPython関係なくタスクスケジューラの設定方法になっています
タスクスケジューラを起動する
起動方法はいくつかありますが、個人的に思うよく使われる方法です
- タスクバーにある「ここに入力して検索」で「タスク」まで入力(すると候補にいるはず)
- 「ファイル名を指定して実行」(Win+R)で「taskschd.msc」を実行
- ショートカットを「%windir%\system32\taskschd.msc /s」で作成
- 「スタートメニュー」 → 「Windows 管理ツール」 → 「タスク スケジューラ」
※よく使う人はショートカットを作るかタスクバーにピン留め推奨
タスクを作る
画面右側にそのままのメニュー名「タスクの作成…」があるのでクリック
※「基本タスクの作成…」がウィザード付きの初心者向けメニューですが、歯痒いところに手が届かないので個人的には非推奨・・・
全般 タブ
①名前
タスク スケジューラ ライブラリで表示される名前を自由に設定
②説明 ※省略可
タスクの説明を自由に
③ユーザー
現在のログオンユーザーと別のユーザーで設定するならここで買える
基本的にはデフォルトのまま(現在のログオンユーザー)でいいはず
④実行
ユーザーがログオンしている時のみ実行する
常時パソコンの電源が入っている場合 ※VPSの場合は基本これ
ユーザーがログオンしているかどうかに関わらず実行する
パソコンをスリープにしてタスク実行する時にスリープを解除したい場合
条件タブで「タスクを実行するためにスリープを解除する」のチェックをセットで
※これを選択した時は最後にログオンパスワードを求められる
「パスワードを保存しない」のチェック
基本的に使わないでいいはず
「ログオンしているかどうかにかかわらず~」を選んだ時、一部権限を制限される代わりにパスワード不要になる
⑤最上位の特権で実行する
基本的に使わないでいいはず
下記引用の通りMicrosoft公式では特権トークンが使用されるらしいけど必要になるシーンに出合ったことがない・・・
[最高の特権で実行する]チェックボックスをオンにすると、タスク スケジューラは、最低特権 (UAC) トークンではなく、昇格された特権トークンを使用してタスクを実行します。アクションを完了するために昇格された特権が必要なタスクのみを、昇格された特権で実行する必要があります。
https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc722152(v=ws.11)?redirectedfrom=MSDN
⑥表示しない
画面が非表示なるわけでもなく、チェック入れる必要なし
⑦構成
結論から言うとデフォルトのまま触らなくていい
OSと同じ構成を選びたくなるところですが、変えたところで特に変化なさそう
トリガー タブ
①設定
“毎日”の間隔1日がオーソドックスな設定になると思う
“毎週”を選ぶと曜日の指定、”毎月”を選ぶと日にち指定や第○週の○曜日など細かく選択できる
詳細設定
基本的に読んで字のごとく
②繰り返し間隔
プルダウンではなくコンボボックスなので実は手動で変更もできる
③継続時間
こちらもコンボボックスなので手動変更可能
きっと”1日”が正解になるケースが多いはず
④有効期限
基本的にチェックを付けないでいいはず
期間限定かつ手動で無効化などをしたくない時は事前設定できる
⑤有効
チェックを外す人はいないと思うけど念のため・・・
操作 タブ
①プログラム/スクリプト
“Python.exe”のフルパスを指定する
基本的にはどちらかのはず
- C:\Program Files\<Pythonのバージョンフォルダ>\python.exe
- C:\Users\<ユーザー名>\AppData\Local\Programs\Python\<Pythonのバージョンフォルダ>\python.exe
②引数の追加
実行したいPythonファイル(「○○.py」)を指定
③開始(オプション)
“②引数の追加”で指定したPythonファイルが保存されているフォルダを指定
条件 タブ
このタブは基本的に触る必要は無いはず
“ローカルPCで1日1回するタスクをスリープを解除して実行したい”時に①のチェックを入れるぐらい
設定 タブ
このタブも基本的に触る必要は無いはず
短い時間で繰り返し実行するタスクの場合は「タスクが既に実行中の場合に適用される規則」を希望の動作へ変更
あとがき
Pythonを~と言いつつ、関係あるのは”操作タブ”だけでした
Python以外でタスクを作る時も当然同じ方法なので参考にしてください
コメント