我正在研究VBA中的代码,试图确定下几个计划任务何时运行。我正在使用任务计划程序COM对象(Schedule.Service
)。我可以使用NextRunTime
属性枚举所有任务,所有触发器,甚至显示下一个运行时间。我接下来的是接下来的几个运行时。 Microsoft拥有GetRunTimes
方法documented,听起来就像我追求的那样。但是无论何时我尝试使用该方法,我都会得到该对象不支持属性方法的错误。
我在VBA,VBS和PowerShell中都尝试过相同的结果。我试过两台Windows 7 PC,Windows 2008 R2和Windows 2012,但都有相同的结果。在一台Windows 7 PC上,Get-Member
显示该方法,但出现错误“找不到GetRunTimes的重载”。 COM对象浏览器也不显示该方法。
我以前从未遇到过这个问题,但我不会一直编码。就好像微软记录了它,但却把它遗漏了。有没有人成功使用了Task Scheduler对象的GetRunTimes
方法?
我在VBA中遇到的错误是
运行时错误'438':对象不支持此属性或方法
一旦到达GetRunTimes
行
以下是代码的一部分:
Set objTS = CreateObject("Schedule.Service")
objTS.Connect (strComputer)
Set rootFolder = objTS.GetFolder("\")
Set ColTasks = rootFolder.GetTasks(0)
If ColTasks.Count = 0 Then
tmpArray(0) = ""
Else
For Each task In ColTasks
With task
If .Name = "RebootSchedule" Then
Set triggers = task.Definition.triggers
'This next line generates the error, everything else works)
Set runtimes = .GetRunTimes("8/1/2017", "9/1/2017")
...