推荐使用任务计划程序设登录触发任务,因其可稳定启用最高权限并支持延迟启动,避免因网络或磁盘未就绪导致失败,且能绕过powershell执行策略和会话隔离限制。

要在Windows 11开机登录后自动运行一个BAT批处理脚本,必须绕过PowerShell执行策略限制和用户会话上下文隔离问题,直接将脚本注入系统级启动链路,否则双击能运行、开机却静默失败。
方法一:放进当前用户启动文件夹(最简,无需管理员权限)
该方式依赖Shell层对shell:startup路径的轮询机制,用户登录即触发,适合纯本地操作、不需提权的脚本。
1、按 Win + R,输入 shell:startup,回车打开启动文件夹。
2、右键你的 deploy.bat → “显示更多选项” → “创建快捷方式”。若提示“无法在此位置创建”,就先拖到桌面再建。
3、把快捷方式复制粘贴进刚打开的启动文件夹;遇到UAC弹窗点“继续”。
4、右键该快捷方式 → “属性” → 切换到“快捷方式”选项卡 → 检查“目标”栏是否形如:"C:\Windows\System32\cmd.exe" /c "D:\Tasks\deploy.bat"。【路径含空格时,必须用英文双引号完整包裹.bat文件路径】
5、点击“确定”保存。重启验证即可。
方法二:用任务计划程序设登录触发任务(推荐用于需提权或延时场景)
当脚本要操作服务、修改系统设置或调用未签名PowerShell命令时,此法可稳定启用最高权限,且支持延迟启动——避免因网络/磁盘未就绪导致失败。
第一步:打开任务计划程序
按 Win + R → 输入 taskschd.msc → 回车。
第二步:创建基础任务
右侧“操作”栏 → 点“创建基本任务”,命名如 RunDeployOnLogin,描述写清用途,点“下一步”。
第三步:设触发器
选“当用户登录时” → 点“下一步”。
第四步:配置操作
选“启动程序” → 点“下一步” →
在“程序或脚本”栏点“浏览”,选 C:\Windows\System32\cmd.exe;
在“添加参数”栏填:/c "D:\Tasks\deploy.bat";
在“起始于”栏填脚本所在目录:D:\Tasks(确保相对路径引用正确)→ 点“下一步”。
第五步:完成并启用
勾选“当单击‘完成’时,打开此任务属性对话框”,点“完成” → 切换到“常规”选项卡 → 勾选“不管用户是否登录都要运行”和“使用最高权限” → 点击“确定”。【若不勾这两项,脚本将以低权限后台会话运行,多数系统级命令会静默失败】
方法三:注册表Run项直写(仅限当前用户,无GUI交互)
适用于部署环境或远程批量配置,不依赖文件系统可见性,但注册表键值一旦写错可能导致登录卡顿,务必核对路径。
方法一:手动添加
按 Win + R → 输入 regedit → 回车 → 导航至:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
右键右侧空白处 → 新建 → 字符串值 → 命名为 DeployScript → 双击编辑 → 数值数据填:cmd.exe /c "D:\Tasks\deploy.bat"
方法二:命令行一键写入(更安全)
以普通用户身份打开CMD或PowerShell,执行:reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v DeployScript /t REG_SZ /d "cmd.exe /c \"D:\Tasks\deploy.bat\"" /f
执行后无报错即成功。注销再登录即可生效。
方法四:通过组策略配置登录脚本(仅限Win11专业版/企业版)
此方式将脚本绑定至用户策略,适用于域环境或需要集中管控的多机部署,脚本会在用户登录前由Netlogon服务加载,执行时机早于Shell启动。
1、按 Win + R → 输入 gpedit.msc → 回车。
2、导航至:
计算机配置 → Windows 设置 → 脚本(启动/关机)→ 启动 → 双击右侧“启动”。
3、点“添加” → 在“脚本名称”中浏览并选中你的 deploy.bat → 点“确定” → 关闭策略编辑器。
4、立即应用策略:以管理员身份运行CMD,执行:gpupdate /force
重启后脚本将在用户登录界面出现前执行。注意:【此路径下脚本运行于SYSTEM上下文,无法访问用户桌面或交互式GUI,只适合纯后台任务】











