Estoy usando Powershell para hablar con el servicio del planificador de tareas de Windows 7 a través de COM a través del Task Scheduler 2.0 interfaces (por ejemplo, ITaskDefinition). Quiero sacar un activador particular de la colección Triggers en ITaskDefinition. Parece que la forma correcta de extraer un activador en particular es a través de la propiedad Item, que es una propiedad indexada.Cómo acceder a una propiedad indexada en un objeto COM de Powershell
Mi primer intento se ve algo como esto:
$sched = New-Object -Com "Schedule.Service"
$sched.Connect()
$folder = $sched.GetFolder('\')
$task = $folder.GetTask("some task")
$triggers = $task.Definition.Triggers
$trigger = $triggers[0]
Sin embargo, la última línea de falla con este mensaje:
Unable to index into an object of type System.__ComObject.
He intentado algunas otras variaciones sobre este tema, por ejemplo, $triggers.Item(0)
, todo sin suerte. Supongo que esto tiene que ver con $trigger
siendo un objeto COM, porque creo que las propiedades indexadas funcionan bien en otros tipos.
¿Alguien sabe la forma correcta de hacerlo?
Gracias, esto parece funcionar también. Sin embargo, aún espero que alguien lo sepa de una manera más directa. – Charlie
Sí, esto me está molestando ahora. :-) –
Ya sabes, a lo largo de esta misma nota, lo siguiente parece funcionar: foreach ($ trigger en $ task.Definition.Triggers) {$ trigger} –