【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

バッチファイルをタスクスケジューラから自動起動する

Windows でバッチファイルを利用して業務効率化を推進している方は多いと思います。本記事ではバッチファイルをタスクタスクスケジューラから起動することで業務を自動化する方法を紹介します。

タスクスケジューラ

タスクスケジューラは Windows 10 に標準でインストールされている管理ツールで、Windows 10 搭載 PC内にインストールされているプログラムや、ユーザーが作成したバッチファイルを時刻を指定して定期的に自動実行することが簡単にできます。

タスクスケジューラの起動方法

タスクスケジューラは Windows メニューから

Windows 管理ツール > タスクスケジューラ

【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

を選ぶと次のようにタスクスケジューラが起動されるので、この画面で定期実行をしたいバッチファイルの[全般]、[トリガー]、[操作]に関連したパラメータを登録していきます。

 

【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

 

ユーザー用タスクスケジューラの保存フォルダの追加

初めてののタスク登録のときにはWindows 自身が定義しているタスクと自分が作成するタスクとを区別するために、左の [タスクスケジューラライブラリ] の上で右クリックしてコンテキストメニューを表示し

【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

 

[新しいフォルダー(N)] を選び、新しいフォルダ名の入力画面で名前(N)を [MyOwnTask] のように入力後[OK]を押して、これをユーザー定義のタスクを保存するフォルダとして新規に作成します。

 

【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

 

タブの設定[全般]

次にいま作成した [MyOwnTask]フォルダ をクリック選択した状態で画面一番右側のメニューから [タスクの作成] を選択すると [タスクの作成] 画面が現れますので、その[全般]タブの中で

 

【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

 

以下の入力値を記入、チェック、選択します。

 

入力項目 入力値
名前(M) 自分の定義したいタスクの名前を入力します
〇ユーザーがログインしているかにかかわらず実行する(W) 項目の前の〇にチェックを入れます
表示しない(E) 項目の前の□にチェックを入れます
構成(C) [Windows 10] を選択します

    タブの設定[トリガー]

    次に[トリガー]タブを選択し[新規]ボタンを押すと次のような画面が現れますので

     

    【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

     

    タスクの開始条件にかかわる以下の入力値を記入、チェック、選択してから最後に[OK]を押します。

    入力項目 入力値
    タスクの開始(G) [スケジュールに従う](デフォルト値)を選択する。

    設定

    毎週(W)の前の◎にチェックし、□月曜日(A)、□火曜日(T)、□水曜日(Y)、□木曜日(H)、□金曜日(F)の前の□にチェックを入れます。これは毎週の実稼働日の開始(S)で指定した時間にタスクを起動するという意味です。

    開始(S)

    指定タスクの開始(S)日をカレンダで指定します。また時間でこのタスクを実行する時間を指定します。

    □有効(B) 項目前の□にチェックを入れると、ここで指定した起動スケジュールが有効になります。反対に何かの理由でこのタスクを起動したくないときに、チェックを外しておきます。

      タブの設定[操作]

      最後に[操作]タブを選択してから[新規(N)]ボタンを押すと次の画面となるので

       

      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

       

      [参照(R)]ボタンを押し起動したいバッチファイル等を選択し

       

      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

       

      次のような入力値を記入、チェックし最後に[OK]ボタンを押します。

       

      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

       

      入力項目 入力値
      プログラム/スクリプト(P) [参照(R)]ボタンを押しタスクとして登録したいプログラム、スクリプトを選択します(注1)

      引数の追加(オプション)(A) プログラム、スクリプトの保存されているフォルダ名の絶対パス名を記入します(注1)


      (注1) この例のパラメータ入力値は
      で紹介したバッチファイルの起動を前提としています。

      タブの設定値確認

      ここまでの入力設定値を確認する方法は以下の通りです。

      [全般]タブを押すと以下のように設定値を確認できます。

       

      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

       

      [トリガー]タブを押すと以下のように設定値を確認できます。

       

      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

       

      [操作]タブを押すと以下のように設定値を確認できます。

       

      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

       

      ここまで確認して[OK]ボタンを押すと、下記の画面が現れ、タスクを実行するアカウント名、パスワードを入力し、最後に[OK]ボタンを押すとタスク定義の設定は終了です。

       

      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

       

      ローカルで使用していた Windows 10 搭載 PCを Active Directory 配下で再利用する等、1つのPCをローカルPC用のユーザーアカウントと、Active Directory配下のドメイン名付ユーザーアカウントで利用しているようなケースもあるかと思います。

      このときローカルPC用のユーザーアカウントで作成したバッチファイルをドメイン名付ユーザーアカウント配下で定期起動したいようなケースでは、ここで入力する

      • ユーザー名(U)
      • パスワード(P)

      がバッチファイル作成時のローカルPC用のユーザーアカウントと違っていると実行権限、環境変数の展開が期待どうり動作しません。

      この場合は、

      • これらにローカルPC用のユーザーアカウントの情報を入れる
      • ドメイン名付ユーザーアカウントでタスクを再度作り直す

      等の対応を試してみましょう。

      またローカルPCアカウントで作成したバッチファイルを Active Directory 配下のアカウントで起動したいときは、作成者名も Active Directory 配下のアカウント名でないとバッチファイルの起動ができないので、タスクのプロパティに対し「ユーザーまたはグループの選択」をする以下の画面から

      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

      ドメイン名を選択してから

      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

      アカウント名を入力する等して目的のドメイン名付アカウント名に変更しましょう。

      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

      定義タスクの試験実行

      定期起動するタスクがうまく動くか事前に確認しておきましょう。特に[操作]タブの設定値が正しく設定されていないとタスクは全く動きません。これを確認するためにはこのタスクスケジューラ右側の[実行]ボタンを押すと設定した内容に従ってタスクが実行されるので、実行結果、実行ログ等を確認してタスクとして定義したバッチファイル等が正しく起動されているかを確認します。

       

      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する

       

      (注2) この記事で例として使用している
      で紹介したバッチファイルの場合、以下のフォルダ  %USERPROFILE%\Tools_Data_Logs\bat 配下
      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する
      に以下のようなログ
      【Windows業務効率化】バッチファイルをタスクスケジューラから自動起動する
      を出力しているので、起動時間、結果をこのログから確認することができるようになっています。