New-ScheduledTaskTrigger
не поддерживает этот конкретный тип триггера (MSFT_TaskSessionStateChangeTrigger
).К счастью, это просто оболочка для существующих классов CIM, и вы все равно можете использовать их напрямую:
$stateChangeTrigger = Get-CimClass `
-Namespace ROOT\Microsoft\Windows\TaskScheduler `
-ClassName MSFT_TaskSessionStateChangeTrigger
$onUnlockTrigger = New-CimInstance `
-CimClass $stateChangeTrigger `
-Property @{
StateChange = 8 # TASK_SESSION_STATE_CHANGE_TYPE.TASK_SESSION_UNLOCK (taskschd.h)
} `
-ClientOnly
$task = New-ScheduledTask -Trigger $onUnlockTrigger -Action ...
Register-ScheduledTask -InputObject $task ...
Вы можете легко зашифровать требуемые значения, создав шаблонную задачу вручную в планировщике задач, а затем используя Get-ScheduledTask
на этом и проверяя его свойства.
Интересно, что поскольку командлеты ScheduledTasks
определяются только с использованием метаданных CDXML (без явного кода), расширение модуля для поддержки этих типов должно быть относительно простым.Я не стал вдаваться в подробности.