【发布时间】:2013-05-31 08:16:31
【问题描述】:
从不是以管理员身份运行的应用程序,我有以下代码:
ProcessStartInfo proc = new ProcessStartInfo();
proc.WindowStyle = ProcessWindowStyle.Normal;
proc.FileName = myExePath;
proc.CreateNoWindow = false;
proc.UseShellExecute = false;
proc.Verb = "runas";
当我调用 Process.Start(proc) 时,我没有弹出要求以管理员身份运行的权限,并且 exe 不是以管理员身份运行的。
我尝试将 app.manifest 添加到在 myExePath 中找到的可执行文件中,并将 requestedExecutionLevel 更新为
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
使用更新的 app.manifest,在 Process.Start(proc) 调用中,我得到一个异常,“请求的操作需要提升。”
为什么 .Verb 操作没有设置管理员权限?
我正在 Windows Server 2008 R2 Standard 上进行测试。
【问题讨论】:
-
也许这会有所帮助? stackoverflow.com/questions/133379/…
-
Verb仅适用于将UseShellExecute设置为true。 -
@DarkFalcon 好像已经完成了,谢谢。
-
@DarkFalcon 您需要将 UseShellExecute 设置为 true 才能尊重动词,并且必须将其设置为“false”以重定向标准输出。你不能两者都做。
标签: c# uac runas processstartinfo