【Windows 10/11】シャットダウンをタイマーで自動的に実行するにはTech TIPS(2/2 ページ)

» 2022年06月08日 05時00分 公開
前のページへ 1|2       

手順3――シャットダウンが確実に実行されるようにタスクの設定を修正する

 ここまでの手順で作成したタスクは、そのままだと特定の条件あるいは状況だとシャットダウンに失敗する恐れがある。そこでタスクの設定を変更する。

 まずは、作成したタスクのプロパティを開く。

作成したタスクのプロパティを開いて編集/修正する 作成したタスクのプロパティを開いて編集/修正する

 それには、真ん中のペインに表示されている対象のタスクをダブルクリックするか、選択してから右ペインの[プロパティ]をクリックする。

●バッテリ駆動中/スリープ中/休止状態でもシャットダウンできるようにする

 プロパティのダイアログが現れたら、まずは[条件]タブの設定を変更する。

バッテリ駆動時や、スリープ中/休止状態でもシャットダウンできるようにする バッテリ駆動時や、スリープ中/休止状態でもシャットダウンできるようにする

■操作手順

  1. 表示されたダイアログの[条件]タブを選択
  2. コンピューターをAC電源で使用している場合のみタスクを開始する]のチェックを外して「オフ」にする。これにより、バッテリ駆動中のノートPCでもシャットダウンされるようになる
  3. タスクを実行するためにスリープを解除する]にチェックを入れて「オン」にする。これにより、スリープ中あるいは休止状態でも、自動的に復帰した後にシャットダウンされるようになる

●タスク実行の失敗後、予期せぬ時にシャットダウンされないようにする

 次に、[設定]タブの設定内容を確認する(デフォルトのままなら設定変更は不要)。

タスク実行の失敗後、予期せぬ時にシャットダウンされないようにする タスク実行の失敗後、予期せぬ時にシャットダウンされないようにする

■操作手順

  1. 設定]タブを選択
  2. スケジュールされた時刻にタスクが開始できなかった場合、すぐにタスクを実行する][タスクが失敗した場合の再起動の間隔]のチェックが外れていて「オフ」であることを確認する。これにより、このシャットダウン用タスクの実行が失敗した後で、タスクが再実行されてしまい、予期せぬ時にシャットダウンが始まってしまうのを予防できる

●サインアウトしていてもシャットダウンが実行されるようにする

 最後に[全般]タブの設定を変更して[OK]ボタンをクリックする。

サインアウト(ログオフ)していてもシャットダウンが実行されるようにする サインアウト(ログオフ)していてもシャットダウンが実行されるようにする

■操作手順

  1. 全般]タブを開く
  2. ユーザーがログオンしているかどうかにかかわらず実行する]ラジオボタンを選択
  3. OK]ボタンをクリックすると、ユーザー認証のダイアログが表示されるはずだ
  4. ユーザー名」欄に表示されているユーザーアカウント(通常はタスク作成時にWindows OSにサインインしていたユーザー)に対応するパスワードを、「パスワード」欄に記入
  5. OK]ボタンをクリック

手順4――手動でタスクを実行してシャットダウンできることを確認する

■操作手順

  1. タスクスケジューラの真ん中のペインにある対象のタスクを右クリックし、[実行]をクリック
  2. すぐにタスクが起動して、冒頭のスクリーンショットのように「サインアウトしようとしています <shutdownコマンドのオプションで指定した説明>」というメッセージボックスが表示されることを確認
  3. 1分後、タイマーによってシャットダウンが実行されて、PCの電源がオフになることを確認

曜日によってシャットダウン時刻を変えたい

 シャットダウンの時刻が曜日ごとに異なる場合は、前述の「トリガー」を追加する。以下では、金曜日のみ17時にシャットダウンするように設定している。

タスクを起動するタイミング(トリガー)を増やす タスクを起動するタイミング(トリガー)を増やす
追加するトリガーの日時や曜日を指定する 追加するトリガーの日時や曜日を指定する
追加し終わって複数のトリガーが設定されたところ 追加し終わって複数のトリガーが設定されたところ

■操作手順

  1. 前述の手順で、シャットダウン用タスクの「プロパティ」ダイアログを開く
  2. トリガー]タブを選択
  3. 左下にある[新規]ボタンをクリック
  4. 新しいトリガー」ダイアログで、「設定」欄の[毎週]を選ぶ
  5. 開始」欄で[シャットダウン]したい時刻を指定
  6. 「シャットダウンしたい曜日のみ、チェックを入れて「オン」にする。[OK]ボタンをクリック
  7. 既存のトリガーをダブルクリックして編集ダイアログを開き、追加したトリガーと重複しないように曜日の「オン」「オフ」を調整する。

 後は[OK]ボタンをクリックしていって、ユーザー認証が求められたら前述の手順でパスワードを記入して[OK]ボタンをクリックする。

トラブル対策――ユーザーアカウントのせいでタスクが実行されない!?

 以上のようにタスクを作成しても、タスクの実行に失敗して定時シャットダウンができないことがある。その原因の1つは、タスクを実行するユーザーアカウントに、そのための「権利」がない、というものだ。

 これを解消する方法の1つは、対象のユーザーアカウントを「一般ユーザー」から「管理者」に変えることだ。

 それができない(一般ユーザーのままシャットダウン用タスクを実行したい)場合は、「ローカルセキュリティポリシー」というツールで、対象のユーザーアカウントに「バッチジョブとしてログオン」の「権利」を与える必要がある。ただし、このツールはHomeエディションのWindows 10/11では起動できないので、Homeエディションの場合は管理者アカウントに変えるしかない。

 以下の作業そのものは、管理者アカウントで行う必要がある。

タスクを実行できるようにユーザーの「権利」を追加する(1/3) タスクを実行できるようにユーザーの「権利」を追加する(1/3)
検索で表示されない場合は、[Windows]+[R]キーを押して[ファイル名を指定して実行]ダイアログを開き、「名前」入力ボックスに「secpol.msc」と入力し、[Enter]キーを押す。
タスクを実行できるようにユーザーの「権利」を追加する(2/3) タスクを実行できるようにユーザーの「権利」を追加する(2/3)
タスクを実行できるようにユーザーの「権利」を追加する(3/3) タスクを実行できるようにユーザーの「権利」を追加する(3/3)

■操作手順

  1. 管理者アカウントでサインインする
  2. タスクバーの検索アイコンまたは検索ボックスをクリック
  3. 検索ボックスに「secp」と入力
  4. 見つかったアプリのうち、「ローカルセキュリティポリシー」をクリック
  5. ローカルセキュリティポリシー」が起動したら、左ペインで[ローカルポリシー]−[ユーザー権利の割り当て]を選択
  6. 右ペインで[バッチジョブとしてログオン]をダブルクリック
  7. バッチジョブとしてログオン」のプロパティが表示されたら、[ユーザー又はグループの追加]ボタンをクリック
  8. ユーザーまたはグループの選択」ダイアログが表示されたら、左下の[詳細設定]ボタンをクリック
  9. 大きな「ユーザーまたはグループの選択」ダイアログが表示されたら、右側の[検索]ボタンをクリック
  10. 下の「検索結果」に表示されたユーザー/グループ一覧から、タスク実行用のユーザーアカウントを選択
  11. OK]ボタンをクリックしていって各ダイアログを閉じる。「ローカルセキュリティポリシー」も閉じる

 管理やセキュリティの観点では、タスク実行専用のユーザーアカウントを用意し、上記のように必要な権利を与えつつ、余計な権限を与えない方が望ましい。ローカルユーザーアカウントを作成する手順については、以下のTech TIPSを参照していただきたい。

 ところでWindows Serverの場合、シャットダウンを実行するアカウントは、デフォルトでAdministrators(あるいはBackup Operatorsなどの)グループに所属している必要がある。タスクを実行するユーザーアカウントを変更するには、タスクのプロパティの[全般]タブで、「タスクの実行時に使うユーザーアカウント」欄の[ユーザーまたはグループの変更]ボタンをクリックすればよい。

 管理者または必要な権利を与えてもタスク実行に失敗する場合は、タスクのプロパティの[全般]タブにある[最上位の特権で実行する]にチェックを入れて「オン」にして、再試行してみるとよい。

shutdownコマンドのオプションについて

 本Tech TIPSでシャットダウンに利用しているのは、Windows OS標準装備の「shutdown」コマンド(shutdown.exe)である。

 前述のタスク作成時に指定しているshutdownコマンドのオプションの意味は、以下の通りだ。

オプション 意味
/s シャットダウン
/t 60 タイマーを60秒後にセットして、シャットダウンを開始
/f プロセスの強制終了
/c "<説明>" このシャットダウンをイベントログに記録する際のコメント。「/t」オプションによって表示されるメッセージボックスにも、このコメントが表示される
指定しているshutdownコマンドのオプションとその意味

 シャットダウンではなく再起動を実行したい場合は、「引数の追加(オプション)」で「/s」オプションの代わりに「/r」オプションを指定する。

 また「/t 60」(タイムアウト)オプションによってシャットダウンを60秒間待っている(タイマーで60秒後に発動する)のは、スリープ中または休止状態からタスク起動によって回復した場合、各種サービスやネットワーク接続などが安定してからシャットダウンする方がよいからだ。不安定なままシャットダウンするとイベントログにエラーが記録されることがある。

 「/f」(強制実行)オプションは、何らかの理由で終了しないプロセスがある場合でもシャットダウンを強行するために指定している。例えば未保存のデータがある場合、「/f」オプションを指定しないと、アプリケーションが「保存するファイル名を入力してください」などの画面を表示したまま入力待ちでシャットダウンシーケンスが止まってしまう。

 シャットダウンできずに停電で電源がオフになると、プロセスの強制終了より多くのデータ喪失やシステム破壊が生じる可能性がある。そのため、「/f」オプションを外すのはお勧めできない。なお、「/t」オプションで有意なタイムアウト時間(1秒以上)を設定した場合、「/f」オプションを指定したのと同じくプロセスの強制終了が行われる。

 shutdownコマンドのオプションの詳細については、Tech TIPS「コマンドラインから電源オフや休止を実行する」を参照していただきたい。

 シャットダウンとは逆に、決まった時刻にPCを自動的に起動する方法については、Tech TIPS「コンピュータの電源を設定時刻に自動的にオンにする」が参考になるだろう。

■更新履歴

【2022/06/08】Windows 11に対応しました。ローカルセキュリティポリシーの設定変更時のスクリーンショットを追記しました。

【2017/11/27】画面などを更新しました。

【2015/09/18】Windows 8.xやWindows 10などの情報を反映しました。

【2011/03/18】初版公開。


「Tech TIPS」のインデックス

Tech TIPS

前のページへ 1|2       

Copyright© Digital Advantage Corp. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

4AI by @IT - AIを作り、動かし、守り、生かす
Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。