This script should be considered a POC, proof of concept, rather than a ready solution.
With the release of ConfigMgr 1810 we were pleased to discover a new feature; the possibility to wake any properly configured computer from sleep, even on isolated network segments, without any other means than ConfigMgr itself.
Basically, ConfigMgr uses the so called BGB, or high-speed channel to instruct one or many already running computers to send wake up packages to sleeping machines on the same subnet as them self, thus bypassing ambitious firewalls and other obstacles.
To make it easier to use you might want to edit line five in the script and put in the FQDN of you site server ones and for all. Once that is done the script can be run with one or two argument depending on if you wish to wake a single machine or a whole collection of computers.
Examples, provided that the site server FQDN has been put in place on line #5:
1. Wake a single machine named WS0001:
PowerShell.exe -executionpolicy bypass -file wol.ps1 -CmpName "WS0001"
2. Wake all computers in a collection with ID XYZ00001:
PowerShell.exe -executionpolicy bypass -file wol.ps1 -CollId "XYZ00001"
3. Wake computer WS0002 in Collection with ID XYZ00002
PowerShell.exe -executionpolicy bypass -file wol.ps1 -CmpName "WS0002" -CollId "XYZ00002"
(if you didn't edit the script, you'll have to add one more argument -SiteServer "YourSiteServer.domain.com")
The sky is the limit, but one example would be to awaken a collection of pilot computers in conjunction with a scheduled ADR reassuring the highest possible hit rate. We leave it up to you to figure out other areas of use.
For more information please read this post by colleague @ccmexec: