针对incredibuild 在win7上更新补丁后编译报错的问题,解决方案是卸载掉安装的系统补丁(备注:以后大家的测试环境最好不要自动更新系统补丁)
通过powershell-批量卸载补丁操作步骤:
1、以管理员身份运行powershell
2、执行:Set-ExecutionPolicy RemoteSigned
3、输入Y后回车
4、Remove-Update.ps1脚本拷贝至C盘根目录,然后直接将C盘的该脚本拖入到powershell窗口中执行即可
脚本中:
$TimeOutDays=7 字段代表卸载多久之前时间安装的补丁
比如现在本地电脑时间为7月7日,配置为7天,这样就可以卸载7月1日-7月7日之间安装的系统补丁
cls
function Remove-Update {
$TimeOutDays=7 #天数配置
[int]$count = 0;
$hotfixes=(Get-HotFix | Sort-Object -Property installedon -Descending)
#$lis= (Get-HotFix | Sort-Object -Property installedon -Descending)
foreach ($hotfix in $hotfixes)
{ $count = $count + 1
$installtime=$hotfix | Select-Object -ExpandProperty installedon
$daypan=((get-date)-$installtime).days
# $lis= Get-HotFix | Sort-Object -Property installedon -Descending
if ($TimeOutDays -gt $daypan )
{ "Inside first if"
$KBID = $hotfix.HotfixId.Replace("KB", "")
write-host $kbid
$RemovalCommand = "wusa.exe /uninstall /kb:$KBID /quiet /norestart"
Write-Host "卸载 KB$KBID ,安装时间:"$installtime
Invoke-Expression $RemovalCommand
while (@(Get-Process wusa -ErrorAction SilentlyContinue).Count -ne 0)
{ Start-Sleep 3
Write-Host "wusa.exe正在运行 ...卸载中..." }
} }
}