Codebase list poshc2 / 39f6cef resources / modules / Get-MSHotFixes.ps1
39f6cef

Tree @39f6cef (Download .tar.gz)

Get-MSHotFixes.ps1 @39f6cefraw · history · blame

function Get-MSHotFixes
{
<#
.Synopsis
Cmdlet to retrive the install Microsoft hotfixes
.Description
The cmdlet retrives all installled Microsoft hotfixes using WMI, specifically Win32_QuickFixEngineering class
Previously this was achieved by executing 'wmic qfe list' via Invoke-Expression, however this produced a pop-up window and Invoke-Expression could trigger various warnings or alerts.

Version 1.0

.Example
Get-MSHotfixes

Description     HotfixID  caption                                    InstalledOn        
-----------     --------  -------                                    -----------        
Security Update KB3200970 http://support.microsoft.com/?kbid=3200970 18/11/2016 00:00:00
Security Update KB3202790 http://support.microsoft.com/?kbid=3202790 17/11/2016 00:00:00
Update          KB3199986 http://support.microsoft.com/?kbid=3199986 03/11/2016 00:00:00
Update          KB2693643                                            02/11/2016 00:00:00
Update          KB3199209 http://support.microsoft.com/?kbid=3199209 18/10/2016 00:00:00
Update          KB3176936 http://support.microsoft.com/?kbid=3176936 24/08/2016 00:00:00

Retrive all installed hotfixes

.Example
Get-MSHotFixes | Where-Object -Property hotfixid -EQ KB3176936

Description HotfixID  caption                                    InstalledOn        
----------- --------  -------                                    -----------        
Update      KB3176936 http://support.microsoft.com/?kbid=3176936 24/08/2016 00:00:00

Determine if a specific patch is installed for later versions of Powershell

.Example
Get-MSHotFixes | Where-Object {$_.hotfixid -eq "KB2852386"}
Description                            HotfixID                              Caption                               InstalledOn                          
-----------                            --------                              -------                               -----------                          
Update                                 KB2852386                             http://support.microsoft.com/?kbid... 14/11/2016 00:00:00    

This is for PowerShell v2.0 installed on Windows 7


#>

$hotfixes = Get-WmiObject -Class Win32_QuickFixEngineering
$hotfixes | Select-Object -Property Description, HotfixID, Caption,@{l="InstalledOn";e={[DateTime]::Parse($_.psbase.properties["installedon"].value,$([System.Globalization.CultureInfo]::GetCultureInfo("en-US")))}} | Sort-Object -Descending InstalledOn
}