Rebooting a Windows PC without seeing the screen

One of my Windows 11 machines has a quirk where it sometimes comes out of hibernation with a black screen. The most likely trigger appears to be an occasional error in the graphics driver (DPC_QUEUE_EXECUTION_TIMEOUT_EXCEEDED in igdkmd64.sys) when transitioning from Sleep to Hibernation state. Anyway, since this is a legacy Intel HD graphics chipset with Ivy Bridge architecture, there is little hope of this ever being fixed.

From looking at the disk lights, it was clear that the machine was still running and that only the screen was dark - but how to reboot it cleanly without pulling the power cord? This is a similar situation to a laptop with a broken screen or a headless server, but I did not find any useful recommendations that do not depend on seeing the screen or knowing what window is currently showing.

So, I experimented a bit and came up with this key sequence that seems to be able to reboot Windows 11 regardless of the state it is currently in:

  1. [Ctrl]+[Alt]+[Del]: in most cases, this gets you to the lock menu. If you are already on the lock screen, it just opens the password dialog.
  2. [Shift]+[Tab]: go back once to focus the Power icon. This works in both the lock screen and the password dialog.
  3. [Enter]: open the Power menu
  4. [Up] once to focus Restart or [Up], [Up] to focus Shut down.
  5. [Enter] to confirm. In some cases another [Enter] is needed to confirm, so I usually press it twice.

You can also turn on the Narrator screen reader for audio feedback with [Ctrl]+[Windows]+[Enter] but this will require you to have a speaker attached and unmuted (if you have a hardware "mute" key on your keyboard, you are in luck and you can unmute even on the lock screen).

Keep in mind that rebooting can still come with some data loss in open applictions, but at least it gives the system a better chance of cleaning up than disconnecting power or holding the power button until the PC shuts down.

I no longer have any older Windows versions to verify, but I would expect this to work for Windows 10 at least.