KB Viewer, Saver, Installer and Uninstaller
Install-Module kbupdate -Scope CurrentUser
# Get detailed information about KB4057119. This works for SQL Server or any other KB.
Get-KbUpdate -Name KB4057119
# Get detailed information about KB4057119 and KB4057114.
Get-KbUpdate -Name KB4057119, 4057114
# Faster. Gets, at the very least: Title, Architecture, Language, Hotfix, UpdateId and Link
Get-KbUpdate -Name KB4057119, 4057114 -Simple
# Download KB4057119 to the current directory. This works for SQL Server or any other KB.
Save-KbUpdate -Name KB4057119
# Download the selected x64 files from KB4057119 to the current directory.
Get-KbUpdate -Name 3118347 -Simple -Architecture x64 | Out-GridView -Passthru | Save-KbUpdate
# Download KB4057119 and the x64 version of KB4057114 to C:\temp.
Save-KbUpdate -Name KB4057119, 4057114 -Architecture x64 -Path C:\temp
# Install KB4534273 from the \\fileshare\sql\ directory on server01
Install-KbUpdate -ComputerName server01 -FilePath \\fileshare\sql\windows10.0-kb4532947-x64_20103b70445e230e5994dc2a89dc639cd5756a66.msu
# Automatically save an update, stores it in Downloads and install it from there
Install-KbUpdate -ComputerName sql2017 -HotfixId kb4486129
# Uninstalls KB4498951 from server01
Uninstall-KbUpdate -ComputerName server01 -HotfixId KB4498951
# Uninstalls KB4498951 on server01 without prompts
Uninstall-KbUpdate -ComputerName server01 -HotfixId KB4498951 -Confirm:$false
# Uninstall kb4498951 from server23 and server24
Get-KbInstalledUpdate -ComputerName server23, server24 -Pattern kb4498951 | Uninstall-KbUpdate
# Test to see if KB4057119 and get a bunch of info about it on server01
Get-KbInstalledUpdate -ComputerName server01 -Pattern KB4057119
Get more help
Get-Help Get-KbUpdate -Detailed
- kbupdate-library - a sqlite db
- PSFramework - for PowerShell goodness
- PSSQLite - to query the included db
- PoshWSUS - to query the WSUS server when
-Source WSUS
is specified
The Install-KbUpdate
command uses the Invoke-DscResource
to run a method of the Package
or xHotFix
resource against the target node. Using Invoke-DscResource
bypasses the Local Configuration Manager (LCM) on the target node so should not affect your current configuration. However, if you are currently using DSC to control the desired state of your target node and you contradict the call to Invoke-DscResource
you could sees issues. For example if the LCM has a Package
resource saying that KB4527376 should not be installed, and then you install it with Install-KbUpdate
after the install finishes the LCM will report it is not in the desired state, and depending on your LCM settings could uninstall the KB.