我最近部署了 IE6 到 IE7 的更新,但痛苦地发现我们使用的某些 webtools 不兼容。有没有服务器端方法可以批量卸载 IE7 及其更新?
我在 DC 上使用 Windows 2008。
谢谢
答案1
嗯,根据 MS 的说法,在受影响的机器上运行此程序应该卸载 IE 7 并重新安装 IE 6:
%windir%\ie7\spuninst\spuninst.exe /quiet
如果您从 WSUS 或 SUS 执行此操作,您还可以创建一个新的空广告,仅运行上述命令。不过,我建议先在受影响的一台机器上试用一下,然后再在整个公司范围内推广 :-)
答案2
“最简单”的方法是使用与推出更新相同的机制。大多数中央软件部署实用程序和补丁管理服务器都允许您回滚更新(当然,这取决于您对 IE7 卸载程序的信任程度,但为了便于讨论,我们假设它始终运行正常)。
因此,例如,如果您使用 WSUS 更新系统,那么您只需从 WSUS 服务器回滚所有更新即可。但是,如果您直接在每台计算机上更新 IE7(例如通过 Windows Update),那么您可以编写一个简短的脚本(VBScript、AutoIt、Powershell、CMD... 选择您的毒药...)来运行 IE7 卸载程序并通过组策略部署该脚本。
但无论你采用哪种方式,在尝试卸载之前,你都需要确保脚本执行了一些操作。我强烈建议在安全模式下执行卸载,因为 IE 的卸载程序与许多防病毒实用程序和许多其他软件的兼容性不佳。
脚本 1(卸载前,由 AD/GP 部署):
- 将“ ”的值设置
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\InstalledByUser
为 0(这将防止出现“...必须由安装的用户卸载...”错误) - 用于
BootCfg
添加条目以boot.ini
强制计算机默认启动到带网络连接的安全模式 - 将计算机配置为在启动时自动使用本地管理员帐户登录
- 向 RunOnce 键添加一个条目,以便上述管理员运行执行卸载的第二个脚本(如下)。
- 安排强制关机并从当前时间开始 2 分钟后重启(如果尚未发生,将覆盖下一步),使用如下命令
shutdown -r -f -t 0
- 发出“良好”关机并重启指令。
脚本2(卸载):
- 为每个补丁运行卸载程序(使用静默/安静选项)(等待每个补丁完成后再运行下一个)...每个补丁的命令都在注册表中的卸载项中。
- 运行 IE7 的卸载程序(再次,静默模式)(并等待完成):
%windir%\ie7\spuninst\spuninst.exe /quiet
- 删除自动登录配置。
- 使用 BootCfg 将 boot.ini 改回原始配置(“正常”启动)。
- 发出强制关机并重启。
由于此卸载的侵入性,您需要与用户仔细安排此时间。
最后,请务必对整个过程进行几次测试,在您的环境中抛出尽可能多的可以想到的可能妨碍部署按预期运行的“真实世界”场景。