powershell - 如何删除每个任务的所有任务触发器?
问题描述
如何完全删除每个任务的所有任务触发器。下面的脚本只为一项任务一次删除一个任务触发器。剧本由托尼·欣克尔编写。
$taskName = "MyTask"
$triggerToDelete = 1 (THIS PART, how do I write ALL)
# connect to Task Scheduler:
$service = New-Object -ComObject Schedule.Service
$service.Connect($env:COMPUTERNAME)
# pick a specific task in a container:
$folder = $service.GetFolder('\')
$task = $folder.GetTask($taskName)
# get task definition and change it:
$definition = $task.Definition
$definition.Triggers.Remove($triggerToDelete)
# write back changed task definition:
# 4 = Update
$folder.RegisterTaskDefinition($task.Name, $definition, 4, $null, $null, $null)
解决方案
您需要将所有触发器向后枚举并一一删除。请注意,触发索引是从 1 开始的,而不是从 0 开始的。更新:添加了枚举所有任务的代码。
$service = New-Object -ComObject Schedule.Service
$service.Connect($env:COMPUTERNAME)
$folder = $service.GetFolder('\')
$tasks = $folder.gettasks(0)
foreach ($t in $tasks)
{
$definition = $t.Definition
$triggersCount = $definition.Triggers.Count
for($id=$triggersCount; $id -gt 0; $id--){
$definition.Triggers.Remove($id)
}
$folder.RegisterTaskDefinition($t.Name, $definition, 4, $null, $null, $null)
}
推荐阅读
- r - 当需要 data.table 中的 `measure = patterns("x", "y")` 时,使用 tidyverse (dplyr) 函数融化
- mysql - 如何在关系表中显示学术头衔/学位
- angular - 从 firebase 集合中获取文档对象
- python - 使用 Python 进行复杂词搜索多个文件
- conv-neural-network - 我可以同时使用扩张卷积和最大池化层吗?
- angular - 角材料
刷新页面时隐藏 - node.js - 无法等待 fs.appendFile
- javascript - node.js 将 json 附加到未使用数组的 JSON 文件中
- typescript - 使接口的一部分不是可选的
- python - 为什么某些关键输入在此示例中不起作用?(游戏)