powershell - 如何创建具有相同触发器的任务?
问题描述
如何创建具有相同触发器、属性等的已知任务。例如,它们都在用户登录时启动。这些任务有明确的名称,例如 Task_1、Task_2、Task_3 等。我不知道如何在 powershell 中使用 foreach 命令。
解决方案
任务可能非常难以处理。当我第一次阅读您的问题时,听起来您想将触发器从一个任务复制到其他几个任务。这是粗略的,但你可以这样做:
$Trigger = (Get-ScheduledTask -TaskName "NameOfTheTemplatTask").Triggers[0]
Set-ScheduledTask -TaskName "NameOfDestinationTask" -Trigger $Trigger
注意:您必须更新任务名称。
鉴于您对Alex_P 的回答的评论,我理解得更好。您只需要创建一个触发器,将其存储在一个变量中,然后将该变量指定为 New-ScheduledTask cmdlet 上的 -Triggers 参数的参数。
$NewAction = New-ScheduledTaskAction -Execute 'C:\windows\system32\notepad.exe'
$NewTrigger = New-ScheduledTaskTrigger -AtLogOn
$NewSchedTAsk = New-ScheduledTask -Trigger $NewTrigger -Action $NewAction
Register-ScheduledTask -TaskName TestTask -TaskPath "\" -Action $NewAction -Trigger $NewTrigger
显然这只是一个示例,您需要根据自己的环境和目的更新信息。
注意:不要忘记
Register-ScheduledTask
您可以将其包装在 ForEach 循环中,以获得尽可能多的任务......
$NewAction = New-ScheduledTaskAction -Execute 'C:\windows\system32\notepad.exe'
$NewTrigger = New-ScheduledTaskTrigger -AtLogOn
$Tasks = @('Task_1', 'Task_2', 'Task_3')
ForEach($Task in $Tasks)
{
$NewSchedTAsk = New-ScheduledTask -Trigger $NewTrigger -Action $NewAction
Register-ScheduledTask -TaskName $Task -TaskPath "\" -Action $NewAction -Trigger $NewTrigger
}
同样,这些只是为您提供路线图的示例,可以为您自己的环境解决这些问题。
您还应该查看托管所讨论 cmdlet的 scheduleTask 模块上的 MS Docs 。你会发现类似的例子,比我在飞行中拼凑起来的更好。
推荐阅读
- google-apps-script - 如何有条件地保护数据?
- python - numpy 将数组加载为单行数据而不是列
- java - NIO 选择器如何在不旋转的情况下实现主动发送消息
- scala - 当json字符串中缺少某些属性时,将json字符串反序列化为case类
- java - 如何调用一个微服务休息端点,该端点采用 int 来获取每个用户的实时响应
- mysql - 从连接表中获取最后一条记录
- html - 是否可以将这些 html 引导程序转移到反应应用程序?
- angular - Angular 中的谷歌地图
- visual-studio-code - 如何在 VScode 中为终端创建单独的窗口
- hybris - 如何在一个选项卡中隐藏现有属性并在另一个选项卡中显示它