ここまでの手順で作成したタスクは、そのままだと特定の条件あるいは状況だとシャットダウンに失敗する恐れがある。そこでタスクの設定を変更する。
まずは、作成したタスクのプロパティを開く。
それには、真ん中のペインに表示されている対象のタスクをダブルクリックするか、選択してから右ペインの[プロパティ]をクリックする。
プロパティのダイアログが現れたら、まずは[条件]タブの設定を変更する。
次に、[設定]タブの設定内容を確認する(デフォルトのままなら設定変更は不要)。
最後に[全般]タブの設定を変更して[OK]ボタンをクリックする。
シャットダウンの時刻が曜日ごとに異なる場合は、前述の「トリガー」を追加する。以下では、金曜日のみ17時にシャットダウンするように設定している。
後は[OK]ボタンをクリックしていって、ユーザー認証が求められたら前述の手順でパスワードを記入して[OK]ボタンをクリックする。
shutdownコマンドに「/t <秒数>」オプションを指定して実行した場合、<秒数>が過ぎてシャットダウンが実際に始まる前に、「/a」オプションを指定してshutdownコマンドを実行すると、シャットダウンをキャンセルできる。
shutdown /a
上記コマンドラインの実行後、「ログオフはキャンセルされました」といった通知またはメッセージが表示されるとともに、シャットダウンはキャンセルされる。
例えばテストのために手動でシャットダウンのタスクを実行した場合、「/t」オプションで指定した秒数に達する前にコマンドプロンプトから上記のコマンドラインを手動で実行すると、シャットダウンをキャンセルできる。
予定変更などの理由から、シャットダウンのタスクを一時的に停止したいこともあるだろう。その場合は、タスクスケジューラでシャットダウンのタスクを右クリックして表示されるメニューで[無効]を選ぶ。これで、起動時刻になってもタスクは起動されない。
再度、タスクを定期実行させるには、同じく右クリックメニューで[有効]を選べばよい。
以上のようにタスクを作成しても、タスクの実行に失敗して定時シャットダウンができないことがある。その原因の一つは、タスクを実行するユーザーアカウントに、そのための「権利」がない、というものだ。
タスク実行アカウントが(管理者ではなく)一般ユーザー場合は、「ローカルセキュリティポリシー」というツールで、対象のユーザーアカウントに「バッチジョブとしてログオン」の「権利」を与える必要がある。ただし、このツールはHomeエディションのWindows 10/11では起動できないので、Homeエディションの場合は管理者アカウントに変えるしかない(その手順は後述)。
以下の作業そのものは、管理者アカウントで行う必要がある。
管理やセキュリティの観点では、タスク実行専用のユーザーアカウントを用意し、上記のように必要な権利を与えつつ、余計な権限を与えない方が望ましい。ローカルユーザーアカウントを作成する手順については、以下のTech TIPSを参照していただきたい。
環境によっては、一般ユーザーではシャットダウンできない場合がある。
例えばWindows Serverの場合、シャットダウンを実行するアカウントは、デフォルトでAdministrators(あるいはBackup Operatorsなどの)グループに所属している必要がある。
Windows 10/11でも、企業内システムでグループポリシーなどが設定されていたりEDR/XDRなどでクライアントPCが厳密に管理されていたりする場合、管理者にしかシャットダウンできないことがある。
どうしても一般ユーザーではシャットダウンに成功しない場合は、管理者のアカウントに変えてみよう。タスクを実行するユーザーアカウントを変更するには、タスクのプロパティの[全般]タブで、「タスクの実行時に使うユーザーアカウント」欄の[ユーザーまたはグループの変更]ボタンをクリックすればよい。
管理者でもタスク実行に失敗する場合は、タスクのプロパティの[全般]タブにある[最上位の特権で実行する]チェックボックスにチェックを入れて「オン」にして、再試行してみよう。
本Tech TIPSでシャットダウンに利用しているのは、Windows OS標準装備の「shutdown」コマンド(shutdown.exe)である。
前述のタスク作成時に指定しているshutdownコマンドのオプションの意味は、以下の通りだ。
オプション | 意味 |
---|---|
/f | プロセスの強制終了 |
/s | シャットダウン。再起動の場合は「/r」 |
/t 60 | タイマーを60秒後にセットして、シャットダウンを開始 |
/c "<説明>" | このシャットダウンをイベントログに記録する際のコメント。「/t」オプションによって表示されるメッセージボックスにも、このコメントが表示される |
指定しているshutdownコマンドのオプションとその意味 |
「/f」(強制実行)オプションは、何らかの理由で終了しないプロセスがある場合でもシャットダウンを強行するために指定している。
例えば未保存のデータがある場合、「/f」オプションを指定しないと、アプリケーションが「保存するファイル名を入力してください」などの画面を表示したまま入力待ちでシャットダウンシーケンスが止まってしまう。シャットダウンできずに停電で電源が「オフ」になると、プロセスの強制終了より多くのデータ喪失やシステム破壊が生じる可能性がある。
その一方で、「/f」オプションを指定した場合、アプリケーションが保存していないデータはシャットダウン時に失われてしまう。
結局、「/f」オプションを指定してもしなくてもデータ喪失の危険性は残る。どちらにどれくらいのリスクがあるかは、対象PCの運用方針に依存する。シャットダウン時に想定される状況をよく確認して、「/f」オプションを指定するかどうかを決定する必要があるだろう。
シャットダウンではなく再起動を実行したい場合は、「引数の追加(オプション)」で「/s」オプションの代わりに「/r」オプションを指定する。例えば更新プログラムの適用とその後の再起動を自動化する場合は、「/r」オプションが有用だろう。
「/t 60」(タイムアウト)オプションによってシャットダウンを60秒間待っている(タイマーで60秒後に発動する)のは、スリープ中または休止状態からタスク起動によって回復した場合、各種サービスやネットワーク接続などが安定してからシャットダウンする方がよいからだ(不安定なままシャットダウンするとイベントログにエラーが記録されることがある)。
環境によっては60秒だと足りないことも考えられる。テストして最適なタイムアウト値を決めるとよいだろう。
なお、「/t」オプションで有意なタイムアウト時間(1秒以上)を設定した場合、「/f」オプションを指定したのと同じくプロセスの強制終了が行われるので注意が必要だ。
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】初版公開。
Copyright© Digital Advantage Corp. All Rights Reserved.