我有一个创建计划任务的脚本,我需要它“在工作站解锁”运行,但我找不到它的语法 .
我的意图是做一些事情:
(New-ScheduledTaskTrigger -whatDoiWriteHere).
New-ScheduledTaskTrigger 不支持此特定触发器类型( MSFT_TaskSessionStateChangeTrigger ) . 幸运的是,它只是现有CIM类的包装器,您仍然可以直接使用它们:
New-ScheduledTaskTrigger
MSFT_TaskSessionStateChangeTrigger
$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 并检查其属性来轻松地填充所需的值 .
Get-ScheduledTask
有趣的是,因为 ScheduledTasks cmdlet仅使用CDXML元数据定义(没有显式代码),所以扩展模块以支持这些类型应该相对容易 . 不过,我没有进一步研究过 .
ScheduledTasks
1 回答
New-ScheduledTaskTrigger
不支持此特定触发器类型(MSFT_TaskSessionStateChangeTrigger
) . 幸运的是,它只是现有CIM类的包装器,您仍然可以直接使用它们:您可以通过在任务计划程序中手动创建模板任务,然后在其上使用
Get-ScheduledTask
并检查其属性来轻松地填充所需的值 .有趣的是,因为
ScheduledTasks
cmdlet仅使用CDXML元数据定义(没有显式代码),所以扩展模块以支持这些类型应该相对容易 . 不过,我没有进一步研究过 .