jinggangshi 发表于 2026-8-18 00:46:01

感谢分享。

tlzsw 发表于 2026-8-18 00:58:12

感谢大佬整理分享

201287zr 发表于 2026-8-28 17:24:32

在你提供的代码基础上精简了一下,部分代码实现感觉更合理一点:

@ECHO OFF
PUSHD "%~DP0" & SETLOCAL ENABLEDELAYEDEXPANSION
SET "Run_flag=%WinDir%\Temp\UAC_TEMP_FLAG"

REM 提权限后是否隐藏运行窗口,0默认不隐藏,1隐藏
SET "hidden=0"

IF /I "%username%" EQU "system" GOTO :runas
REG QUERY "HKU\S-1-5-19" >NUL 2>NUL && GOTO :runas

REM 关闭UAC或普通账户执行时,由于无法获取管理员权限会导致无限弹窗,此处代码确保第二次调用时能正常退出
DIR /B "%Run_flag%" && (RMDIR /S /Q "%Run_flag%" & ENDLOCAL & ECHO 无法提升到管理员权限! & SET /P "=请按任意键退出..." <NUL & PAUSE >NUL & EXIT /B) || MKDIR "%Run_flag%"

POWERSHELL.EXE /? >NUL 2>NUL && SET "psh=1" || SET "psh=0"

SET "argv=%*"
IF DEFINED argv (
    IF "%psh%"=="1" SET "argv=%argv:"="""%"
    IF "%psh%"=="0" SET "argv=%argv:"=""%"
)

SET vshow=1
IF %hidden% EQU 1 (SET "winstyle=-WindowStyle Hidden" & SET vshow=0)

IF "%psh%"=="1" (POWERSHELL -nop -Command "Start-Process cmd.exe -Verb RunAs %winstyle% -ArgumentList '/c \""""%~f0""" %argv%\"'" >NUL 2>NUL & EXIT /B)

IF "%psh%"=="0" (
    ECHO CreateObject^("Shell.Application"^).ShellExecute "cmd.exe", "/c """"%~f0"" %argv%""", "", "runas", %vshow% > "%temp%\Admin.vbs"
    CSCRIPT.EXE //Nologo "%temp%\Admin.vbs" >NUL 2>NUL & DEL /F /Q "%temp%\Admin.vbs" >NUL 2>NUL & EXIT /B
)

:runas
:: ON THE Privilege Var UAC ::
ECHO 传递参数:%*


PAUSE & EXIT /B

weifengcz 发表于 2026-8-29 09:02:56

感谢分享

redyear2026 发表于 2026-8-29 17:12:24

本帖最后由 redyear2026 于 2026-8-29 17:17 编辑

   查 winPE 系统并没有 cmd 提权说法,故仅需针对完整系统就可以了
   win7 系统开始标配 powershell 组件,故仅用 powershell 代码实现 cmd 提权即可,且代码更轻量化
   据此给一个简化的版本如下,其中改用系统兼容性和效率据说更好的 fltmc 完成检测提权状态,调整了开启延迟变量的顺序,以便兼容命令行参数中可能包含的 ! 字符,以下版本兼容命令行参数有无两种实况,且命令行参数可包含用双引号包裹的空格和 ^&(<|>) 等特殊字符...

test.bat
@echo off &set "w=" &set argv=%*
   REM 若被提权窗口须隐藏,请删除本行 set 之前的所有字符 set "w=-win hidden"
fltmc>nul 2>nul || (
   setlocal enabledelayedexpansion
   if "%~1" neq "" set argv=!argv:"=\"!
   powershell -c "start cmd.exe %w% -arg ' /c \"\"%~f0\" !argv!\" ' -verb runas" >nul 2>nul &exit/b )
REM 从以下行载入须提权运行的原脚本代码(示例如下两行)
echo,%*
pause
REM 原脚本代码结束
exit/b

2011chenrongbo 发表于 2026-9-2 14:43:43

感谢分享

doojuu 发表于 7 天前

谢谢分享!
页: 1 [2]
查看完整版本: 自动提权执行批处理模板自用版