Dell BIOS Password Management - DellBIOSProvider
A PowerShell script to set, change, or clear Dell BIOS admin and system passwords using the DellBIOSProvider module, in Windows, WinPE, or a task sequence.
A PowerShell script to set, change, or clear Dell BIOS admin and system passwords using the DellBIOSProvider module, in Windows, WinPE, or a task sequence.
A PowerShell script to install the Dell Command | PowerShell Provider (DellBIOSProvider) module in Windows or WinPE, plus its prerequisites and basic usage.
A PowerShell script to get or set Lenovo BIOS settings, or reset them to defaults, using WMI. Settings come from the script or a CSV file.
A PowerShell script to get or set HP BIOS settings using WMI, with no module required. Settings come from the script or a CSV file.
A PowerShell script to set, change, or clear HP BIOS setup and power on passwords using WMI, with no module required, in Windows, WinPE, or a task sequence.
A PowerShell script to change or clear Lenovo BIOS supervisor, power on, and system management passwords using WMI. The first password must be set manually.
This post was updated on June 18th, 2026. This post has been rewritten from the ground up. The original version of this solution was a Configuration Manager task sequence script driven by a Parameters.ini file. It worked, but it was built for a Windows 10 task-sequence world, and a lot of its customizations were applied as policies that locked the setting so the user could no longer change it. The modern version is a complete redesign for Windows 11 and Intune/Autopilot. It is a Win32 app that runs during the Autopilot device Enrollment Status Page and applies a curated set of customizations as defaults that a non-admin user can still change. This post covers the high-level concepts. The full setting list and the deeper implementation details live in the docs in the GitHub repo, so I won’t duplicate all of that here. ...
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. ...
As I spend time working in many different Configuration Manager environments, I find myself regularly needing to create Antimalware Policies. Most of the settings in the antimalware policies can be configured quickly, however the setting that always takes me the most time is the Exclusion Settings. There needs to be different policies with different exclusion settings for different types of devices. Each of these separate policies have 3 different areas for adding file paths, file types, and processes. And for some reason, unknown to me, the dialog window for adding exclusions has a 260 character limit. This means that even if all the exclusion settings are in a list, you can’t just copy the whole list in at once. All this adds up to make this process time consuming and inconsistent. ...
I was recently deploying an application that required Windows Firewall rules to be created for an executable that ran from each user’s AppData folder. The way I accomplished this was to use a combination of PowerShell scripts and the Windows Task Scheduler. I created two PowerShell scripts for this solution. Create_Scheduled_Task.ps1 and Create_Firewall_Rules.ps1. The Create_Scheduled_Task.ps1 script copies the Create_Firewall_Rules.ps1 script to a subfolder in C:\Users\Public and creates a scheduled task to run that script each time a user logs onto the computer. You will need to set the $appName, $scriptName, and $folderPath variables. ...