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

时间:2015-04-15 00:54:10

标签: windows-8.1 uac

在Windows 8.1上,我尝试从启动期间调用的批处理文件启动程序,我希望程序以管理员身份运行。 这是我的工作:

  1. 我在c:\ program files \ MyProgram
  2. 下有一个程序prog.exe
  3. EXE被标记为“以管理员身份运行”
  4. 在c:\ program files \ MyProgram下有一个名为RunEXE.bat的批处理文件。它包含各种各样的东西,最后它包含一行“start prog.exe”
  5. 在“C:\ programdata \ Microsoft \ Windows \ Start Menu \ Programs \ StartUp”下有一个RunEXE.BAT的快捷方式。
  6. 当我重新启动PC时,我希望快捷方式启动RunEXE.BAT,然后运行PROG.EXE。
  7. 但它不会发生。有一个短暂的“哔哔”声,好像Windows正在显示一条消息,要求确认程序应该以管理员身份运行,但屏幕上看不到任何内容。

    a)如果我标记了快捷方式& exe NOT 以管理员身份运行,然后启动EXE b)如果我标记了快捷方式&以管理员身份执行运行,然后EXE 启动 c)如果我将 NOT 的快捷方式标记为以管理员身份运行,并将EXE 标记为作为管理员,那么EXE 已启动 >不以管理员身份运行 d)EXE的启动快捷方式。 (没有批次)。短语标记为以管理员身份运行,EXE 标记:EXE未运行。
    e)EXE的启动快捷方式。 (没有批次)。短语标记为以管理员身份运行,EXE 已标记:EXE正在运行,但不是管理员。

    我尝试完全禁用UAC - 结果相同。 我还尝试使用另一个EXE代替批处理,结果相同。

    那么 - 是否有办法从启动时获得EXE的快捷方式,以管理员身份运行EXE?

2 个答案:

答案 0 :(得分:6)

您可以在任务计划程序的帮助下完成此操作。

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

%SystemRoot%\system32\taskschd.msc

点击Create Task...

  1. 设置名称(我将其设置为FooBar)
  2. 检查Run with highest privileges
  3. 切换到Actions标签,New....,浏览到 prog.exe
  4. 保存任务
  5. 转到 .bat 文件,然后转到要运行 prog.exe 的地方

    schtasks /run /tn "FooBar"
    

    Bat文件不必以管理员身份运行(如果它不需要),prog.exe将在没有任何提示的情况下升级。

答案 1 :(得分:0)

只要您的计算机上有PowerShell,就可以轻松提升批处理脚本:

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