検索
連載

手間を省いて業務効率を最大化、PCの定時シャットダウンを自動化する方法Tech TIPS(2/2 ページ)

共用PCや各種メンテナンス、法令点検に伴う停電などにより、定期的(定時)にPCをシャットダウンあるいは再起動したい場合があるのではないだろうか。対象となるPCの台数が多いと、手動でシャットダウンするのは面倒だ。そこで、Windows標準のshutdownコマンドのタイマー機能とタスクスケジューラを使ってシャットダウンや再起動を自動化する方法を紹介しよう。

Share
Tweet
LINE
Hatena
前のページへ |       

手順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]ボタンをクリックする。

シャットダウンをキャンセルするには

 shutdownコマンドに「/t <秒数>」オプションを指定して実行した場合、<秒数>が過ぎてシャットダウンが実際に始まる前に、「/a」オプションを指定してshutdownコマンドを実行すると、シャットダウンをキャンセルできる。

shutdown /a



 上記コマンドラインの実行後、「ログオフはキャンセルされました」といった通知またはメッセージが表示されるとともに、シャットダウンはキャンセルされる。

 例えばテストのために手動でシャットダウンのタスクを実行した場合、「/t」オプションで指定した秒数に達する前にコマンドプロンプトから上記のコマンドラインを手動で実行すると、シャットダウンをキャンセルできる。

一時的にシャットダウンのタスクを止めるには

 予定変更などの理由から、シャットダウンのタスクを一時的に停止したいこともあるだろう。その場合は、タスクスケジューラでシャットダウンのタスクを右クリックして表示されるメニューで[無効]を選ぶ。これで、起動時刻になってもタスクは起動されない。

 再度、タスクを定期実行させるには、同じく右クリックメニューで[有効]を選べばよい。

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

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

●対策その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を参照していただきたい。

●対策その2――タスク実行アカウントを「管理者」に変える

 環境によっては、一般ユーザーではシャットダウンできない場合がある。

 例えばWindows Serverの場合、シャットダウンを実行するアカウントは、デフォルトでAdministrators(あるいはBackup Operatorsなどの)グループに所属している必要がある。

 Windows 10/11でも、企業内システムでグループポリシーなどが設定されていたりEDR/XDRなどでクライアントPCが厳密に管理されていたりする場合、管理者にしかシャットダウンできないことがある。

 どうしても一般ユーザーではシャットダウンに成功しない場合は、管理者のアカウントに変えてみよう。タスクを実行するユーザーアカウントを変更するには、タスクのプロパティの[全般]タブで、「タスクの実行時に使うユーザーアカウント」欄の[ユーザーまたはグループの変更]ボタンをクリックすればよい。

●対策その3――タスクを「最上位の権限で実行する」

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

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

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

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

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

●「/f」オプションを指定すべきかどうかはPCの運用方針に依存する

 「/f」(強制実行)オプションは、何らかの理由で終了しないプロセスがある場合でもシャットダウンを強行するために指定している。

 例えば未保存のデータがある場合、「/f」オプションを指定しないと、アプリケーションが「保存するファイル名を入力してください」などの画面を表示したまま入力待ちでシャットダウンシーケンスが止まってしまう。シャットダウンできずに停電で電源が「オフ」になると、プロセスの強制終了より多くのデータ喪失やシステム破壊が生じる可能性がある。

 その一方で、「/f」オプションを指定した場合、アプリケーションが保存していないデータはシャットダウン時に失われてしまう。

 結局、「/f」オプションを指定してもしなくてもデータ喪失の危険性は残る。どちらにどれくらいのリスクがあるかは、対象PCの運用方針に依存する。シャットダウン時に想定される状況をよく確認して、「/f」オプションを指定するかどうかを決定する必要があるだろう。

●「/s」オプションならシャットダウン、「/r」オプションなら再起動

 シャットダウンではなく再起動を実行したい場合は、「引数の追加(オプション)」で「/s」オプションの代わりに「/r」オプションを指定する。例えば更新プログラムの適用とその後の再起動を自動化する場合は、「/r」オプションが有用だろう。

●「/t」オプションでシャットダウンに猶予を設けている理由

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

 環境によっては60秒だと足りないことも考えられる。テストして最適なタイムアウト値を決めるとよいだろう。

 なお、「/t」オプションで有意なタイムアウト時間(1秒以上)を設定した場合、「/f」オプションを指定したのと同じくプロセスの強制終了が行われるので注意が必要だ。

●その他のshutdownコマンドの注意点

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

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

■更新履歴

【2025/09/10】シャットダウンをキャンセルする手順、一時的にシャットダウンのタスクを止める手順、shutdownコマンドの「/f」オプションに関する注意点をそれぞれ追記しました。

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

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

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

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


「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

前のページへ |       
ページトップに戻る