PDQ Deploy - Firmware Updates
Good Day....
With the recent Spectre and Meltdown issues we are looking into updating the firmware of all of our devices.
We would like to create a package that will be able to detect the make and model of the computer and install the specific firmware. Can this be done in one package or do i have to create individual packages for each model. We would like the steps to be as follows:
Suspend Bitlocker
Detect Model of computer
install specific firmware silently
Reboot
Run Microsoft Powershell script for Spectre\Meltdown
Resume Bitlocker
We would like to capture the results of the microsoft script into a report if it is possible.
Comments
To capture the results of Microsoft's script, you can pass the Get-SpeculationControlSettings results to a text file using the pipeline.
Something like this should do:
I want to say that you could make collections in Inventory based off of computer model, and use the "PDQ Inventory Collection > Is A Member" condition in install steps. I have never installed firmware with PDQ so that is something you might want to test carefully. (I'm sure if someone has installed firmware with PDQ they'll chime in.)
Here's a fuller version of what I posted above that uses more of Microsoft's script:
It will NOT run successfully as-is in PDQ Deploy with their command line settings on PowerShell steps. Their default is below. One of the PowerShell experts at PDQ can probably tell you what you would need to change in order to run such a script from Deploy. (You should be able to keep the -ExecutionPolicy Bypass bit of their settings in there, and just remove every line with execution policy stuff in the script I pasted.)
Thank You Monica! I will test this script!
I know this is old but may help others. Monica, Thanks for the great script! Ericc, I checked with PDQ support and Josh M gave us the missing piece to run as a deployment with a couple changes.
....
Install-PackageProvider -Name "NuGet" -Force <--you need this to get NuGet to load the module
Install-Module SpeculationControl -Force
....
#Set-ExecutionPolicy $ExecPol -Force <--either comment this or remove
I commented it out just in case I want to use the script elsewhere. I tested it and it works great.