我正在使用PowerShell通过COM与Windows7任务计划程序服务交互,通过任务计划程序2.0接口(例如ITaskDefinition)。我想从ITaskDefinition的触发器集合中提取特定触发器。似乎正确的提取特定触发器的方法是通过Item属性,该属性是一个索引属性。
我的第一次尝试大致如下:
$sched = New-Object -Com "Schedule.Service"
$sched.Connect()
$folder = $sched.GetFolder('\')
$task = $folder.GetTask("some task")
$triggers = $task.Definition.Triggers
$trigger = $triggers[0]
然而,最后一行出现了以下错误信息:
Unable to index into an object of type System.__ComObject.
我已尝试了一些其他的变体,例如 $triggers.Item(0)
,但都没有成功。我猜测这与 $trigger
是一个COM对象有关,因为我认为在其他类型上索引属性运行良好。
有人知道正确的方法吗?
For($i=1;$i -le $projectItem.FileNames.Length; $i++) { Write-Host $projectItem.FileNames($i) }
时,它可以正常工作!尽管FileNames
本身不是一个集合对象,但其.Length
属性存在仍很奇怪。 - Dai