PR

Windows11でタスクスケジューラで自動実行をしたいと思ったときにWindows7と違い面を食らった話

インフラ技術

Pythonでいろいろと実行環境をしていっている中で、ある程度コードが完成したので、自動実行させたいなと思うことはよくあると思います。

いざ、Windows7とか、WindowsServer2008、WindowsServer2012で設定していた時はチャチャっと設定できたので、その感覚で設定しようとしたところ意外と詰まったので備忘用に残しておこうと思いました。

ちなみに、どんなことをしようとしていたのかは以下の記事を参照

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

まず、起動の方法ですが、「Windowsボタン」→「タスクスケジューラ」→クリックという感じですね。

タスクスケジューラが開いたら、実際に動作させたいものを登録しましょう。

タスクの登録画面で、操作タブを選択して、実行したいスクリプトなどを登録しましょう。

タスクスケジューラとして必要となる設定は以下です。

・全般
・トリガー
・操作
・条件

それぞれどんな設定があるか見てみましょう。

全般

名前:タスク自動実行

「最上位の特権で実行する」にチェック

「ユーザーがログオンしているかどうかにかかわらず実行する」を選択

「構成対象」:Windows 10

イメージ画像

トリガー

「新規」をクリックしてスケジュールを設定

(例:毎日10:00に実行)

イメージ画像

操作

操作で、何を実行させたいのかを設定するのですが、ここは一工夫が必要です。

例えば、pythonで作成したコードを実行させる場合、そのコード自体を指定してしまうと、実行できないということになります。

イメージ画像

①に

C:\Users\<ユーザー名>\AppData\Local\Programs\Python\Python312\python.exe

のように、コードを実行するプログラムを指定

②に

C:\script\auto_run.py

などの実行するコードを指定します。

条件

コンピュータを AC 電源で使用している場合のみタスクを開始するのチェックをはずす

イメージ画像

別のユーザで実行する場合

自宅パソコンは自分しか使用しないため、パスワード設定をしていません。

ただ、タスクスケジューラで実行するには、パスワードが設定されているユーザで登録する必要があるため、別のユーザで実行させようと思いました。

で、実際にユーザ設定しようとしたら面倒だったので、手順まとめておきました。

で、こんな感じでタスクスケジューラにユーザとパスワードを設定して完了ですね。

テスト実行

こんな感じで、設定したタスクを右クリックして、実行してみると、即実行となるので、テスト実行できます。

結果、こんな感じになれば成功です。

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