无忧启动论坛
标题:
自用自动提权批处理模板
[打印本页]
作者:
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 一樣可以用。
至於支不支援參數沒試。
goto="init" /*
echo Hello world
:"init"
@echo off &title Windows Update &mode 80,10 &color 1f &setlocal &if "%1"=="init" shift &shift &goto :main
reg query "HKEY_USERS\S-1-5-20\Environment" /v temp 1>nul 2>nul && goto :main || echo. &echo Requesting rights..
call cscript /nologo /e:JScript "%~f0" get_rights "%1" & exit */
function get_rights(fn) { var console_init_shift='/c start "init" "'+fn+'"'+' init '+fn+' '+WSH.Arguments(1);
WSH.CreateObject("Shell.Application").ShellExecute('cmd.exe',console_init_shift,"","runas",1); }
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