Supporting Windows 8 Fast Startup with Group Policy

When people first begin using Windows 8, one of the most noticeable improvements is the new Fast Startup feature.  Fast Startup, enabled by default in Windows 8, implements a unique hybrid kernel hibernation process during computer shutdown where user mode components are shutdown normally, but the operating system kernel is hibernated to provide a much faster start experience.  On my year-old Samsung Series 7 Slate running Windows 8 Enterprise, I can routinely cold boot using Fast Startup in under 10 seconds to a fully functioning PC, and this has been reduced to ~7 seconds or less on the new ultrabooks that are specifically designed for Windows 8 with UEFI firmware!

Everyone LOVES the speed of Fast Startup, but lots of IT Pros have asked about how to manage Fast Startup across their enterprise networks and, more pointedly, are there any considerations when using Active Directory Group Policy to manage PC’s enabled for Fast Startup.  In this article, I’ll answer both questions …

Are there any considerations for using Group Policy with Fast Startup-enabled PCs?

Yes – when using Fast Startup on Windows 8 PC’s, you’ll find that policy and preference items that are targeted during computer shutdown and startup will not be applied during default shutdown and startup operations.  This occurs because the operating system kernel is not completely shutdown when using Fast Startup, rather it is hibernated and resumed, which bypasses the processing of these policy and preference items.

NOTE: Even if Fast Startup is left at the default setting of being enabled, a full computer shutdown can still be initiated by end-users by holding down the Shift key while performing a shutdown manually.  In addition, Computer Restart operations perform a full shutdown, as this is commonly required after applying system updates or installing new applications.

Can I force Group Policies to be applied to Fast Startup-enabled PCs?

Sure thing – note that Fast Startup, when enabled, only applies on shutdown and startup operations.  Computer restarts always perform a full kernel shutdown.  If we keep this in mind, we can restart computers outside normal business hours to apply policy and preference items targeted for computer shutdown and startup.  We can force PCs to restart remotely using either the Restart-Computer PowerShell cmdlet or the SHUTDOWN.EXE command-line tool.

For example, you can perform a full “after-hours” restart of all computers in a particular Active Directory organizational unit (OU) using the following PowerShell command line:

Get-ADComputer –filter * -Searchbase "ou=Workstations,dc=kemlabdom01,dc=keithmayer,dc=com" | ForEach -Object { $_.DNSHostName } | Restart-Computer -Wait -For Wmi -Timeout 300

Alternatively, we can also force group policy updates remotely using the new Invoke-GPUpdate PowerShell Cmdlet as follows:

Get-ADComputer –filter * -Searchbase "ou=Workstations,dc=kemlabdom01,dc=keithmayer,dc=com" |
Foreach-Object {
 Invoke-GPUpdate –computer $ -boot –force –RandomDelayInMinutes 0

Using these approaches, you can provide the “best of both worlds” to your organization – give users a very fast computer startup experience while still being able to deploy policies targeted for startup and/or shutdown to network PC’s by restarting after-hours, when necessary.

What happens if users are logged in when I force a computer restart?

If users are still logged in on their computer when performing a remote restart using the above command line, PowerShell will not restart those PC’s and will instead log the following error message:

The system shutdown cannot be initiated because there are other users logged on to the computer.

PowerShell takes this approach to play things “safe” – just in case a user was logged in with documents open or other work in progress.  If you wish to force all PC’s to restart, regardless of whether users are logged in or not, you can add the –Force parameter to Restart-Computer cmdlet in the command-line above.

Can I manage the Fast Startup feature?

Yes – while the Fast Startup feature in Windows 8 is enabled by default, you can use the following options to enable/disable Fast Startup on Windows 8 PC’s that you’re deploying on your network.

  • Control Panel –> Power Options –> System Settings
    Use Control Panel to manually enable / disable Fast Startup on PC’s by using the Choose what the power buttons do link in the Power Options applet.  Uncheck the Turn on fast startup (recommended) checkbox to disable Fast Startup.
  • Use PowerCfg.exe from the command prompt
    PowerCfg.exe can be used from the command prompt to query the current state of Fast Startup and also enable or disable hibernation.  To query the current state, use the following PowerCfg /a command-line:
    To disable hibernation, and also Fast Startup, with PowerCfg.exe, use the following PowerCfg /H OFF command line from an Administrative Command Prompt window:
  • Group Policy: Windows 8 and Windows Server 2012 include over 3,600 total group policy settings!  One of these new Group Policy settings allows administrators to require the use of Fast Startup on network PC’s as follows:
    If enabled, the use of hibernation and Fast Startup will be required to be enabled on computers.  If disabled or not configured, the local PC settings for hibernation and Fast Startup will take affect.

What’s Next?

Fast Startup is just one of the new options included in Windows 8 and Group Policy.  To learn more about the other new capabilities in Windows 8 and Windows Server 2012, here’s some great resources that you can leverage:

Are you excited about Fast Startup in Windows 8?

Do you have plans to leverage Fast Startup in Windows 8 with your users?  Feel free to leave your feedback in the comments below!