我有一个卸载 Windows 更新的批处理脚本。
@echo off
REM uninstall windows update
wusa /uninstall /kb:2592687 /quiet /norestart
当我从命令行运行它时,它执行得很好。但是当我从 C# 安装程序类中调用它时
protected override void OnAfterInstall(IDictionary savedState)
{
base.OnAfterInstall(savedState);
Process proc = new Process();
try
{
proc.StartInfo.FileName = @"path\to\bat";
proc.Start();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我在标题中收到错误消息并且更新没有卸载。我以管理员身份运行设置并得到相同的错误,我用谷歌搜索它并发现几乎没有任何帮助。我应该采取什么样的步骤来找出导致错误的原因并修复它?
更新:经过一番摸索后,我到了事件查看器并得到了一个不那么模糊的错误
Windows update could not be uninstalled because of error 2147549183
这导致了一个讨论 64 位与 32 位的页面。并将我的代码更改为他们建议的内容
Process proc = new Process();
try
{
proc.StartInfo.FileName = "cmd.exe";
proc.StartInfo.Arguments = @"/c path\to\kbunins.bat";
proc.Start();
MessageBox.Show("Success.");
}
现在甚至不会在日志中添加新事件,并且仍然安装了 KB。