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 がまだインストールされています。