Wake Up using Intel AMT
We would like to use Intel's AMT functionality to remotely wake-up clients. Simply because it's far more reliable and powerful than WoL. I can run a Powershell command to wake-up a client using the IntelvPro PS module, like this:
Invoke-AMTPowerManagement -ComputerName hostname -Operation PowerOn -Username username -Password password
Now I would like to wake-up devices this way before I deploy updates to packages at night without bothering users. This poses a problem looking at the script Powershell command above. Obviously, I need to enter a hostname. I link my schedules to Inventory collections so there's no fixed list of hostnames.
Is there any way I can get this working?
A sidenote that's easily overlooked: The Powershell command has to be issued from 1 host, that has the Powershell module installed. I can't run this on the clients locally because, obviously, they're not powered on.
Comments
PDQ Deploy has a WoL functionality built into it? What is so much better about Intel AMT? I'm genuinely curious.
If you are dead-set on using powershell you are going to have to have some method to pull the machines hostnames from Inventory into the script. That's going to be ugly. You could build a CSV file of hostnames and wrap your script in a Foreach loop.
$computers = Get-Content C:\path\to\some.csv
Foreach ($computer in $computers){
Invoke-AMTPowerManagement -ComputerName $computer -Operation PowerOn -Username username -Password password
}
You may be able to use some form of custom variable in Inventory to get this working, but you are going to have a challenge ahead of you!
Thanks for your comment!
I have tested WoL, but I never got it to be reliable in larger networks. Especially working over different subnets and VPN links, it wouldn't always work. With AMT, this hasn't been an issue so far and, unlike WoL which is fire away and hope for a result, AMT gives me a success or fail return signal.
Your suggestion could work, there's only the problem that I cannot figure out how incorporate this into the PDQ Deploy task. The script cannot be started on the client, it has to run on the deployment server (or anything that's always on).
Scheduled task on the deployment server that runs a powershell script? Just schedule it to run a few minutes before the schedule inside of PDQ Deploy. If you know what hosts are in the collection for the schedule it would be trivial to create a CSV file of those hostnames that you can pull into the script. With powershell you could even send an email at the end of the script listing every host and their pass/fail status. Mull that over and tell me what you think.
A bit of a late response, but I did end up doing it that way. Scheduled task on the deployment server running the script, being fed by a CSV export from Inventory.
Won't win any beauty contests, but it gets the job done for now.
Thanks for your input Stephen.
Hey, if it's ugly and it works, it isn't ugly! Glad you have something working for you. FWIW, the WoL functionality built into PDQ I've found doesn't really work that well, at least in my environment, but mine is more.....convoluted.....than most. Glad you have a solution in place, and glad to be of assistance.