Windows中可用PowerShell的ScheduledTasks模块自动化管理计划任务:查看、创建(含定时/登录触发)、启停、删除及导出导入XML配置。

如果您希望在Windows系统中通过PowerShell自动化执行重复性操作,需借助ScheduledTasks模块中的命令管理计划任务。以下是具体操作步骤:
一、查看当前系统中的所有计划任务
使用Get-ScheduledTask命令可列出系统中全部已注册的任务,便于确认是否存在同名冲突或了解现有任务结构。
1、以管理员身份打开PowerShell。
2、输入命令:Get-ScheduledTask | Select-Object TaskName, State, TaskPath。
3、按回车键执行,结果将显示任务名称、当前状态(如Ready、Running)及所在路径。
二、创建一个基础定时任务
通过Register-ScheduledTask配合New-ScheduledTaskTrigger和New-ScheduledTaskAction,可定义触发条件与执行动作。
1、定义触发器:每晚22:00运行一次,输入:$trigger = New-ScheduledTaskTrigger -Daily -At "22:00"。
2、定义操作:启动记事本程序,输入:$action = New-ScheduledTaskAction -Execute "notepad.exe"。
3、注册任务:任务名为“DailyNotepad”,输入:Register-ScheduledTask -TaskName "DailyNotepad" -Trigger $trigger -Action $action。
三、创建带用户上下文的交互式任务
若任务需在用户登录后运行并访问桌面资源,须指定用户账户及运行权限,否则可能因会话隔离而失败。
1、获取当前用户名:输入:$user = "$env:USERDOMAIN$env:USERNAME"。
2、设置登录触发器:输入:$trigger = New-ScheduledTaskTrigger -AtLogOn。
3、注册任务并指定用户与最高权限:输入:Register-ScheduledTask -TaskName "OnLogonNotify" -Trigger $trigger -Action (New-ScheduledTaskAction -Execute "msg.exe" -Argument "* Hello") -User $user -RunLevel Highest。
四、启用、禁用与删除计划任务
任务注册后默认处于启用状态,但可根据需要动态控制其生命周期,避免误触发或残留无效任务。
1、启用任务:输入:Enable-ScheduledTask -TaskName "DailyNotepad"。
2、禁用任务:输入:Disable-ScheduledTask -TaskName "DailyNotepad"。
3、删除任务:输入:Unregister-ScheduledTask -TaskName "DailyNotepad" -Confirm:$false。
五、导出与导入计划任务配置
通过XML格式导出任务定义,可在其他Windows设备上复用相同调度逻辑,适用于批量部署场景。
1、导出任务为XML文件:输入:Get-ScheduledTask -TaskName "DailyNotepad" | Export-ScheduledTask -Xml "C:\Temp\DailyNotepad.xml"。
2、在目标机器上导入该XML:输入:Register-ScheduledTask -Xml (Get-Content "C:\Temp\DailyNotepad.xml" | Out-String) -TaskName "DailyNotepad-Copy"。










