Configuration Manager Collection Creation Script

I just finished updating the script I’ve been using to bulk create collections in Configuration Manager. I know there are already many different examples of this same type of script out there, but I figured I’d share my take on it. The script can be downloaded from my GitHub: https://github.com/ConfigJon/ConfigMgr-Scripts/tree/master/Create-Collections Create_Collections.ps1 This script can be used to dynamically create user collections, device collections, and folder structure based on information in a CSV file. The script should be run as a user account with rights to connect to and create collections in Configuration Manager. The script should be run on a computer with the Configuration Manager Admin Console installed. The script will automatically search for the ConfigurationManager.psd1 file, attempt to import it, and connect to the specific site. ...

February 18, 2020 · 2 min

App Packaging PowerShell Functions

I’ve recently been working on a lot of app packaging, and I decided to take the opportunity to update my scripts. In this post I’ll cover 3 PowerShell functions that I found to be the most useful. The functions can be found on my GitHub. Invoke-MsiExec This function works with msiexec.exe. The function allows for installing or uninstalling a .msi based application. The function has a number of parameters: FilePath - The path to the .msi or .msp file Guid - The GUID of the MSI-based application to be uninstalled Install - Indicates that the /i switch should be used when calling msiexec.exe Uninstall - Indicates that the /x switch should be used when calling msiexec.exe Patch - Indicates that the /p switch should be used when calling msiexec.exe Arguments - A comma separated list of arguments to pass to msiexec.exe ExitCodes - A comma separated list of non-standard exit codes Some notes about the parameters: ...

January 30, 2020 · 3 min

Dell BIOS Password Management - DellBIOSProvider

This post was updated on May 25th, 2026 and covers script version 2.3.0. Update: Dell does now provide native WMI classes to manage BIOS passwords on newer models. For more information, see this post: Dell BIOS Password Management - WMI. For information on using the Dell PowerShell module to configure passwords on older models, continue reading this post. This is the third post in my series on how to manage BIOS / Firmware passwords with PowerShell. Previously, I’ve discussed Lenovo BIOS Password Management and HP BIOS Password Management. ...

November 3, 2019 · 9 min

Working with the Dell Command | PowerShell Provider

Update - May 21st, 2026 I’ve updated the script and information in this post to reflect the most recent release of the DellBIOSProvider PowerShell module (2.10.1 at the time of writing). For more details, see the script’s in-file .CHANGELOG block. Dell BIOS settings and passwords can be accessed and modified using WMI classes. These WMI classes can be accessed directly (Dell BIOS Settings Management - WMI). However, Dell also provides a PowerShell module that simplifies some aspects of working with these WMI classes (Dell Command | PowerShell Provider). This post will discuss the requirements for using the Dell PowerShell Provider as well as the PowerShell script I wrote for installing and updating it. ...

November 3, 2019 · 6 min

Lenovo BIOS Settings Management

This post was updated on May 24th, 2026 and covers script version 2.3.0. This post is one of 3 posts in my series on managing BIOS settings using PowerShell. I’ve also written about Dell and HP. In this post I’ll be talking about using PowerShell to manage Lenovo BIOS settings. The script can be downloaded from my GitHub: https://github.com/ConfigJon/Firmware-Management/tree/master/Lenovo This post is part of the v2 update to my BIOS management scripts. For an overview of everything that changed across the Dell, HP, and Lenovo scripts, see BIOS Management Scripts v2 Released. ...

August 1, 2019 · 10 min

HP BIOS Settings Management

This post was updated on May 25th, 2026 and covers script version 2.3.0. This script is now available in two variants. This post covers the WMI-based variant (Manage-HPBiosSettings-WMI.ps1), which talks directly to the HP WMI interface and has no module dependencies. There is also a variant built on the HP Client Management Script Library: HP BIOS Settings Management (HPCMSL). This post is one of 3 posts in my series on managing BIOS settings using PowerShell. I’ve also written about Dell and Lenovo. In this post I’ll be talking about using PowerShell to manage HP BIOS settings. ...

July 29, 2019 · 9 min

HP BIOS Password Management

This post was updated on May 25th, 2026 and covers script version 2.3.0. This script is now available in two variants. This post covers the WMI-based variant (Manage-HPBiosPasswords-WMI.ps1), which talks directly to the HP WMI interface and has no module dependencies. There is also a variant built on the HP Client Management Script Library: HP BIOS Password Management (HPCMSL). In my last blog post, (Lenovo BIOS Password Management), I talked about managing Lenovo BIOS passwords with PowerShell. I liked how that process worked, so I decided to create a similar process to handle HP BIOS passwords. Once again, the goal was to have a script that could automatically set, change, or clear BIOS passwords while providing logging and optional user prompts. In this post, I’ll cover the basics of how the script works and some limitations of the script. ...

July 18, 2019 · 12 min

Lenovo BIOS Password Management

This post was updated on May 25th, 2026 and covers script version 2.3.0. This post discusses how to manage Lenovo BIOS passwords using WMI. My goal was to have a script that could change or clear existing passwords and could display a prompt to the screen when manual intervention was required. In this post, I’ll cover the basics of how the script works. I’ll also talk about some limitations of the script and some areas it could be improved in the future. ...

July 8, 2019 · 16 min

Windows Customizations with PowerShell

The out of the box Windows 10 experience has improved over the years, but I still find most clients I work with want to make various tweaks and modifications to the default settings. In the past I would add these customizations to a Configuration Manager task sequence as individual steps. But I’m lazy, and I didn’t want to have to continually add each individual step over and over. Plus I like to keep task sequences shorter when I can. The solution was to create a PowerShell script that allows the admin to select which of the common Windows customizations to run in their environment. ...

June 26, 2019 · 3 min

Create and Print a Word Document with PowerShell

I was working with a client that had a requirement where each computer that was deployed needed to be paired with a physical document that had information about the computer. The solution I used to automate this process was to use a PowerShell script to take information from a running task sequence, then write and print a Word document. Here is a high level outline of the process. Information about the computer and deployment is collected by a PowerShell script during the task sequence The same PowerShell script then copies that information to a network share as a CSV file A separate computer or server has a Windows Scheduled Task set to run a second PowerShell script on a schedule The second PowerShell script takes any CSV files in the network location as input. It uses the data from the CSV files to build a Word document and then sends that document to a printer. This is the script that runs during the task sequence to collect information and write it to a CSV file on a network share. This example script is collecting the Serial Number, Asset Tag, and Computer Model. ...

April 25, 2019 · 4 min