无忧启动论坛

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

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

但是完全不依赖外部命令,检测可以做到,提权这个真没研究过,毕竟无论vbs还是ps都是需要解释器的,有大神感兴趣了可以研究一下纯批处理内置命令提权方法。
作者: 辰羿    时间: 6 小时前
  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    时间: 6 小时前
  1. %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
复制代码




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




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




作者: a66    时间: 6 小时前
  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    时间: 6 小时前
  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    时间: 6 小时前
  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    时间: 6 小时前
辰羿 发表于 2026-2-23 14:56

收到谢谢
作者: pole87898843    时间: 6 小时前
如果想保留参数,可以把楼上大佬们的代码改一下,比如:
  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    时间: 5 小时前
围观
作者: l3429900    时间: 5 小时前
不会
作者: kangaroo7758    时间: 4 小时前
检测可以做到
作者: cpc    时间: 4 小时前
本帖最后由 cpc 于 2026-2-23 17:24 编辑

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








...

作者: 忧心的启    时间: 2 小时前
我只知道如果不是管理权限的可以提示,真不懂怎么直接提权。学习学习。还有现在的杀毒软件这么毒,不可能给你乱运行东西的,除非不装这些毒软件才有机会研究这个。




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