无忧启动论坛

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

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

[复制链接]
跳转到指定楼层
1#
发表于 前天 17:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 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))


总而言之,没有完美版

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#
发表于 昨天 00:40 | 只看该作者
路过看看
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

23#
发表于 昨天 10:16 | 只看该作者
支持原创,感谢楼主分享!
回复

使用道具 举报

24#
发表于 昨天 10:18 | 只看该作者
多谢楼主分享
回复

使用道具 举报

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

使用道具 举报

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

使用道具 举报

27#
发表于 昨天 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);
复制代码




回复

使用道具 举报

28#
发表于 昨天 10:59 | 只看该作者
禁用UAC的系统用powershell好像也不行
回复

使用道具 举报

29#
发表于 昨天 11:13 | 只看该作者
厉害了,看看
回复

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2025-12-26 06:25

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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