如何在Windows XP上以管理员身份运行其他应用程序

时间:2011-01-17 17:15:26

标签: c# .net windows-xp uac elevation

我使用了here所述的应用程序清单文件,让我的应用程序的一部分以提升的权限运行(它需要)。
因此,在需要时,主程序只使用Process.Start调用一个小程序集,然后处理需要管理员权限的任务。

但是,如何在Windows XP上执行相同的操作? 似乎XP只是忽略了这个清单,并在当前用户环境中运行小程序集。

3 个答案:

答案 0 :(得分:9)

here中的以下代码正是我所需要的:

ProcessStartInfo processStartInfo = new ProcessStartInfo("path", "args");
processStartInfo.Verb = "runas";

using (Process process = new Process())
{
   process.StartInfo = processStartInfo;
   process.Start();
   process.WaitForExit();
}

所以实际上你需要在ProcessStartInfo.Verb上设置“runas”。 使用附加的清单,此代码现在可以在Windows XP,Vista和7上正常运行。

<强>更新
另见this answer to a similar question。这基本上是相同的代码,只是使用参数。

答案 1 :(得分:3)

您可以使用runas命令。

答案 2 :(得分:2)

Windows XP没有UAC。

您需要使用具有管理权限的用户的登录凭据来呼叫Process.Start