1、任务什么时候做New-ScheduledTaskTrigger
主要参数:
时间相关参数:
-Once:一次性任务
-At <DateTime> # 具体时间
-RepetitionInterval <TimeSpan> # 重复间隔
-RepetitionDuration <TimeSpan> # 重复持续时间
-Daily:每天执行
-At <DateTime> # 每天几点
-DaysInterval <Int32> # 间隔几天(默认1)
-RandomDelay <TimeSpan> # 随机延迟时间
-Weekly:每周执行
-At <DateTime> # 每周几点
-DaysOfWeek <DayOfWeek[]> # 星期几(Monday, Tuesday...)
-WeeksInterval <Int32> # 间隔几周(默认1)
-Monthly:每月执行
-At <DateTime> # 每月几点
-DaysOfMonth <Int32[]> # 几号(1-31)
-MonthsOfYear <Month[]> # 哪几个月
-LastDayOfMonth # 每月最后一天
事件相关参数:
-AtStartup:系统启动时
-RandomDelay <TimeSpan> # 随机延迟
-RepetitionInterval <TimeSpan> # 重复间隔
-RepetitionDuration <TimeSpan> # 重复持续时间
-AtLogOn:用户登录时
-UserId <String> # 指定哪个用户登录时(默认当前用户)
-AtTaskCreation:任务创建/修改时
-OnIdle:系统空闲时
-IdleDuration <TimeSpan> # 空闲多长时间后触发
-OnEvent:事件日志触发
-Subscription <String> # XML事件查询
-Value <String[]> # 事件值
-OnRegistration:任务注册时
2、任务具体做什么事New-ScheduledTaskAction
主要参数:
-Execute:必须参数,指定要执行的程序路径
# 示例:
-Execute "powershell.exe"
-Execute "C:\Program Files\MyApp\myapp.exe"
-Argument:传递给程序的参数
# 示例:
-Argument "-File cleanup.ps1"
-Argument "/c backup.bat"
-Argument "-Command `"Get-Date`""
-WorkingDirectory:工作目录
# 示例:
-WorkingDirectory "C:\Scripts"
-Id:动作的ID(多个动作时需要)
3、任务执行时候遵循什么规则New-ScheduledTaskSettingsSet
主要参数:
执行控制:
-AllowStartIfOnBatteries:电脑使用电池时是否允许执行($true/$false)
-DontStopIfGoingOnBatteries:切换到电池供电时是否继续执行
-StartWhenAvailable:错过计划时间是否补执行
-WakeToRun:如果需要执行时电脑休眠,是否唤醒电脑
重试策略:
-RestartCount:任务失败后重试次数(0-999)
-RestartInterval:重试间隔时间(TimeSpan)
时间限制:
-ExecutionTimeLimit:任务最长执行时间(TimeSpan)
-DeleteExpiredTaskAfter:过期后多久删除任务(TimeSpan)
并行控制:
-MultipleInstances:多个实例并行策略
# 可选值:
"Parallel" # 允许并行
"Queue" # 排队等待
"IgnoreNew" # 忽略新的
"StopExisting" # 停止现有的
优先级:
-Priority:进程优先级(0-10,默认7)
# 数字越大优先级越低
0-4 = 实时优先级
5 = 高优先级
6-7 = 普通优先级(默认)
8-10 = 低优先级
其他:
-Hidden:是否隐藏任务(不在UI显示)
-RunOnlyIfNetworkAvailable:只在有网络时执行
-RunOnlyIfIdle:只在系统空闲时执行
-DisallowStartOnRemoteAppSession:远程会话时不允许启动
-UseUnifiedSchedulingEngine:使用统一调度引擎
4、任务由谁来执行New-ScheduledTaskPrincipal
主要参数:
账户指定:
-UserId:指定用户账户
# 示例:
-UserId "SYSTEM" # 系统账户
-UserId "NT AUTHORITY\SYSTEM" # 系统账户(完整)
-UserId "DOMAIN\username" # 域账户
-UserId "COMPUTERNAME\username" # 本地账户
-GroupId:指定用户组
# 示例:
-GroupId "Users" # 普通用户组
-GroupId "Administrators" # 管理员组
登录类型:
-LogonType:登录方式
# 可选值:
"None" # 无(用于组账户)
"Password" # 使用密码(需要指定密码)
"S4U" # 服务账户(Service-for-User)
"Interactive" # 交互式登录
"Group" # 组账户
"ServiceAccount" # 服务账户(如SYSTEM)
"InteractiveOrPassword" # 交互式或密码
权限级别:
-RunLevel:运行权限级别
# 可选值:
"Limited" # 标准用户权限
"Highest" # 最高权限(需要UAC提升)
其他:
-Id:主体ID
-ProcessTokenSidType:进程令牌SID类型
# 可选值:
"Default" # 默认
"Unrestricted" # 不受限制
"Limited" # 受限制
-RequiredPrivilege:需要的特权列表
-DisplayName:显示名称