是否可以以管理员身份自动运行批处理文件

Ant*_*ntp 60 windows-7 batch-file

我想知道双击批处理文件时是否可以自动以管理员身份打开批处理文件,因为这些命令需要以管理员权限运行。

注意:我已经知道右键单击文件并单击Run As Administrator的解决方案,但这不是自动解决方案。

101*_*001 54

是的,您可以使用管理权限运行批处理文件。不幸的是,您不能直接从它自己的批处理文件中执行此操作。您需要首先创建该批处理文件的快捷方式并更改该快捷方式的属性才能使其工作。

要创建快捷方式,有多种方法,但最简单和最快的方法是使用上下文菜单中的“发送到”选项。

Right click batch file > Send to > Desktop (create shortcut)
Run Code Online (Sandbox Code Playgroud)

当然,您可以将快捷方式发送到您想要的任何位置。要提升批处理文件以管理员身份运行,请按照以下步骤操作:

  1. 右键单击您刚刚创建的快捷方式(应该在桌面上或您发送它的任何位置)
  2. 在快捷方式选项卡下,单击高级...按钮。
  3. 选中以管理员身份运行复选框,然后在模式窗口和主属性窗口中按 OK。
  4. 通过双击运行快捷方式,批处理文件应以管理员身份运行。

  • 您可以始终强制批处理文件调用快捷方式,并让快捷方式传递一个参数来知道不要调用快捷方式。您可以在 ``@echo off`` 正下方插入类似``if "%~1" == "" start %USERPROFILE%\Desktop\Shortcut.lnk && GOTO :EOF`` 的内容,并将快捷方式链接到` `program.bat a`` 而不仅仅是 ``program.bat``。 (2认同)
  • Ifedi 写道“接受的答案 [Tech1337 的这个] 确实有效。但我发现在 Windows 7 中,每次单击快捷方式时,我都不得不忍受 UAC 对话框。” <-- 虽然有人说它没有 UAC 也能工作 (2认同)

小智 36

正如Ben Gripka 在对另一个问题的回答中所发布

REM --add the following to the top of your bat file--


@echo off

:: BatchGotAdmin
:-------------------------------------
REM  --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"=""
    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    pushd "%CD%"
    CD /D "%~dp0"
:--------------------------------------
Run Code Online (Sandbox Code Playgroud)


fed*_*ich 6

在 Windows 7 上

  1. 创建该批处理文件的快捷方式

  2. 右键单击快捷方式文件

  3. 单击高级按钮以找到以管理员身份运行的复选框

检查下面的屏幕截图

截屏

  • 如果有人赶时间,我怀疑他们会滚动到底部寻找答案。无论如何,谢谢 (3认同)

小智 5

接受的答案确实有效。但是我发现在Windows 7中,每次点击快捷方式时,我都不得不忍受UAC对话框。恕我直言,这大大降低了这个问题中的“自动”!

然后我发现在我自己的情况下,有.bat问题的文件是由Task Scheduler运行的。在这种情况下,检查任务选项卡Run with highest privileges上的General选项可以很好地解决问题。在.bat随后没有任何麻烦以管理员身份运行。

PS:我没有意识到我不能在这个答案上上传图片,因为我现在有一个漂亮的小截图!或者我可以吗?

  • 如果您添加指向图像的链接,有人会为您内联它们。 (2认同)