我有一个卸载Windows Update的批处理脚本。
@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。