KVM Windows virtual machines and ACPI unattended shutdown: a recap
Page 3 of 6
ACPI results with default Windows configuration
Table n.1 shows how the various Windows versions react to an ACPI shutdown event. Please follow the note for more information on the specific behavior.
Windows version | Console OFF long idle (3) | Console OFF | Console ON | Console login | Terminal Server login | Locked session |
Windows XP | no (5) | yes | yes | yes | no (1) | no (1) |
Windows 2003R2 | no | no | no | yes | no | no |
Windows 7 | yes (2) | yes | yes | yes | yes | no |
Windows 2008R2 | yes (2) | yes | yes | yes | yes | no |
Windows 2012R2 | yes (2) | yes | yes | yes | yes | no |
Notes:
- it requires manual console-based shutdown confirmation
- it require two ACPI shutdown events: the first one exits from the screensaver, the second one shutdown the machine
- long idle = login screen with screensaver or monitor sleep
- warning timeout not working on winxp: http://www.pcreview.co.uk/threads/how-to-disable-shutdown-warning-message.2688069/
- the screensaver is never exited, but as soon you move the mouse, a sudden shutdown happens
- Win7 / 2008R2 / 2012R2 do not appear to have a login screensaver by default. Rather they put monitor to sleep, by default. To enable login screensave, give a look at https://support.microsoft.com/en-us/kb/185348
As you can see, older Windows (XP and 2003R2) are the more reluctant to obey the ACPI shutdown event. On the other hand, Win7/2008R2 and later are significantly better, with a catch: after entered in the long idle (monitor sleep) mode, the need two ACPI shutdown events. This can be a problem for script that does not account for this specific behavior. For example, executing a single "virsh shutdown <long_idle_windows7>" is not sufficient to poweroff the machine; rather, you had to wait some second and execute a second "virsh shutdown command".