
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion
::::::::::::::::【仅修改这3项配置】::::::::::::::::
set "DING_WEBHOOK= 填写WEBHOOK参数"
set "KEYWORD=设备上线"
set "RD_INSTALLER=填写文件名"
::::::::::::::::::::::::::::::::::::::::::::::::::::
set "SELF=%~f0"
set "STARTUP_LNK=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\RustDesk自动部署.lnk"
set "RD_EXE=C:\Program Files\RustDesk\rustdesk.exe"
:: 1. 自动管理员提权+后台隐藏运行
fltmc >nul 2>&1 || (
powershell -Command "Start-Process cmd -ArgumentList '/c ""%SELF%""' -Verb RunAs -WindowStyle Hidden"
exit /b
)
:: 2. 一键把自身快捷方式写入开机启动(只执行一次,不会重复添加)
if not exist "%STARTUP_LNK%" (
powershell -Command "$ws=New-Object -COM WScript.Shell;$lnk=$ws.CreateShortcut('%STARTUP_LNK%');$lnk.TargetPath='%SELF%';$lnk.WorkingDirectory='%~dp0';$lnk.WindowStyle=7;$lnk.Save()"
)
:: 3. 已安装直接跳转上报,不重复安装
if exist "%RD_EXE%" goto GET_RD_INFO
:: 安装包不存在直接静默退出
if not exist "%~dp0%RD_INSTALLER%" exit /b
:: 静默无界面安装RustDesk
"%~dp0%RD_INSTALLER%" --silent-install >nul 2>&1
timeout /t 8 /nobreak >nul
"%RD_EXE%" --install-service >nul 2>&1
timeout /t 3 /nobreak >nul
:GET_RD_INFO
:: 读取设备ID
for /f "delims=" %%i in ('"%RD_EXE%" --get-id 2^>nul') do set "RD_ID=%%i"
if "!RD_ID!"=="" exit /b
:: 钉钉上报单行消息,JSON不会换行报错
set "MSG=%KEYWORD%|主机名:%COMPUTERNAME%|设备ID:!RD_ID!|使用固定密码连接"
curl -X POST "%DING_WEBHOOK%" -H "Content-Type:application/json" -d "{\"msgtype\":\"text\",\"text\":{\"content\":\"!MSG!\"}}" >nul 2>&1
exit使用说明
1、只保留这单个 bat 文件,和安装包放在同一个文件夹;
2、右键以管理员身份运行一次,自动完成:
. 给自己创建快捷方式放进开机启动文件夹
. 后台静默安装 HyDesk
. 自动读取 ID 上报钉钉
3、后续每次开机:系统自动后台运行这个脚本,不会弹出任何 CMD 黑窗口;
. 已安装就只执行上报,不会重复安装;
4、彻底抛弃 VBS,不会再出现「找不到文件 80070002」报错。
评论 (0)