$KBID = "KB958488"
$KBID1 = "KB976902"
cls
function Remove-Update { $HotFixes = Get-HotFix
[int]$count = ;
foreach ($HotFix in $HotFixes)
{
$count = $count +
Write-Host $count / $HotFixes.Count
if (($KBID -ne $HotFix.HotfixId) -and ($KBID1 -ne $HotFix.HotfixId))
{
"Inside first if"
$KBID = $HotFix.HotfixId.Replace("KB", "")
$RemovalCommand = "wusa.exe /uninstall /kb:$KBID /quiet /norestart"
Write-Host "Removing $KBID from the target."
Invoke-Expression $RemovalCommand } if ($KBID -match "All")
{
$KBNumber = $HotFix.HotfixId.Replace("KB", "")
$RemovalCommand = "wusa.exe /uninstall /kb:$KBNumber /quiet /norestart"
Write-Host "Removing update $KBNumber from the target."
Invoke-Expression $RemovalCommand } if ($KBID -match "Security")
{
if ($HotFix.Description -match "Security")
{ $KBSecurity = $HotFix.HotfixId.Replace("KB", "")
$RemovalCommand = "wusa.exe /uninstall /kb:$KBSecurity /quiet /norestart"
Write-Host "Removing Security Update $KBSecurity from the target."
Invoke-Expression $RemovalCommand
}
} while (@(Get-Process wusa -ErrorAction SilentlyContinue).Count -ne )
{
Start-Sleep
Write-Host "Waiting for update removal to finish ..."
}
} } Remove-Update