Как получить доступ к индексируемому свойству на COM-объекте от Powershell

Необходимо происходить из C++ или некоторого другого языка, где люди реализуют деструкторы. В Java Вы не делаете этого. Вы не переопределяете, завершают, если Вы действительно не знаете то, что Вы делаете. Через 10 лет я никогда не должен был делать это, и я все еще не могу думать о серьезном основании, которое потребовало бы, чтобы я сделал это.

Назад к Вашему вопросу, Ваш слушатель является независимым объектом с его собственным жизненным циклом, и будет собранный после всех других объектов, что ссылка, это будет собрано или когда никакой другой объект не будет указывать на него. Это работает очень хорошо. Так не, Вы не должны переопределять, завершают.

7
задан Charlie 3 November 2009 в 17:49
поделиться

2 ответа

Пункт действительно работает. Вы должны использовать Item () вместо Item [], а индексы начинаются с 1.

$sched = New-Object -Com "Schedule.Service"
$sched.Connect()
$folder = $sched.GetFolder('\')
$task = $folder.GetTask("Update Bin Dir")
$triggers = $task.Definition.Triggers
$triggers.Item(1)

Type               : 2
Id                 : 67a9fad4-462f-43d9-ab71-6e9b781966e6
Repetition         : System.__ComObject
ExecutionTimeLimit : 
StartBoundary      : 2007-07-02T05:30:00
EndBoundary        : 
Enabled            : True
DaysInterval       : 1
RandomDelay        : 

Использование перечислителя также работает, если вам не нужен доступ по индексу:

foreach ($trigger in $triggers) { $trigger }
7
ответ дан 7 December 2019 в 01:22
поделиться

В моей системе похоже, что для некоторых задач возвращается только один триггер. Вы можете попытаться заставить его возвращаться в виде массива.

$sched = New-Object -Com "Schedule.Service"
$sched.Connect()
$folder = $sched.GetFolder('\')
$task = $folder.GetTask("some task")
$triggers = @($task.Definition.Triggers)
$trigger = $triggers[0]
3
ответ дан 7 December 2019 в 01:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: