我使用此处描述的应用程序清单文件让我的应用程序的一部分以提升的权限(它需要)运行。
因此,当需要时,主程序只需使用 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 上正常运行。
更新:
另请参见类似问题的答案。这基本上是相同的代码,只是也使用了参数。
Windows XP 没有 UAC。
您需要Process.Start
使用具有管理权限的用户的登录凭据进行调用。
您可以使用该runas
命令。