Windows启动 - 如何在批处理文件中以管理员身份运行程序

6
在Windows 8.1上,我正在尝试从启动期间调用的批处理文件中启动一个程序,并希望该程序以管理员身份运行。 以下是我的操作步骤:
1. 我有一个位于c:\program files\MyProgram下的prog.exe程序。 2. EXE标记为“以管理员身份运行”。 3. 在c:\program files\MyProgram下有一个名为RunEXE.bat的批处理文件。它包含各种内容,在最后一行包含“start prog.exe”。 4. 在“C:\programdata\Microsoft\Windows\Start Menu\Programs\StartUp”下有一个指向RunEXE.BAT的快捷方式。 5. 当我重新启动电脑时,我希望该快捷方式启动RunEXE.BAT,然后运行PROG.EXE。
但事实并非如此。当我尝试以管理员身份运行时,会发出短暂的“bleep”声,好像Windows正在显示一个消息询问是否确认以管理员身份运行该程序,但屏幕上没有任何东西显示。
a)如果我不将快捷方式和exe标记为以管理员身份运行,则会启动EXE。 b)如果我将快捷方式和exe标记为以管理员身份运行,则不会启动EXE。 c)如果我将快捷方式标记为不要以管理员身份运行,而将EXE标记为以管理员身份运行,则EXE会被启动,但不会以管理员身份运行。 d)启动EXE的快捷方式(没有批处理)。快捷方式未标记为以管理员身份运行,而EXE已标记:EXE未运行。 e)启动EXE的快捷方式(没有批处理)。快捷方式未标记为以管理员身份运行,而EXE未标记:EXE正在运行,但不是以管理员身份运行。
我尝试完全禁用UAC - 结果相同。 我还尝试使用另一个EXE代替批处理文件,结果也相同。
那么,有没有一种方法可以从启动中的快捷方式以管理员身份运行EXE?
2个回答

6

您可以通过任务计划程序来完成此操作。

打开运行对话框Win + R并运行以下命令:

%SystemRoot%\system32\taskschd.msc

点击 创建任务...

  1. 设置名称(我将其设置为FooBar)
  2. 勾选 以最高权限运行
  3. 切换到 操作 选项卡,点击 新建...,浏览到您的prog.exe文件
  4. 保存任务

打开您的.bat文件,在您想要运行prog.exe的位置添加以下内容

schtasks /run /tn "FooBar"

如果不需要管理员权限,Bat文件无需以管理员身份运行,prog.exe将会在没有任何提示的情况下启动。


0

只要你的电脑上有PowerShell,提升批处理脚本就很容易:

net file 1>nul 2>nul && goto :run || powershell -ex unrestricted -Command "Start-Process -Verb RunAs -FilePath '%comspec%' -ArgumentList '/c %~fnx0 %*'"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接