DOS脚本分析

权限自动提取

>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
)

nul 2>&1 REG.exe query “HKU\S-1-5-19”:检查是否已经拥有管理员权限。S-1-5-19是本地服务帐户的安全标识符(SID),通常用于判断是否有足够的权限。如果查询失败(意味着没有管理员权限),则执行后面的操作。

||: 表示如果前面的命令失败,则执行后面的部分。

ECHO SET UAC = CreateObject(“Shell.Application”) > “%TEMP%\Getadmin.vbs”:该行命令生成一个VBScript文件,通过Shell对象以管理员权限重新运行当前批处理文件(%~f0表示当前脚本的完整路径,runas表示以管理员权限运行)。

"%TEMP%\Getadmin.vbs": 运行刚才生成的VBScript文件,提升管理员权限。

DEL /f /q “%TEMP%\Getadmin.vbs” 2>null: 删除临时生成的VBScript文件。

Exit /b: 提权后退出当前脚本,重新运行提权的版本。

:check_network
ping *** >nul
if %errorlevel% equ 0 (
    goto next
) else (
    echo 网络连接中断,程序将不会运行。
    pause
    goto check_network
)

ping *** >nul:通过ping命令检测指定服务器(***)是否有效。如果ping成功,则不会显示输出。

if %errorlevel% equ 0:errorlevel是批处理脚本,用于记录上一个命令的退出代码的环境变量。ping命令成功时,errorlevel会为0。这里判断是否成功,如果成功,跳转到:next标签。

else:如果ping失败(即网络连接中断状态),则显示提示信息并进入pause,等待用户按键,然后重新检查网络连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YJlio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值