【发布时间】: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#