无忧启动论坛

标题: 自用自动提权批处理模板 [打印本页]

作者: hlowld    时间: 3 天前
标题: 自用自动提权批处理模板
本帖最后由 hlowld 于 2025-12-25 16:50 编辑

2025.12.25更新一下:
几个版本供按需选择

1、powershell版
reg QUERY "HKU\S-1-5-19" >nul 2>nul || (reg QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA | findstr /i /c:"0x1" >nul 2>nul && (powershell -nop -Command "Start-Process cmd -Verb RunAs -wait -ArgumentList '/c \""""%~f0""" %*\"'" >nul 2>nul & exit)||(echo LUA disabled,elevation aborted & exit))


特点:
1、如果提权成功,提权执行结束后才退出,支持被start /wait方式调用
2、四种情况下(启用UAC普通用户、启用UAC管理员、禁用UAC普通用户、禁用UAC管理员)都不会死循环
3、支持一般参数传递(不支持参数被双引号包裹),如 start /wait "" "新建 批处理.cmd" a1 a2
4、判断UAC是否启用的方法为查询注册表,极端情况下可能不准(如修改了注册表但未重启生效)

2、kkocdko原创的vbs版
fltmc>nul||mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close)&&exit
特点:
1、创建进程比powershell版快
2、支持一般参数传递(不支持参数被双引号包裹),如 start "" "新建 批处理.cmd" a1 a2
3、尝试提权后立即退出,不适合被start /wait方式调用
4、禁用UAC普通用户 场景会死循环

3、vbs修改版,特点同vbs版,但
禁用UAC普通用户 场景不会死循环
fltmc>nul || (reg QUERY "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System" /v EnableLUA | findstr /i /c:"0x1" >nul 2>nul && (mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close)&&exit)||(echo LUA disabled,elevation aborted & exit))


总而言之,没有完美版


作者: a66    时间: 3 天前
好方法
作者: erdos47    时间: 3 天前
感谢分享
作者: ynb168c    时间: 3 天前
感谢分享
作者: wn168cn@163.com    时间: 3 天前
支持原创
作者: wu733    时间: 3 天前
非常优秀,支持原创
作者: promrhxq    时间: 3 天前
感谢分享好东东
作者: yyz2191958    时间: 3 天前
看不明白
作者: ewq11111    时间: 3 天前
感谢分享
作者: hhcha    时间: 3 天前
感谢分享!
作者: handsome_xiang    时间: 3 天前
感谢分享!
作者: smile_z    时间: 3 天前
感谢分享
作者: wang1126    时间: 3 天前
谢谢楼主分享
作者: 燕飞龙    时间: 3 天前
感谢分享
作者: cpc    时间: 3 天前
感谢分享
作者: Flame1363    时间: 3 天前
好东西,感谢分享
作者: deuteros_gex    时间: 3 天前
batch提权真是永恒的话题哈……
作者: simonlong    时间: 3 天前
感谢分享
作者: gordonhf    时间: 前天 00:40
路过看看
作者: chibuzhu    时间: 前天 00:42
感谢分享
作者: ebaqiang    时间: 前天 01:09
非常优秀,支持原创
作者: yvhkkss    时间: 前天 08:33
感谢分享
作者: 董大    时间: 前天 10:16
支持原创,感谢楼主分享!
作者: w7408    时间: 前天 10:18
多谢楼主分享
作者: luanqh    时间: 前天 10:27
感谢分享
作者: yzw92    时间: 前天 10:37
感谢分享
作者: guies    时间: 前天 10:39
本帖最后由 guies 于 2025-12-25 18:45 编辑

不知道有沒有萬用的,因為 Windows 11 之後要取消vbs了。
我現在用最多的是這一個。試了一下,更新至最新的 Win10 Win11 一樣可以用。
至於支不支援參數沒試。

  1. goto="init" /*

  2. echo Hello world

  3. :"init"
  4. @echo off &title Windows Update &mode 80,10 &color 1f &setlocal &if "%1"=="init" shift &shift &goto :main
  5. reg query "HKEY_USERS\S-1-5-20\Environment" /v temp 1>nul 2>nul && goto :main || echo. &echo  Requesting rights..
  6. call cscript /nologo /e:JScript "%~f0" get_rights "%1" & exit */
  7. function get_rights(fn) { var console_init_shift='/c start "init" "'+fn+'"'+' init '+fn+' '+WSH.Arguments(1);
  8.   WSH.CreateObject("Shell.Application").ShellExecute('cmd.exe',console_init_shift,"","runas",1); }
  9. if (WSH.Arguments.length>=1 && WSH.Arguments(0)=="get_rights") get_rights(WSH.ScriptFullName);
复制代码





作者: 风之暇想    时间: 前天 10:59
禁用UAC的系统用powershell好像也不行
作者: dxy796    时间: 前天 11:13
厉害了,看看
作者: ouanyu    时间: 前天 11:42
谢谢分享!!!!!!!!
作者: 什么都不说吧    时间: 前天 11:51
本帖最后由 什么都不说吧 于 2025-12-25 11:56 编辑

win10,打齐了补丁之后,如果批处理是存放在比较重要的系统文件夹下面的,你这种提权就会失效。
windows11,打齐了补丁之后,你这个方法直接失效。
算了,我也放出我使用的批处理提权代码,从win7到现在最新的win11 25h2都没有问题:

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if %errorlevel% NEQ 0 (
    powershell Start-Process -Verb RunAs -FilePath "%0"
    exit /b
)
cd /d "%~dp0"

这个代码是从很多提权代码中最终选出来的,其他提权代码或多或少都有一些问题。

作者: liuyang2025    时间: 前天 12:10
谢谢分享,很全面
作者: guong    时间: 前天 12:49
谢谢分享!
作者: wwoldok    时间: 前天 13:35
学习了,感谢分享
作者: win82    时间: 前天 13:39
感谢分享
作者: ruanfen    时间: 前天 14:30
学习收藏了
作者: fegr    时间: 前天 15:17
多谢楼主分享
作者: sulong    时间: 前天 16:36
谢谢楼主分享
作者: ILOVEQQ    时间: 前天 18:12
谢谢分享




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