Update for Windows is already installed on this computer?

En del uppdateringar från Windows Update misslyckas vid installation med en prompt om att uppdateringen redan är installerad. Ett återkommande exempel är KB3146978 som listas som en rekommenderad hotfix för RDS 2012 R2 Session Hosts. I ett flertal miljöer har jag sett att KB3146978 inte listas under Installed Updates, Systeminfo, Powershells Get-Hotfix, wmic get hotfixid eller andra sätt som är baserade på Win32_QuickEngineering men installation fastnar ändå på ”Update for Windows is already installed on this Computer”.

För att få en mer inkluderande översyn på vilka uppdateringar som faktiskt är installerade kan följande köras:

$Session = New-Object -ComObject ”Microsoft.Update.Session”
$Searcher = $Session.CreateUpdateSearcher()
$historyCount = $Searcher.GetTotalHistoryCount()
$Searcher.QueryHistory(0, $historyCount) | Select-Object Title, Description, Date,
@{name=”Operation”; expression={switch($_.operation){
1 {”Installation”}; 2 {”Uninstallation”}; 3 {”Other”}
}}} | Export-Csv -NoType ”$Env:userprofile\Desktop\Windows Updates.csv”

Windows Updates.csv lägger sig då på skrivbordet och innehåller i detta exempel information om att KB3146978 faktiskt är installerad.