使用具有管理员权限的 bat 文件启动程序,而无需询问 UAC

Posted

技术标签:

【中文标题】使用具有管理员权限的 bat 文件启动程序,而无需询问 UAC【英文标题】:Start a program with a bat file taking administrator privileges without asking with UAC 【发布时间】:2015-01-17 13:55:34 【问题描述】:

我使用的是 Windows 10,我想启动名为 PhoneMyPC 的程序。当 Windows 启动时,该程序永远不会启动,因为它需要批准显示 UAC 窗口的操作并获得管理员访问权限。我想在不询问管理员访问权限和显示 UAC 窗口的情况下在启动时启动该程序。该程序还有一个名为PhoneMyPC_Helper 的服务。我目前正在使用以下命令,但它根本不起作用。

命令:

runas Administrator C:\Users\Malvinarios\Documents\Programs\SoftwareForMe Inc\PhoneMyPC\PhoneMyPC.exe

我认为如果我可以在该命令行中添加密码,它可能会起作用,但我不知道如何。这个我也试过了……

命令:

start /d "C:\Users\Malvinarios\Documents\Programs\SoftwareForMe Inc\PhoneMyPC" PhoneMyPC.exe

没有任何作用。 Windows 启动时甚至没有显示任何内容,但是当我手动运行 bat 文件时它可以工作。

有人知道吗?提前谢谢你。

【问题讨论】:

如果可能的话,UAC 的整个想法将毫无意义 确实如此。但是有没有其他方法可以让我在启动时运行这个程序? 如果你在 8.1 中使用,你可以试试这个:code.google.com/p/google-security-research/issues/detail?id=118 作为标准,在提示符下键入yourexecutablename /?可能会显示命令行选项。 / 可能是 --- 甚至被省略; ? 可能是 hhelp,具体取决于设计者的心态。或者可能是该程序不提供此类信息 - 当然,制造商的网页上似乎没有提及。也许如果他们已经实现了这个标准方法,你可能会从响应中得到一些线索。 【参考方案1】:

使用 Windows 资源管理器转到相关的可执行文件。右键单击并选择属性。选择兼容性选项卡。选中“以管理员身份运行此程序”复选框。如果需要,您还可以通过单击底部的“更改所有用户的设置”按钮在系统范围内执行此操作。

如果你不想每次都输入密码,那你就走运了——每次都会提示 UAC ......但至少这样你就不会忘记运行这个程序每次都是管理员。

【讨论】:

以上是关于使用具有管理员权限的 bat 文件启动程序,而无需询问 UAC的主要内容,如果未能解决你的问题,请参考以下文章

如何从具有管理员权限的进程中启动没有管理员权限的新进程?

C# 使用登录的用户凭据启动进程

win 10怎么以管理员权限启动bat脚本

win7中运行bat批处理管理员权限问题

如何从 C++ 代码创建具有管理员权限的服务

运行以管理员身份启动 .jar 的 .bat 文件