将以下代码保存为E:a.ps1文件,打开cmd分三步输入以下命令
(1)PowerShell
(2)Set-ExecutionPolicy RemoteSigned
(3)E:a.ps1
核心思想:windows 的"wusa.exe"和ps1批处理文件
$KBID = "KB958488"
$KBID1 = "KB976902"
cls
function Remove-Update {
$HotFixes = Get-HotFix
[int]$count = 0;
foreach ($HotFix in $HotFixes)
{
$count = $count + 1
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 0)
{
Start-Sleep 3
Write-Host "Waiting for update removal to finish ..."
}
}
}
Remove-Update