Я не уверен, как это сделать в PowerShell, но я не думаю, что это поддерживается.
Например:
$tasks = schtasks /query
Будет хранить все задачи в переменной $tasks
Пример вывода:
Folder: \Microsoft\Windows\WindowsBackup
TaskName Next Run Time Status
======================================== ====================== ===============
ConfigNotification Disabled
Свойство «TaskName» не может быть указано так просто (т.е. $tasks.TaskName
)
Есть ли какой-либо другой способ ссылки на свойство TaskName в $tasks
переменной, например, как вы можете ссылаться на свойства в командлете get-service?
$services = gsv
$services | Where-Object { Write-Output $_.Name }
Ответы:
Используйте параметр / fo в schtasks, чтобы распечатать вывод как CSV, а затем преобразовать вывод в объект Powershell с помощью команды ConvertFrom-CSV .
Затем вы можете использовать поиск для конкретного имени задачи следующим образом
источник
Чтобы сделать то, что вы хотите, вам нужно создать пользовательский объект и заполнить объект данными из
schtasks
вывода. Это даст вам возможность делать то, что вы ищете. Я сделал проект на работе для этого некоторое время назад. У меня будет доступ к этому коду в воскресенье, и я опубликую его.Вот сценарий запроса запланированной задачи, который я создал, поскольку он был одним из моих первых сценариев, он не очень красивый, но в нем должна быть вся необходимая информация:
По сути, он запрашивает у сервера весь список запланированных задач и получает выходные данные в виде массива. Затем он ищет в выходных данных строку, содержащую определенную запланированную задачу. Как только это найдено, он генерирует массив строки данных для поиска задач (которая не имеет информации заголовка на данный момент). Затем, используя информацию заголовка, которую запланированная задача возвращает в виде массива, он создает пользовательский объект с каждым фрагментом информации заголовка в качестве свойства, которое затем заполняется данными из массива конкретной задачи.
Из-за способа создания объекта вы, вероятно, можете настроить этот сценарий, чтобы включить несколько запланированных задач. В существующем состоянии выходные данные фильтруются через переменную $ listHeaders, но вы можете воспользоваться этим и просто вывести объект $ arrTaskObj в канал, который позволит вам вызывать и получать доступ к свойствам.
источник
Я использую VisualCron, который является инструментом автоматизации, как планировщик задач. У него есть конкретная задача для выполнения Powershell. Существует два режима - inprocess, который позволяет вводить PS-код в VisualCron, а также имеется возможность ссылки на существующий PS-файл.
В любом случае вы можете использовать встроенные в переменные VisualCron для передачи информации непосредственно в скрипт Powershell.
источник