Claire
2 years ago
1 changed files with 54 additions and 0 deletions
@ -0,0 +1,54 @@ |
|||||||
|
# original script |
||||||
|
# https://www.irisclasson.com/2018/12/27/using-powershell-to-summarize-pending-windows-updates-as-well-as-installed-updates/ |
||||||
|
|
||||||
|
$msUpdateSession = [activator]::CreateInstance([type]::GetTypeFromProgID("Microsoft.Update.Session",$env:COMPUTERNAME)) |
||||||
|
$updates = $msUpdateSession.CreateUpdateSearcher().Search("IsInstalled=0").Updates |
||||||
|
|
||||||
|
$silverLightInstalled = Get-WindowsFeature | ? { $_.Name.ToLower() -like 'silverlight' } |
||||||
|
|
||||||
|
$pendingUpdates = [System.Collections.ArrayList]@(); |
||||||
|
|
||||||
|
$output = "KB`tTitle`tDescription`tDate`tInfo"; |
||||||
|
|
||||||
|
foreach($u in $updates) { |
||||||
|
$kb = $u.KBArticleIDs[0]; |
||||||
|
$title = $u.Title; |
||||||
|
$desc = $u.Description; |
||||||
|
$date = (Get-Date $u.LastDeploymentChangeTime).toString("yyyy-MM-dd"); |
||||||
|
$url = $u.MoreInfoUrls[0]; |
||||||
|
|
||||||
|
# make description a single line |
||||||
|
$desc = $desc -replace "\n", " "; |
||||||
|
|
||||||
|
if ($title.ToLower().Contains("silverlight")) { |
||||||
|
if($silverLightInstalled) { |
||||||
|
$pendingUpdates.Add($title) |
||||||
|
} |
||||||
|
} elseif ($title.ToLower().Contains("language pack")) { |
||||||
|
# skip language packs |
||||||
|
continue; |
||||||
|
} |
||||||
|
else { |
||||||
|
$pendingUpdates.Add($title) |
||||||
|
|
||||||
|
# add to the CSV output (tab-delimited) |
||||||
|
$output += "`n$kb`t$title`t$desc`t$date`t$url"; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
$updatesCount = $pendingUpdates.Count |
||||||
|
|
||||||
|
if($updatesCount -gt 0) { |
||||||
|
Write-Host "***** $updatesCount updates pending*****" -BackgroundColor Black -ForegroundColor Yellow |
||||||
|
$pendingUpdates | % { Write-Host $_ } |
||||||
|
} |
||||||
|
else { |
||||||
|
Write-Host "***** No pending updates for $env:COMPUTERNAME*****" -BackgroundColor Black -ForegroundColor Green |
||||||
|
} |
||||||
|
|
||||||
|
# write csv |
||||||
|
$ouput | Out-File ~\Documents\pendingupdates.csv |
||||||
|
|
||||||
|
$outfp = (Resolve-Path ~\Documents\).Path |
||||||
|
$outfn = $outfp + 'pendingupdates.csv' |
||||||
|
Write-Host "Saved list to $outfn" |
Loading…
issues.context.reference_issue