无忧启动论坛
标题:
在bat代码前面有没有什么好的代码获取管理员权限的
[打印本页]
作者:
j2rong
时间:
6 小时前
标题:
在bat代码前面有没有什么好的代码获取管理员权限的
不借助别的exe,比较有效的。
作者:
nttwqz
时间:
6 小时前
可以参考一下
但是完全不依赖外部命令,检测可以做到,提权这个真没研究过,毕竟无论vbs还是ps都是需要解释器的,有大神感兴趣了可以研究一下纯批处理内置命令提权方法。
作者:
辰羿
时间:
6 小时前
@ECHO OFF&(PUSHD "%~DP0")&(REG QUERY "HKU\S-1-5-19">NUL 2>&1)||(
powershell -Command "Start-Process '%~f0' -Verb RunAs"&&EXIT)
复制代码
作者:
a66
时间:
6 小时前
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
复制代码
作者:
a66
时间:
6 小时前
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit
cd /d "%~dp0"
复制代码
作者:
a66
时间:
6 小时前
if not "%1"=="am_admin" (
powershell -Command "Start-Process '%0' -ArgumentList 'am_admin' -Verb RunAs"
exit
)
复制代码
作者:
a66
时间:
6 小时前
if exist "%SystemRoot%\SysWOW64" path %path%;%p%\SysNative;%SystemRoot%\SysWOW64;%~dp0
bcdedit >nul
if '%errorlevel%' NEQ '0' (goto UACPrompt) else (goto UACAdmin)
:UACPrompt
%1 start "" mshta vbscript:createobject("shell.application").shellexecute("""%~0""","::",,"runas",1)(window.close)&exit
复制代码
作者:
a66
时间:
6 小时前
>NUL 2>&1 REG.exe query "HKU\S-1-5-19" || (
ECHO SET UAC = CreateObject^("Shell.Application"^) > "%TEMP%\Getadmin.vbs"
ECHO UAC.ShellExecute "%~f0", "%1", "", "runas", 1 >> "%TEMP%\Getadmin.vbs"
"%TEMP%\Getadmin.vbs"
DEL /f /q "%TEMP%\Getadmin.vbs" 2>NUL
Exit /b
)
复制代码
作者:
a66
时间:
6 小时前
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
复制代码
作者:
j2rong
时间:
6 小时前
辰羿 发表于 2026-2-23 14:56
收到谢谢
作者:
pole87898843
时间:
6 小时前
如果想保留参数,可以把楼上大佬们的代码改一下,比如:
set "ROOT=%~dp0" & REG.EXE QUERY "HKU\S-1-5-19">NUL 2>&1
IF %ERRORLEVEL% EQU 1 ( CMD /U /C ECHO. CreateObject^("Shell.Application"^).ShellExecute "%~f0 ", " %*", "", "runas", 1 > "%Temp%\GetAdmin.vbs"& "%Temp%\GetAdmin.vbs" & DEL "%Temp%\GetAdmin.vbs" & EXIT /B )
pushd "%~dp0"
复制代码
主要是这句话
ECHO. CreateObject^("Shell.Application"^).ShellExecute "%~f0 ", " %*", "", "runas", 1
作者:
2314840143
时间:
5 小时前
围观
作者:
l3429900
时间:
5 小时前
不会
作者:
kangaroo7758
时间:
4 小时前
检测可以做到
作者:
cpc
时间:
4 小时前
本帖最后由 cpc 于 2026-2-23 17:24 编辑
感谢楼上诸位……
然
我的 bat 文件带有特殊符号 & 没能成功...
...
作者:
忧心的启
时间:
2 小时前
我只知道如果不是管理权限的可以提示,真不懂怎么直接提权。学习学习。还有现在的杀毒软件这么毒,不可能给你乱运行东西的,除非不装这些毒软件才有机会研究这个。
欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/)
Powered by Discuz! X3.3