【问题标题】:How do you call an exe from code and get around possible UAC action against this?您如何从代码中调用 exe 并绕过可能的 UAC 操作?
【发布时间】:2011-01-09 04:58:27
【问题描述】:

我正在使用 system.diagnostics.process 以安静模式启动 msi 文件。我得到一个退出代码 1625,我怀疑它是因为 UAC 阻止它运行。我已经关闭了 UAC 提示,但没有骰子...

如何确保我正确提升 msiexec 的权限以便它实际运行?

谢谢,

艾萨克

【问题讨论】:

    标签: c# process uac windows-installer


    【解决方案1】:

    【讨论】:

    • 是的,这基本上就是我所做的。你会得到公认的答案,因为它是更通用的解决方案!
    【解决方案2】:
    ProcessStartInfo startInfo = new ProcessStartInfo();
    startInfo.Arguments = "/i " +  "\""+Directory.GetCurrentDirectory()+"\\"+msiPath +"\"" +" /q";
    startInfo.FileName = "msiexec.exe";
    startInfo.Verb = "runas";
    
    
    Process installProcess = Process.Start(startInfo);
    

    嗯,这就是我所做的,并且有效。

    【讨论】:

      【解决方案3】:

      尝试使用管理员权限运行您的进程,看看问题是否仍然存在

      【讨论】:

      • 它以我的帐户运行,具有管理权限。当我从代码中调用 msiexec.exe 时,我没有“提升”它以获得足够高的 UAC 权限。
      猜你喜欢
      • 2012-03-07
      • 2012-05-29
      • 2022-10-15
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多