Синтаксис для выполнения на разблокировке рабочей станции - PullRequest
0 голосов
/ 10 декабря 2018

У меня есть сценарий, который создает запланированное задание, и мне нужно, чтобы он выполнялся «при разблокировке рабочей станции», но я не могу найти синтаксис для него.

Я собираюсь сделать что-то вроде:

(New-ScheduledTaskTrigger -whatDoiWriteHere).

1 Ответ

0 голосов
/ 10 декабря 2018

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 (без явного кода), расширение модуля для поддержки этих типов должно быть относительно простым.Я не стал вдаваться в подробности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...