无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 595|回复: 30
打印 上一主题 下一主题

[原创] 自用自动提权批处理模板

[复制链接]
跳转到指定楼层
1#
发表于 昨天 17:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hlowld 于 2025-12-25 10:06 编辑

@ECHO OFF & PUSHD "%~DP0" & set "titl=f%random%"
reg QUERY "HKU\S-1-5-19" >nul 2>nul && goto :runas
set stat=0 & start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","%*",,"runas",1)(window.close)
::exit
:checktitl
if %stat% equ 2 (exit) else (timeout /t 1 /nobreak >nul & tasklist /v /fi "imagename eq cmd.exe" | findstr /i /c:"管理员:  %titl%" >nul && (if %stat% equ 0 set stat=1) ||(if %stat% equ 1 set stat=2) & goto :checktitl)
:runas
title %titl%


::自动提权批处理模板,适用于启用UAC且mshta和vbs正常的系统,文件名支持汉字字母数字空格和`~!#$)-_+[{]}'.  参数支持汉字字母数字和`~!@#$*()-_+\:'./?  不支持参数被双引号包裹
::如果注释第4行,则自动提权执行结束后才退出,用于start /wait方式被调用,如 start /wait "" "他 `~!#$)-_+[{]}'..cmd" a1 我`~!@#$*()-_+\:'./?  
::以下为提权执行的脚本
echo 入参: %*
reg QUERY "HKU\S-1-5-19"
timeout /t 10 /nobreak >nul


特点见注释
部分流行模板个人印象:
fltmc>nul||mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close)&&exit
好像是kkocdko原创的,优秀,很长一段时间都在用
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
最巧妙,一行搞定,利用入参注释符,省去了是否有权限的判断,但导致不支持被带参数提权

我见过的所有提权模板,当被start /wait 方式调用时,尝试提权后就会立即执行后续语句,无法等待提权执行结束后才执行后续语句,我这个模板实现了这个功能,当然是可选的,如果不需要这个,取消第4行的注释即可

mshta vbscript:CreateObject("Shell.Application").ShellExecute方式,适用于启用UAC且mshta和vbs正常的系统,在禁用UAC的系统上基本会死循环,除非用较长的脚本来特殊处理。
12.25更新:等待提权执行结束后才执行后续语句的功能不完善,没有将随机的窗口标题传递给提权后的进程,只是提权前和提权后的进程在很短时间内相继运行,获取到的随机数相同,碰巧基于随机数的窗口标题变量相同。
看来还是得用powershell才行。

2#
发表于 昨天 17:19 | 只看该作者
好方法
回复

使用道具 举报

3#
发表于 昨天 17:29 | 只看该作者
感谢分享
回复

使用道具 举报

4#
发表于 昨天 17:47 | 只看该作者
感谢分享
回复

使用道具 举报

5#
发表于 昨天 18:04 | 只看该作者
支持原创
回复

使用道具 举报

6#
发表于 昨天 18:15 | 只看该作者
非常优秀,支持原创
回复

使用道具 举报

7#
发表于 昨天 18:18 | 只看该作者
感谢分享好东东
回复

使用道具 举报

8#
发表于 昨天 18:19 | 只看该作者
看不明白
回复

使用道具 举报

9#
发表于 昨天 18:23 | 只看该作者
感谢分享
回复

使用道具 举报

10#
发表于 昨天 18:52 | 只看该作者
感谢分享!
回复

使用道具 举报

11#
发表于 昨天 19:03 | 只看该作者
感谢分享!
回复

使用道具 举报

12#
发表于 昨天 19:05 | 只看该作者
感谢分享
回复

使用道具 举报

13#
发表于 昨天 19:06 | 只看该作者
谢谢楼主分享
回复

使用道具 举报

14#
发表于 昨天 19:27 | 只看该作者
感谢分享
回复

使用道具 举报

15#
发表于 昨天 20:26 | 只看该作者
感谢分享
回复

使用道具 举报

16#
发表于 昨天 21:25 | 只看该作者
好东西,感谢分享
回复

使用道具 举报

17#
发表于 昨天 22:53 | 只看该作者
batch提权真是永恒的话题哈……
回复

使用道具 举报

18#
发表于 昨天 22:58 | 只看该作者
感谢分享
回复

使用道具 举报

19#
发表于 11 小时前 | 只看该作者
路过看看
回复

使用道具 举报

20#
发表于 11 小时前 | 只看该作者
感谢分享
回复

使用道具 举报

21#
发表于 10 小时前 | 只看该作者
非常优秀,支持原创
回复

使用道具 举报

22#
发表于 3 小时前 | 只看该作者
感谢分享
回复

使用道具 举报

23#
发表于 1 小时前 | 只看该作者
支持原创,感谢楼主分享!
回复

使用道具 举报

24#
发表于 1 小时前 | 只看该作者
多谢楼主分享
回复

使用道具 举报

25#
发表于 1 小时前 | 只看该作者
感谢分享
回复

使用道具 举报

26#
发表于 1 小时前 | 只看该作者
感谢分享
回复

使用道具 举报

27#
发表于 1 小时前 | 只看该作者
不知道有沒有萬用的,因為 Windows 11 之後要取消vbs了。
我現在用最多的是這一個。

  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);
复制代码



回复

使用道具 举报

28#
发表于 半小时前 | 只看该作者
禁用UAC的系统用powershell好像也不行
回复

使用道具 举报

29#
发表于 半小时前 | 只看该作者
厉害了,看看
回复

使用道具 举报

30#
发表于 14 分钟前 | 只看该作者
谢谢分享!!!!!!!!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-12-25 11:57

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表