我使用了here所述的应用程序清单文件,让我的应用程序的一部分以提升的权限运行(它需要)。
因此,在需要时,主程序只使用Process.Start调用一个小程序集,然后处理需要管理员权限的任务。
但是,如何在Windows XP上执行相同的操作? 似乎XP只是忽略了这个清单,并在当前用户环境中运行小程序集。
答案 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
。