1

我有一个卸载 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。

4

0 回答 0