Windows 批处理自启动脚本 + 以管理员身份运行完整教程
本文档提供一个完整的解决方案:实现,同时加入用户名白名单验证,并确保程序始终以管理员权限运行。
核心技巧:通过启动一个已设置为“以管理员身份运行”的快捷方式,来保证权限提升不会丢失。
最终效果
- 只有白名单中的用户登录时才会自动运行程序
- 程序一定以管理员权限启动
- 不允许的用户会看到拒绝提示并自动退出
- 启动后批处理窗口自动关闭,不留任何停顿提示(适合后台自启)
第一部分:创建以管理员身份运行的快捷方式
-
打开文件夹
路径:C:\Users\cloud-guest\Desktop\GameTools\auto-bgi -
找到主程序的可执行文件
通常是auto-bgi.exe(或类似名称的 .exe 文件) -
右键该
.exe文件 → 创建快捷方式
系统会在同一文件夹生成一个 “auto-bgi.exe - 快捷方式.lnk” 文件 -
重命名快捷方式
将其重命名为:auto-bgi(直接去掉“- 快捷方式”字样,扩展名 .lnk 会自动隐藏) -
右键这个快捷方式(务必点快捷方式本身)→ 属性
-
切换到 “兼容性” 标签页 或 “快捷方式” 标签页 点击
高级 -
勾选 “以管理员身份运行此程序”
-
点击 应用 → 确定
-
(推荐)避免每次弹出 UAC 提示:
在“兼容性”页点击 “更改所有用户的设置” → 再次勾选“以管理员身份运行此程序” → 应用 → 确定 -
(可选)美化图标:
在“快捷方式”标签页点击“更改图标”,从原 exe 中选择喜欢的图标
完成:现在文件夹中有一个名为 auto-bgi 的快捷方式文件,它已具备管理员权限。
第二部分:完整批处理脚本
将以下内容复制保存为 .bat 文件,例如:auto_bgi_自启动.bat
@echo off
chcp 65001 >nul
title auto_bgi 自启动
color 0c
mode con cols=60 lines=20
:: 要启动的快捷方式路径(必须指向上面创建的管理员快捷方式)
set "START_EXE=C:\Users\cloud-guest\Desktop\GameTools\auto-bgi\auto-bgi"
:: 允许运行的用户名(多个用空格分隔,大小写不敏感)
set "allowed_users=cloud-guest admin player"
set "current_user=%USERNAME%"
:: 检查当前用户是否在白名单中
set "found=0"
for %%u in (%allowed_users%) do (
if /i "%current_user%"=="%%u" set "found=1"
)
if "%found%"=="1" (
goto success
) else (
cls
echo.
echo ============================================
echo 权限验证失败
echo ============================================
echo.
echo 当前用户名: %current_user%
echo 不属于允许运行此软件的用户。
echo.
echo 允许的用户: %allowed_users%
echo.
echo 程序将在5秒后自动退出...
timeout /t 5 >nul
exit
)
:success
cls
echo.
echo ============================================
echo 验证通过,欢迎使用!
echo ============================================
echo.
echo 当前用户名: %current_user%
echo 正在启动软件...
timeout /t 1 >nul
:: 启动管理员权限快捷方式(会自动提升权限)
start "" "%START_EXE%"
::echo.
::echo 软件已启动,按任意键关闭此窗口...
::pause >nul
exit
关键说明
START_EXE指向的是快捷方式(auto-bgi,无扩展名),而不是.exe文件start "" "%START_EXE%"会完整继承快捷方式的所有属性,包括管理员权限- 最后三行已被注释,启动后窗口会自动关闭(适合开机自启不干扰用户)
第三部分:设置开机自启动(可选)
方法一:启动文件夹(最简单)
- 按
Win + R→ 输入shell:startup或shell:common startup→ 回车 - 将上面保存的
.bat文件(或其快捷方式)复制到打开的文件夹中
方法二:任务计划程序(更稳定,可延迟启动)
- 搜索并打开“任务计划程序”
- “创建基本任务” → 触发器选择“当我登录时”
- 操作 → “启动程序” → 浏览选择你的
.bat文件 - 最后一步勾选“以最高权限运行”
修改白名单用户
只需编辑脚本中这一行:
set "allowed_users=cloud-guest admin player"
用空格分隔添加或删除用户名即可。
完成!
现在系统登录时会自动进行用户名验证,只有允许的用户才能启动 auto-bgi,且程序必定以管理员权限运行。