I recently needed a quick PowerShell script to uninstall windows updates based on date.
In the example below, i wanted to uninstall any Windows Updates that had been installed on or after 01/01/2022.
cls
$ListOfHotfixes = Get-HotFix | Select hotfixid,description,installedby,@{label="InstalledOn";e={[DateTime]::Parse($_.psbase.properties["installedon"].value,$([System.Globalization.CultureInfo]::GetCultureInfo("en-US")))}} | Where-Object InstalledOn -gt ([DateTime]::Parse('01/01/2022'))
foreach ($item in $ListOfHotfixes)
{
$hotfixid = $item.hotfixid
write-host $hotfixid
$hotfixidwithoutkb = $item.hotfixid.replace("KB","")
Start-Process -FilePath "C:\Windows\System32\wusa.exe" -ArgumentList @("/uninstall","/kb:$hotfixidwithoutkb","/quiet","/norestart") -Wait
}
![Uninstall Windows Updates Based On Date](https://www.alkanesolutions.co.uk/wp-content/uploads/2023/12/uninstall-windows-updates-based-on-date-300x169.png)
![Uninstall Windows Updates Based On Date](https://www.alkanesolutions.co.uk/wp-content/themes/twentyeleven-child/images/application-packaging-services-blog.png)