如何在 Windows XP 上以管理员身份运行另一个应用程序
Posted
技术标签:
【中文标题】如何在 Windows XP 上以管理员身份运行另一个应用程序【英文标题】:How to run another app as administrator on Windows XP 【发布时间】:2011-06-10 14:16:15 【问题描述】:我使用here 所述的应用程序清单文件让我的应用程序的一部分以提升的权限(它需要)运行。 因此,当需要时,主程序只需使用 Process.Start 调用一个小程序集,然后它会处理需要管理员权限的任务。
但是,我怎样才能在 Windows XP 上做同样的事情呢? 似乎 XP 只是忽略了这个清单并在当前用户上下文中运行小程序集。
【问题讨论】:
【参考方案1】:来自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。这基本上是相同的代码,只是使用了参数。
【讨论】:
问题是 XP SP3 的 Runas 对话框默认以当前用户的身份运行,甚至勾选“保护我的计算机和数据免受未经授权的程序活动” - 这实际上降低了权限! @eug :相当老的话题,但我今天在 Windows XP 下遇到了同样的问题。删除 'processStartInfo.Verb = "runas";'但保留它用于 Windows 7+(未在 Vista 下检查)【参考方案2】:Windows XP 没有 UAC。
您需要使用具有管理权限的用户的登录凭据调用Process.Start
。
【讨论】:
【参考方案3】:您可以使用runas
命令。
【讨论】:
以上是关于如何在 Windows XP 上以管理员身份运行另一个应用程序的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Nodejs 和 spawn 在 Windows 10 上以管理员身份运行一些 CMD 命令?
检测 Java 应用程序是不是以 Windows 管理员身份运行