Używam Powershell do rozmowy z usługą planowania zadań systemu Windows 7 przez COM za pomocą Task Scheduler 2.0 interfaces (np. ITaskDefinition). Chcę wyciągnąć szczególny wyzwalacz z kolekcji Triggers na ITaskDefinition. Wygląda na to, że właściwym sposobem wyodrębnienia określonego wyzwalacza jest właściwość Item, która jest właściwością indeksowaną.Jak uzyskać dostęp do właściwości indeksowanej obiektu COM z Powershell
Moja pierwsza próba wygląda mniej więcej tak:
$sched = New-Object -Com "Schedule.Service"
$sched.Connect()
$folder = $sched.GetFolder('\')
$task = $folder.GetTask("some task")
$triggers = $task.Definition.Triggers
$trigger = $triggers[0]
Jednak ostatnia linia nie powiedzie się z tej wiadomości:
Unable to index into an object of type System.__ComObject.
próbowałem kilka innych wariacji na ten temat, na przykład $triggers.Item(0)
, wszystko bez powodzenia. Zgaduję, że ma to związek z $trigger
będąc obiektem COM, ponieważ myślę, że indeksowane właściwości działają poprawnie na innych typach.
Czy ktoś wie, jak to zrobić?
Dzięki, to wydaje się również działać. Wciąż jednak mam nadzieję, że ktoś wie o bardziej bezpośredni sposób. – Charlie
Tak, to mnie teraz dręczy. :-) –
Wiesz, w tej samej notatce wydaje się działać: foreach ($ trigger in $ task.Definition.Triggers) {$ trigger} –