如何让bat文件已管理员身份运行

如题所述

有些批处理需要很高的权限执行才能达到我们所需要的效果,将以下代码放入批处理最顶部就可以实现以管理员身份运行了。

@echo off

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

if '%errorlevel%' NEQ '0' (

goto UACPrompt

) else ( goto gotAdmin )

:UACPrompt

echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"

echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

"%temp%\getadmin.vbs"

exit /B

:gotAdmin

if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

扩展资料

bat常用命令:

1、Echo 命令

语法: echo [{on|off}] [message]

ECHO [ON | OFF]   打开回显或关闭回显功能。

ECHO              显示当前回显设置。

ECHO [message]    显示信息。

echo off 表示在此语句后所有运行的命令都不显示命令行本身;默认是on,on时会显示如: C:\文件夹路径>命令行。

在实际应用中我们会把这条命令和重定向符号( 也称为管道符号,一般用 > >> ^ )结合来实现输入一些命令到特定格式的文件中。

Sample: echo off

Sample: echo hello world  (显示出“hello world”)

Sample: echo Windows Registry Editor Version 5.00 > c:\setupreg.reg (此前还没有 setupreg.reg 这个文件)

Sample: echo "SourcePath"="D:\\Win2003\\" >> c:\setupreg.reg   (追加内容进 setupreg.reg 这个文件)

2、@ 命令

表示不显示@后面的命令,(在入侵过程中自然不能让对方看到你使用的命令啦)

@ 与 echo off 相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。

Sample: @echo off  (此语句常用于开头,表示不显示所有的命令行信息,包括此句)

Sample: @echo please wait a minite...

Sample: @format X: /q/u/autoset

(format 这个命令是不可以使用/y这个参数的,可喜的是微软留了个autoset这个参数给我们,效果和/y是一样的。)

3、Goto 命令

语法:goto label (label是参数,指定所要转向的批处理程序中的行。)

指定跳转到标签行,找到标签行后,程序将处理从下一行开始的命令。

label标签的名字可以随便起,但是最好是有意义的,字母前必须加个冒号“:”来表示这个字母是标签。

goto命令就是根据这个冒号来寻找下一步跳到到那里。经常与 if 配合使用,根据不同的条件来执行不同的命令组。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-10-06
你好

通过计算机管理永久开启Administrator管理员账号登录
右键桌面的“计算机” - 选择“管理”;依次展开“计算机管理(本地) - 系统工具 - 本地用户和组 - 用户”在右边的文件里面找到“Administrator”并双击它,在“常规”选项下将“账户已禁用”的勾去掉,这样就开启了 Administrator(管理员)账户;注:以后打开任何程序都会默认以管理员的身份运行。

对各别程序进行设置,让它以后以管理员身份运行

右键你想要设置的程序然后选择“属性”;换到“兼容性”选项卡上,在特权等级栏下勾选“以管理员身份运行此程序”,单击“确定

、通过快捷方式设置

在任意一个快捷方式上鼠标右键单击“属性”,切换到“快捷方式”选项卡,单击“高级”按钮,在“高级属性”对话框中,勾选以下“用管理员身份运行”的选项,注:快捷方式的管理员设置也可按照第二种方法本回答被提问者采纳
第2个回答  2021-01-18

第3个回答  2020-12-19
第4个回答  2020-12-30

相似回答