Prevent devices with Modern Standby from going to sleep
Until 20H1 this was able to be done by setting the CsEnabled registry key to 0 during the build, this key is no longer present in windows. We need a way to prevent devices with Modern Standby from going to sleep during the build.
Finally got the client updated and it does indeed perform like you mentioned and changed all the powercfg timeout values to 0. Thanks for all your help.
The powercfg info would be excellent info to add here: https://docs.microsoft.com/en-us/mem/configmgr/osd/deploy-use/manage-task-sequences-to-automate-tasks#bkmk_perf
I went ahead and opened a MSDocs Issue on GitHub to suggest it. Thanks again!
Thank you for the response! I chatted with some of my peers and our environment was upgraded to 2010 but the client won't be updated in the build until about 2 weeks from now. I will wait and test this out again at that point, hopefully then I can disable the extra powercfg steps and leverage all of this new functionality.
Will report back in a few weeks.
NK, if you are seeing client changing plan to 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c, this means your client is not at 2010 level. 2010 binaries no longer change plan to this scheme, they create a temporary plan which sets all timeouts to 0.
I specifically tested the high performance setting last night on CM 2010 with a modern standby machine booted from PxE, I made sure I recreated the deployments (I know that was a listed bug) and the machine still falls asleep, I woke it up this morning and it kicked right back into the Task Sequence.
The logs only show:
Setting power scheme setting to 'High' for the duration of task sequence.
Executing command line: PowerCfg /setactive 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c with options (0, 0)
Not sure if the standby/hibernate/monitor settings are silent and not logged, but that was all that appeared to be present in SMSTS.log. I've observed this across multiple models that are modern standby/S0 based.
(There is also nothing listed in the documentation about the timeout values, contrary to what the product team has posted on UserVoice)
I've added 2 powercfg /q and powercfg /requests steps to export those as text files to C:\ into my Task Sequence once it boots out of WinPE and into the Full OS, this should help confirm if the intended behavior you mentioned is actually happening. Will report back shortly.
Update after testing:
(All of these queries happened when booted into the Full OS during OSD)
Powercfg /q Prior to Changing Anything - https://pastebin.com/c675iLrN
Powercfg /q Post changing standby, monitor, hibernate, and disk ac timeout values to 0 - https://pastebin.com/H6i2NtvZ
Powercfg /requests (This matched both pre/post applying powercfg changes) - https://pastebin.com/swAk94ZY
Upon making these changes to the AC timeout values and running several test builds it did successfully prevent the machine from sleeping during OSD with the changes I made. After analyzing the differences between the powercfg queries it would appear that the timeout values are unfortunately not being changed on Modern Standby/S0 machines with the CM 2010 High Performance functionality updates.
If you search around there are a ton of people talking about this, many of them are using the CsEnabled registry key to work around this which is no longer present after Win10 2004. Some people are manually disabling AoAC and trying to reenable S3 when many OEM BIOS do not support and may BSOD. This needs to be addressed properly to help the community.
Also, why did the product team delete their post from here? https://imgur.com/gallery/F84Ff4r
I can confirm that as of CM 2010 when Task sequence runs with high performance setting checked, standby-timeout-ac, monitor-timeout-ac, and hibernate-timeout-ac settings are all set to 0 for the duration of the task sequence.
It's unclear if CM 2010 power plan settings prevent this, if the product team could confirm and update documentation I think that might help many involved.
If it doesn't resolve the issue for Modern Standby devices with S0, perhaps that option could be enhanced to include powercfg /change options for standby-timeout-ac, monitor-timeout-ac, and hibernate-timeout-ac to be set to 0 for the duration of the task sequence.