以管理员身份运行批处理文件
批处理文件由命令提示符执行的命令组成。 其中一些命令在没有管理员权限的情况下无法运行; 因此,以管理员身份运行批处理文件非常重要。
您可以手动以管理员身份运行批处理文件,方法是右键单击要运行的批处理文件并选择“以管理员身份运行”。
您还可以通过在批处理文件顶部添加一些代码来使其以管理员身份自动运行,而不是每次都手动执行。
或者,您还可以创建快捷方式并将其设置为从属性窗口以管理员身份运行。 每次双击批处理文件时,它将以管理员身份运行。
有多种方法可以以管理员身份自动运行批处理文件。 本教程将说明以管理员身份运行批处理文件的不同方法。
创建批处理文件的快捷方式以管理员身份运行
在管理模式下运行批处理文件的一种简单方法是创建快捷方式并将其设置为始终以管理员身份运行。 右键单击批处理文件,然后单击“创建快捷方式”以创建快捷方式。
将在桌面上创建一个快捷方式文件。 右键单击快捷方式文件,转到该快捷方式文件的“属性”窗口。
单击“快捷方式”选项卡下的“高级”,然后选中“以管理员身份运行”复选框。
就这样,快捷方式已设置为始终在管理模式下运行。 当您双击快捷方式文件时,将显示 UAC 窗口进行确认。
当您应用上述方法时,批处理文件的当前目录会发生变化; 这可能会导致错误,或者您的文件可能无法运行。 只需在批处理文件的顶部添加以下行即可避免这种情况。
@setlocal enableextensions
@cd /d "%~dp0"
示例:
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
::START OF THE PROGRAM::
echo "Check the system's energy efficiency"
powercfg-energy
上面的代码会将当前目录更改为批处理文件的位置。
输出:
编写批处理文件以管理员身份运行
使用 runas 命令以管理员身份运行批处理文件
如果批处理文件包含需要管理权限的特定行或一组行,则可以使用 runas 命令在管理模式下运行特定行。
@echo off
echo "Check the system's energy efficiency"
runas /user:sid "cmd /k ipconfig"
输出:
或者
@echo off
@setlocal enableextensions
@cd /d "%~dp0"
echo "Check the system's energy efficiency"
runas /user:sid "notepad C:\Users\sid\Desktop\testfile.bat"
上面的代码将在管理员用户下运行批处理文件。 如果出现提示,请输入密码。
您还可以使用 /savecred
保存密码并在下次运行批处理文件时使用它。 您只需输入密码一次。
输出:
创建 VBS 文件以以管理员身份运行批处理文件
创建批处理文件的快捷方式也会更改当前工作目录。
您可以改为在批处理文件的顶部添加以下代码。 这将以管理员模式运行批处理文件并保留在同一目录中。
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\adminmode.vbs" del "%temp%\adminmode.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\adminmode.vbs" && "%temp%\adminmode.vbs" && exit /B )
示例:
set "params=%*"
cd /d "%~dp0" && ( if exist "%temp%\adminmode.vbs" del "%temp%\adminmode.vbs" ) && fsutil dirty query %systemdrive% 1>nul 2>nul || ( echo Set UAC = CreateObject^("Shell.Application"^) : UAC.ShellExecute "cmd.exe", "/k cd ""%~sdp0"" && %~s0 %params%", "", "runas", 1 >> "%temp%\adminmode.vbs" && "%temp%\adminmode.vbs" && exit /B )
echo "Check the system's energy efficiency"
powercfg -energy
上面的代码检查文件是否在管理员模式下运行。 如果没有,它会创建一个 VBS 文件 adminmode.vbs,然后使用 runas 参数在管理员模式下重新运行批处理文件。
要访问批处理文件,我们使用 cd /d "%~dp0"
,其中:
- d - 扩展到驱动器号
- p - 扩展到路径
- 0 - 扩展到完整路径
%~dp0
将当前目录更改为批处理文件的目录。 当您运行批处理文件时,它将以管理员身份运行,并显示 UAC 提示进行确认。
输出:
总结
因此,我们讨论了以管理员身份运行批处理文件的两种不同方法。
此外,还有其他方法可以在管理模式下运行批处理文件,例如使用 elevate 实用程序、将批处理文件转换为 .exe 或安装 sudo 命令。 但是,即使您是初学者,上述方法也很容易实现。