4 min read

ConfigMgr - Using Set-BIOSConfig.ps1 in configmgr's "Run Script"

Thought i would show an example how you also can use my "Set-HPBIOSConfig.ps1" script in MEMCM's "Run Script" and how that would look.

I sometime use both /Set and /Get even out of OSD and find that CM's "Run Script" function to be just awesome for this,

  • Need a biossettingsfile generated quickly to see how the device settings are configured? Run Script!
  • Need to set a setting or more for a device for some reason? Run Script!
  • Need to do it on everything? RUN SCRIPT ON "All Systems"! ... Well no, maybe not, but you could do it collection'vise as well.

The only things you should think about before doing this is:

  • Could the setting effect bitlocker, eg. trigger it? Make sure to take this into account before running any script, you don't want to trigger bitlocker for an x numbers of devices...
  • Test test test and test! Always test stuff out before running on a larger scale.

/Set BIOS Settings

You use the same script for both /set and /get, you just need to have two .json configuration files (at the moment) setup one which specifies that you want to set bios settings and one that you wan to get the settings.

You can use the same folder with all the necessary files, BCU, Settings, Password.bin and .JSON files, that you set up in order to use it during OSD, read more about it here

MECM - PS - Dynamic* HP BIOS Config
UPDATE 2022-01-20Added a function to the script to set a BIOS password if there is none and you config the .JSON to do so. Read more about it further down. Dynamically choose BIOS config and set configWhen i first started working with MECM / SCCM the TS’s i worked with had

I just really is that simple, add the script under "Run Script" and go to town.

  • Under "\Software Library\Overview\Scripts", at the bottom "Scripts", right click and choose "Create Script"
  • Name it
  • Add the script as it
  • Click "Next" and here you will configure the "Config" parameter, point out and UNC path to the config.json file to be used eg.
    "\\SiteServer.corp.com\Source$\OSD\BIOSConfig\SetConfig.json"
  • Next, Next, Finish
  • And now if you have it configured as such, make sure someone can review your new script and config, and then approve it.
  • Go to "\Assets and Compliance\Overview\Devices" and search for the device you want to run it on
  • Right click and select "Run Script"
  • Select your newly created script and click next, review the parameter value, next, next, and it will now run.

After the script job has finished, you should be able to click the "Script Output" field and see the output from it. eg.

/Get BIOS Settings

The setup is more or less the same as with /set, except you need to edit (or make another) the .json so that the script will run i "/get" mode and generate an settings file fore you, you also want to specify a UNC path to where the script will save the new settings and log file.

The process of adding it to ConfigMgr is the same, and to run it as well, so i wont go through it again, when it ran you will see this output upon completion

And that's all there is to it really!

References

MECM - PS - Dynamic* HP BIOS Config
UPDATE 2022-01-20Added a function to the script to set a BIOS password if there is none and you config the .JSON to do so. Read more about it further down. Dynamically choose BIOS config and set configWhen i first started working with MECM / SCCM the TS’s i worked with had
EndpointManagement/Set-HPBIOSConfig/JSON at master · Love-A/EndpointManagement
Endpoint Management stuff galore! Contribute to Love-A/EndpointManagement development by creating an account on GitHub.
HP BIOS Configuration Utility | HP Client Management Solutions
HP BIOS Configuration Utility