タスクスケジューラ入門

windowsのタスクスケジューラを用いてタスクの登録を行ってみたいと思います。

## タスクスケジューラを開く

スタートメニューの『Windows 管理ツール』の中にタスクスケジューラがあります。
![tasuku.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/aa42beda-932c-513a-54a5-be40c9253486.png)

または、タスクバーの検索窓で『タスク』等と入力すると候補に出てきます。

タスクスケジューラが表示されました。
![tasuku2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/0793ffe2-fba0-ccd3-2063-bf53a5413d18.png)


## タスクを作成する

『操作』メニューから『タスクの作成』を選択
![tasuku3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/a90e5f06-299e-d512-c478-c4e47b5b72f0.png)

### 『全般』タブ
![tasuku4.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/ff1f8463-10b2-e6ef-02bf-9e0e14efd349.png)
基本的な情報を入力します。
まずは名前を入力しましょう。その他必要に応じて各種設定を行ってください。

### 『トリガー』タブ
タスクを実行するトリガーを設定します。
![tasuku5.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/13ad74de-5c0f-b544-3060-415563ed8de8.png)
画面下部の『新規』を押下。

『タスクの開始』で開始の条件を設定します。
![tasuku6.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/abfac78d-7914-18bd-b9db-fc4b90a78385.png)
今回は『毎週月曜日の11:00に実行』し、詳細設定は指定なしで設定したいと思います。

![tasuku7.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/ea1a7d84-0159-df7c-364e-74c047438968.png)

トリガーが作成されました。
複数トリガーを登録したり、登録済みのタスクの編集、削除もこちらの画面で行うことができます。
![tasuku8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/8a6a171c-29e9-fc74-b8ab-0fba6a4b643c.png)

### 操作タブ
タスク実行時の操作を登録します。
![tasuku9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/c40a4ae4-b245-fecc-5d2e-d4186d1153c0.png)

操作は『プログラムの開始』の他に『電子メールの送信』『メッセージの表示』がありますが、非推奨となっています。
今回はテスト用のバッチファイルを実行するように設定します。
『プログラム/スクリプト』欄に実行するプログラムのパスを指定します。
![tasuku10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/9bfdebe0-025a-8a4b-9480-c0ff35e8e668.png)

操作が登録されました。こちらの画面で操作の追加、編集、削除が行えます。
![tasuku11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/a71c081a-1442-5879-3202-8b9ecda5c932.png)

### 条件タブ
トリガーに加えて、詳細な実行条件が設定できます。今回はデフォルトのままにします。
![tasuku12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/4fefec63-532d-5e7a-2731-f0730fb02730.png)

### 設定タブ
その他詳細な設定が行えます。こちらも今回はデフォルトのままにします。
![tasuku13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/144b977b-5d6b-a1ef-6290-743d8fa55c63.png)


最後に『OK』を押下し、登録完了。

タスクが登録されました。
![tasuku14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/b2165762-982c-56ef-baef-179763dd9a56.png)

登録したタスクの上で右クリックメニューを開くと各種操作ができます。
![tasuku15.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1905379/44768a2e-6edc-05a1-9bd1-0aef094f342d.png)
操作の実行や終了、タスクの無効化/有効化、プロパティから編集や、削除ができます。

### エクスポート/インポートについて
タスクの右クリックメニューから選択できる『エクスポート』を選択すると、xmlファイルが出力されます。
タスクの移行や編集に使えるかと思います。

xmlファイルは下記のようになっています。
```xml
<?xml version="1.0" encoding="UTF-16"?>
<Task version="1.2" xmlns="http://schemas.microsoft.com/windows/2004/02/mit/task">
  <RegistrationInfo>
    <Date>2023-04-19T05:09:16.5973362</Date>
    <Author>author-name</Author>
    <Description>タスク作成学習用のタスクです。</Description>
    <URI>\Test Task</URI>
  </RegistrationInfo>
  <Triggers>
    <CalendarTrigger>
      <StartBoundary>2023-04-19T11:00:00</StartBoundary>
      <Enabled>true</Enabled>
      <ScheduleByWeek>
        <DaysOfWeek>
          <Monday />
        </DaysOfWeek>
        <WeeksInterval>1</WeeksInterval>
      </ScheduleByWeek>
    </CalendarTrigger>
  </Triggers>
  <Principals>
    <Principal id="Author">
      <UserId>user-id</UserId>
      <LogonType>InteractiveToken</LogonType>
      <RunLevel>LeastPrivilege</RunLevel>
    </Principal>
  </Principals>
  <Settings>
    <MultipleInstancesPolicy>IgnoreNew</MultipleInstancesPolicy>
    <DisallowStartIfOnBatteries>true</DisallowStartIfOnBatteries>
    <StopIfGoingOnBatteries>true</StopIfGoingOnBatteries>
    <AllowHardTerminate>true</AllowHardTerminate>
    <StartWhenAvailable>false</StartWhenAvailable>
    <RunOnlyIfNetworkAvailable>false</RunOnlyIfNetworkAvailable>
    <IdleSettings>
      <StopOnIdleEnd>true</StopOnIdleEnd>
      <RestartOnIdle>false</RestartOnIdle>
    </IdleSettings>
    <AllowStartOnDemand>true</AllowStartOnDemand>
    <Enabled>true</Enabled>
    <Hidden>false</Hidden>
    <RunOnlyIfIdle>false</RunOnlyIfIdle>
    <WakeToRun>false</WakeToRun>
    <ExecutionTimeLimit>PT72H</ExecutionTimeLimit>
    <Priority>7</Priority>
  </Settings>
  <Actions Context="Author">
    <Exec>
      <Command>C:\[path]\test.bat</Command>
    </Exec>
  </Actions>
</Task>
```

インポートする際はタスク一覧の空欄で右クリックメニューを開くか、上部『操作』メニューから『タスクのインポート』で行えます。