|
|
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))
- 如果提权成功,提权执行结束后才退出,支持被start /wait方式调用
- 四种情况下(启用UAC普通用户、启用UAC管理员、禁用UAC普通用户、禁用UAC管理员)都不会死循环
- 支持一般参数传递(不支持参数被双引号包裹),如 start /wait "" "新建 批处理.cmd" a1 a2
- 判断UAC是否启用的方法为查询注册表,极端情况下可能不准(如修改了注册表但未重启生效)
kkocdko原创的vbs版
fltmc>nul||mshta vbscript:CreateObject("Shell.Application").ShellExecute("%~dpnx0","%*",,"runas",1)(window.close)&&exit
- 支持一般参数传递(不支持参数被双引号包裹),如 start "" "新建 批处理.cmd" a1 a2
- 尝试提权后立即退出,不适合被start /wait方式调用
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))
|
评分
-
查看全部评分
|