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

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

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

以下代码可以满足我的需求:

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上正常运行。

更新:
另见这个类似问题的答案 。 这基本上是相同的代码,只是使用参数。

您可以使用runas命令。

Windows XP没有UAC。

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