【问题标题】:How start process with admin right c#如何以管理员权限启动进程 c#
【发布时间】:2016-09-29 04:45:44
【问题描述】:

我想测试应用程序的安装。并使用下一个代码:

            var pathToInstaller = ConfigurationManager.AppSettings["DesignerApp"];
            var psi = new ProcessStartInfo
            {
                CreateNoWindow = true,
                FileName = pathToInstaller,
                UseShellExecute = true,
                Arguments = "/quiet",
                Verb = "runas"             
            };

            var process = Process.Start(psi);
            process.WaitForExit();

但是仍然有一个显示管理员权限的窗口。我做错了什么?

【问题讨论】:

  • 不能在用户背后以管理员身份启动进程。否则每个病毒和恶意软件都可以绕过管理员检查
  • 这个复杂的解决方案怎么样。添加新的 Windows 服务,该服务将在系统服务帐户下运行。它将接收启动新程序的命令并调用CreateProcessAsUserW为需要的用户启动进程。
  • 这是不可能的。您需要询问用户授予管理员权限。
  • 为什么你认为不可能?程序将在 System Service account 下使用 CreateProcessAsUserW 启动
  • 这不可能(很容易)的原因是通过使恶意软件更难被忽视来使系统更安全......所以不要指望在微软添加的安全性方面有太多帮助到操作系统。 如果您不遵守规则,任何人都不应购买您的软件。

标签: c#


【解决方案1】:

出于安全原因,您在技术上不应强制应用程序以管理员模式运行。但如果你想继续它,你可以查看这个链接 - How do I force my .NET application to run as administrator?

【讨论】:

  • 这看起来更像是一条评论
猜你喜欢
  • 1970-01-01
  • 2011-05-05
  • 2011-06-06
  • 1970-01-01
  • 2012-06-25
  • 2012-08-03
  • 2011-12-13
  • 2012-11-30
相关资源
最近更新 更多