OK, I'm not the first to talk about Windows and ACPI shutdown: as a simple Google Search shows, many sites / blogs have talked about it in the past years. Why it is such a big deal, when we can simply press the “shutdown now” button that Windows show us? Because with the rise of virtual machines it become quite important to be able to automatically execute a clean and fast shutdown of all running guests, without the need to manually login in each one. Theoretically, all you need to do is to issue an “ACPI shutdown” command to the running guests and voilà – it should respond to the ACPI event initiating a proper OS shutdown. However, things rarely are so simple: by default, the various Windows versions respond to ACPI events with different behavior – sometime doing nothing.
In this article we are going to examine if, and how, Windows from XP to Server 2012R2 respond to ACPI shutdown event, and what we can do to ensure a proper shutdown. Please note that I take as granted a correctly configured ACPI button event: in other words, I fully expect your Windows installation can shutdown itself when the ACPI button is pressed. If you customized this settings issuing, say, an OS suspension when the button is pressed, well, you can't expect a shutdown here ;)