Get-ScheduledTask -TaskPath "\"
может отображать все задачи, но в модуле нет очевидных команд или методов для удаления триггеров. Я не видел пути, и этот ответ , кажется, подтверждает это.
Из вашего вопроса неясно, вызывает ли $folder = $service.GetFolder('\')
ошибку или его последующий вызов $tasks = $folder.gettasks(0)
. В этом ответе я предполагаю, что это последнее, только потому, что именно здесь я, похоже, столкнулся с проблемами в моей собственной среде.
Я думаю, что это может быть комбинация разрешений и / или скрытого статуса задача. Во-первых, можете ли вы попробовать работать с повышенными правами?
Причина, по-моему, это после $folder = $service.GetFolder('\')
Я смог получить список задач в папке root, однако в списке было только 2 из 9. Когда я работал с повышенными правами, я получил 6 из 9.
Я даже попробовал старый модуль «TaskScheduler» пакета PowerShell, который внутри использует почти тот же код COM, и получил те же результаты.
Теперь я, наконец, смог получить подход COM для отображения всех 9 в сеансе с повышенными привилегиями, перевернув аргумент GetTasks на 1:
$tasks = $folder.gettasks(1)
Я считаю, что этот аргумент означает показывать или не показывать скрытые задачи , однако принимает только [Int]. Итак, 0 = ложь, 1 = правда. Я подтвердил это, посмотрев на код в старом модуле «TaskScheduler». Включение логического значения, например $ true, в аргумент не сработает, подойдет только [Int].
Примечание. В левом нижнем углу на первой вкладке окна есть скрытый флажок. Диалог свойств задачи. В некоторых случаях корреляция совпадает с тем, что я обнаружил в консоли.
В любом случае попробуйте эти 2 вещи:
- Запуск с повышенными правами.
- Измените аргумент на 1
Дайте мне знать, как это получается. Спасибо.