おことわり
- レジストリを編集することが前提の対策です。レジストリの編集は間違えて行うと意図しない事態が起きる恐れがあり注意を要しますが、本記事ではレジストリの編集方法やバックアップ方法までは説明しませんので、別途調べてください。(記事例:【Windows 10】レジストリをバックアップ・復元する方法 - MiniTool)
- この設定は、スタートメニューのうち「再起動」と「シャットダウン」にしか効きません。「休止状態」や「スリープ」はダイアログ表示無しに進んでしまいます。
- 本記事に書いた以外の対策として、「スタートメニューそのものを差し替える」あるいは「スタートメニューからの再起動やシャットダウンを無効化し、そのうえで再起動やシャットダウンは別にランチャーを導入する」という手段もあるらしいですが(そうすればおそらく休止状態やスリープでもダイアログを出せる)、その方法については本記事では扱っていません。
tl;dr
- Windows10・Windows11においては、スタートメニューから再起動やシャットダウンの欄をクリック/タップすると、確認ダイアログなどは出ずに即座に再起動やシャットダウンがされる
- そうではなく、その欄をクリック/タップした際に、確認ダイアログを表示させたい
- 直接的な解決策ではないが、代替策として「シャットダウン イベントの追跡ツール」という、「シャットダウンや再起動の際に理由を入力させる」というWindows標準の機能を有効化するという方法がある
経緯
私はWindowsでは休止状態をよく利用するのだが、Windowsのスタートメニューから休止状態にする場合、その箇所をクリック/タップすると即座に休止状態に入る。これは再起動やシャットダウンでも同様である。
で困ることとしてよくあるのが、「休止状態にしたいのに、マウスの動作が滑ってしまってシャットダウンをクリックしてしまう」こと。まあ普段はそこまで間違えないのだが、最近マウスが不調になってきたことに付随してこの間違いが何度か起こるようになり、流石に対策するか…と思ったのである。
で、MacやUbuntuだとそのような確認ダイアログはそもそもデフォルトで表示されるので、Windowsでも簡単にできるだろうか?と思って調べてみたら、
- スタートメニューそのものを差し替えるアプリを導入する。あるいはスタートメニューからの再起動やシャットダウンを無効化したうえで、再起動やシャットダウンのためのランチャーを導入する
- Windows標準機能の「シャットダウン イベントの追跡ツール」を実質的な代替として使う
という、案外面倒な方法しかなさそうだったのである。ここでは後者の方法について説明する。
シャットダウン イベントの追跡ツール
シャットダウン イベントの追跡ツールとは、Windowsマシンをシャットダウンする際に理由を入力できるようにし、それをログとして残せるようにしたものである。例えばWindows10で有効化すると、シャットダウンを選択した際にこんな表示が出る。
これで「続行」を選ぶと実際にシャットダウンが始まるのである。
設定方法
Windows 10/11のProやWindows Serverでは、「ローカル グループ ポリシー」というものを編集することでシャットダウン イベントの追跡ツールの有効/無効を切り替えられるようなのだが(参照:シャットダウン イベント トラッカーの説明 - Windows Server - Microsoft Learn)、Windows 10/11のHomeではこの機能がないため、レジストリエディタを使う必要がある。
レジストリエディタを管理者権限で実行し、以下の項目を変更する。
- キー(フォルダ)
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Reliabilityに、DWORD値ShutdownReasonOnとShutdownReasonUIを、どちらも値1で作成する(すでに存在するなら変更する。また、Reliabilityというキーが存在しなければHKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NTの下に作成する必要がある)。- これによりシャットダウン イベントの追跡ツールが有効化される。(参考:windows - Implement a Shutdown Confirmation? - Super User)
- これによりシャットダウン イベントの追跡ツールが有効化される。(参考:windows - Implement a Shutdown Confirmation? - Super User)
- キー(フォルダ)
\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Reliabilityに、DWORD値DirtyShutdownを値0で作成する(すでに存在するなら変更する)- これにより、再起動やシャットダウンの理由をデフォルトの「その他(計画外)」など、想定外という理由にした場合でも、次の起動時に理由の入力を求められなくなる。(参考:Shutdown Event Tracker showing on every login on Server 2019 - Server Fault)
- もしこの設定をしない場合、次の起動時に以下のような確認画面が出る。
- これにより、再起動やシャットダウンの理由をデフォルトの「その他(計画外)」など、想定外という理由にした場合でも、次の起動時に理由の入力を求められなくなる。(参考:Shutdown Event Tracker showing on every login on Server 2019 - Server Fault)
余談
この方法はChatGPTで見つかったのだが、以下のような経緯だった。
- 自分:スタートメニューからの再起動やシャットダウンの際にダイアログを出させたいんだけど、シャットダウン イベントの追跡ツールを使うって方法があるのか(これはぐぐってて見つけた)、でもWindows 10/11 Homeでは利用できないのか… ChatGPTに何かいい方法がないか尋ねてみよう
- ChatGPT:Windows 10/11 Homeでは実際に利用できないし、シャットダウン用のランチャーを導入するか、スタートメニュー自体を差し替えるアプリを使ってかなあ
- 自分:なるほどなあ、ちなみにその情報ってどういうサイトに載ってた?(Qiitaに書きたいからちゃんと参照元を載せたいし)
- ChatGPT:windows - Implement a Shutdown Confirmation? - Super User(※前掲のもの)とかどう?
- 自分:なるほどなるほど…
- 自分:ってこれ、Windows 10/11 Homeでもレジストリいじればダイアログを出せるってこの記事に書いてあるやないかーい!!
というオチでした。

