如何在 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 命令?

如何在 Mac Pro 上以管理员身份运行终端

XP怎样用管理员身份运行cmd

检测 Java 应用程序是不是以 Windows 管理员身份运行

在 Windows Server 2019 上以域用户身份运行时,IIS 站点不会显示静态内容

如何在 Windows XP 上使用 pip 安装 selenium 包?