PowerShell 中怎么配置计划任务在用户登录后才开始执行

冬丽同学_3762

冬丽同学_3762

2026-09-26

407人浏览

原创

powershell配置登录触发任务的核心是组合new-scheduledtasktrigger -atlogon、正确用户上下文(-userid补全域名)、-runlevel highest权限及-allowstartifonbatteries等设置,避免静默失败。

在 powershell 中配置“用户登录后执行”的计划任务,核心是使用 new-scheduledtasktrigger -atlogon 创建登录触发器,并搭配正确的用户上下文、权限和运行条件。直接用向导容易遗漏关键设置,导致任务静默失败——比如程序启动了却看不到窗口、脚本不执行、或只在首次登录生效。

基础配置:创建登录即启任务

这是最常用场景,适合启动桌面程序(如聊天工具、监控面板):

  • 先定义触发器:$trigger = New-ScheduledTaskTrigger -AtLogOn
  • 再定义动作(以启动 Notepad 为例):$action = New-ScheduledTaskAction -Execute "notepad.exe"
  • 指定当前用户并启用最高权限:$principal = New-ScheduledTaskPrincipal -UserId "$env:USERDOMAIN\$env:USERNAME" -LogonType Interactive -RunLevel Highest
  • 注册任务:Register-ScheduledTask -TaskName "NotepadOnLogin" -Trigger $trigger -Action $action -Principal $principal

增强可靠性:添加延迟与电源适配

登录瞬间桌面环境可能未就绪,尤其对 GUI 程序易失败;笔记本拔电时默认停用任务。需主动覆盖默认限制:

windows-healing-gateway
windows-healing-gateway

通过任务计划程序自动监控并自修复 Windows 上的 OpenClaw Gateway,具备 AI 诊断和 Telegram 报警功能。

下载
  • 加入 20 秒延迟(避免 Shell 未加载):$trigger = New-ScheduledTaskTrigger -AtLogOn -RandomDelay (New-TimeSpan -Seconds 20)
  • 允许电池模式下运行:$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopOnIdleEnd
  • 注册时传入设置:-Settings $settings

运行脚本或带参数的程序

若要执行 PowerShell 脚本、批处理,或需绕过执行策略,不能直接填 .ps1 路径,必须调用解释器:

  • 操作中“程序”填:powershell.exe
  • “参数”填:-ExecutionPolicy Bypass -File "C:\Scripts\startup.ps1"
  • 务必指定工作目录:-WorkingDirectory "C:\Scripts"(防止相对路径失效)
  • 完整动作示例:$action = New-ScheduledTaskAction -Execute "powershell.exe" -Argument '-ExecutionPolicy Bypass -File "C:\Scripts\startup.ps1"' -WorkingDirectory "C:\Scripts"

验证与常见问题

任务创建后不会自动测试,需手动确认是否真正可用:

  • 立即运行一次:Start-ScheduledTask -TaskName "NotepadOnLogin"
  • 查看历史日志:Get-ScheduledTaskInfo -TaskName "NotepadOnLogin" 或打开任务计划程序 → 查看“历史记录”选项卡
  • 若提示“拒绝访问”,检查是否漏了 -RunLevel Highest;若无反应,确认 -UserId 是否正确($env:USERNAME 不含域名,需补全为 $env:USERDOMAIN\$env:USERNAME)
  • 用户改密码后,任务凭据会过期,需重新注册或在任务属性中更新凭据

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

3670

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

3193

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

2253

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

5410

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

5082

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

3033

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

2525

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

2739

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

277

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Buffalo框架快速入门指南
Buffalo框架快速入门指南

共0课时 | 0人学习

Conan 2 安装指南
Conan 2 安装指南

共0课时 | 0人学习