无忧启动论坛

标题: 在bat代码前面有没有什么好的代码获取管理员权限的 [打印本页]

作者: j2rong    时间: 昨天 14:46
标题: 在bat代码前面有没有什么好的代码获取管理员权限的
不借助别的exe,比较有效的。
作者: nttwqz    时间: 昨天 14:55
可以参考一下

但是完全不依赖外部命令,检测可以做到,提权这个真没研究过,毕竟无论vbs还是ps都是需要解释器的,有大神感兴趣了可以研究一下纯批处理内置命令提权方法。
作者: 辰羿    时间: 昨天 14:56
  1. @ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(
  2. powershell -Command "Start-Process '%~f0' -Verb RunAs"&&EXIT)
复制代码

作者: a66    时间: 昨天 15:00
  1. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
复制代码




作者: a66    时间: 昨天 15:01
  1. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
  2. cd /d "%~dp0"
复制代码




作者: a66    时间: 昨天 15:01
  1. if not "%1"=="am_admin" (
  2. powershell -Command "Start-Process '%0' -ArgumentList 'am_admin' -Verb RunAs"
  3. exit
  4. )
复制代码




作者: a66    时间: 昨天 15:01
  1. if exist "%SystemRoot%\SysWOW64" path %path%;%p%\SysNative;%SystemRoot%\SysWOW64;%~dp0
  2. bcdedit >nul
  3. if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
  4. :UACPrompt
  5. %1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
复制代码




作者: a66    时间: 昨天 15:02
  1. >NUL 2>&1 REG.exe query "HKU\S-1-5-19" || (
  2.     ECHO SET UAC = CreateObject^("Shell.Application"^) > "%TEMP%\Getadmin.vbs"
  3.     ECHO UAC.ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\Getadmin.vbs"
  4.     "%TEMP%\Getadmin.vbs"
  5.     DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL
  6.     Exit /b
  7. )
复制代码




作者: a66    时间: 昨天 15:02
  1. >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
  2. if '%errorlevel%' NEQ '0' (
  3. goto UACPrompt
  4. ) else ( goto gotAdmin )
  5. :UACPrompt
  6. echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
  7. echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
  8. "%temp%\getadmin.vbs"
  9. exit /B
  10. :gotAdmin
  11. if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
复制代码




作者: j2rong    时间: 昨天 15:13
辰羿 发表于 2026-2-23 14:56

收到谢谢
作者: pole87898843    时间: 昨天 15:16
如果想保留参数,可以把楼上大佬们的代码改一下,比如:
  1. set "ROOT=%~dp0" & REG.EXE QUERY "HKU\S-1-5-19">NUL 2>&1
  2. IF %ERRORLEVEL% EQU 1 ( CMD /U /C ECHO. CreateObject^("Shell.Application"^).ShellExecute "%~f0 ", " %*", "", "runas", 1 > "%Temp%\GetAdmin.vbs"& "%Temp%\GetAdmin.vbs" & DEL "%Temp%\GetAdmin.vbs" & EXIT /B )
  3. pushd "%~dp0"
复制代码

主要是这句话
ECHO. CreateObject^("Shell.Application"^).ShellExecute "%~f0 ", " %*", "", "runas", 1
作者: 2314840143    时间: 昨天 15:35
围观
作者: l3429900    时间: 昨天 15:44
不会
作者: kangaroo7758    时间: 昨天 16:58
检测可以做到
作者: cpc    时间: 昨天 17:02
本帖最后由 cpc 于 2026-2-23 17:24 编辑

感谢楼上诸位……我的 bat 文件带有特殊符号 &  没能成功...








...

作者: 忧心的启    时间: 昨天 19:00
我只知道如果不是管理权限的可以提示,真不懂怎么直接提权。学习学习。还有现在的杀毒软件这么毒,不可能给你乱运行东西的,除非不装这些毒软件才有机会研究这个。
作者: ebaqiang    时间: 昨天 22:48
进来学习一下
作者: askgrass    时间: 昨天 23:22
围观
作者: gordonhf    时间: 19 小时前
路过看看
作者: lxl1638    时间: 19 小时前
首先要明白cmd的命令,有内部命令如cd、dir等,和外部命令,外部命令就是exe之类,仅靠内部命令不可能完成这样的功能,一定要借助外部命令
作者: 2011monoso    时间: 18 小时前
管理员权限
作者: 徒自伤悲    时间: 10 小时前
学习学习,反正也学不会
作者: Forget_dust    时间: 9 小时前
fltmc >nul || (powershell -c "saps '%~f0' -verb runas" && exit :: -Win h)
作者: win82    时间: 9 小时前
辰羿 发表于 2026-2-23 14:56

学习一下
作者: since1979    时间: 8 小时前
谢谢各位大佬分享!学习了
作者: 溪流花落    时间: 8 小时前
进来学习下!!
作者: wu733    时间: 2 小时前
lxl1638 发表于 2026-2-24 00:45
首先要明白cmd的命令,有内部命令如cd、dir等,和外部命令,外部命令就是exe之类,仅靠内部命令不可能完成 ...

这几天刚好在研究DOS命令,比如.bat和.cmd的区别,感谢分享经验。
作者: Hendy12345    时间: 2 小时前
光bat不行,必须借助vbs  js 或 powershell  调用,加 runas 参数就可以




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3