提升进程以管理员身份运行不起作用

时间:2009-10-21 22:11:19

标签: c# windows windows-vista uac

将进程升级为以管理员身份运行不起作用。如果我从提升的命令提示符运行该应用程序,它运行正常。但我的下面的代码没有。

Process setupws = new Process();
setupws.StartInfo.FileName = @"setupws.exe";
setupws.StartInfo.Verb = "runas";
setupws.StartInfo.UseShellExecute = true;
setupws.Start();
setupws.WaitForExit();

setupws.exe文件运行正常,而不是管理员。

我做错了什么?

由于

PS。我还在app.manifest文件中使用了highestAvailable和requireAdministrator

2 个答案:

答案 0 :(得分:1)

您需要在清单中将安装程序标记为requiredExecutionLevel level = requireAdministrator,请参阅Create and Embed an Application Manifest (UAC)

PS。 requireAdministrator应该在setupws.exe的清单中。

答案 1 :(得分:1)

您是否以管理员身份运行了应用并尝试过这种方式?你可以这样做:

using System.Security.Permissions;

var mine = new EnvironmentPermission(PermissionState.Unrestricted);
mine.AddPathList(EnvironmentPermissionAccess.AllAccess, Environment.CurrentDirectory);