okay, there is much shorter to write, but longer to read docs way,
using WMI (Windows Management Instrumentation), MSDN describes details,
code and results are as following (just few lines of code! i did not expected to have such
short program to do the trick...) :
use Win32::OLE 'in';
$objcoll = Win32::OLE->GetObject("WinMgmts://servername")->InstancesOf
+("Win32_ScheduledJob");
my @x = qw/
Caption Command DaysOfMonth DaysOfWeek Description ElapsedTime Insta
+llDate
InteractWithDesktop JobId JobStatus Name Notify Owner Priority RunRe
+peatedly
StartTime Status TimeSubmitted UntilTime
/;
for $adsobj (in $objcoll) {
print ++$i,".===\n",join '', map {" $_:".($adsobj->{$_}||"")."\n"}
+@x;
}
=====
1.===
Caption:
Command:calc
DaysOfMonth:16
DaysOfWeek:
Description:
ElapsedTime:
InstallDate:
InteractWithDesktop:1
JobId:2
JobStatus:Success
Name:
Notify:
Owner:
Priority:
RunRepeatedly:1
StartTime:********202000.000000+240
Status:
TimeSubmitted:
UntilTime:
2.===
Caption:
Command:calc
DaysOfMonth:262144
DaysOfWeek:
Description:
ElapsedTime:
InstallDate:
InteractWithDesktop:1
JobId:3
JobStatus:Success
Name:
Notify:
Owner:
Priority:
RunRepeatedly:1
StartTime:********202000.000000+240
Status:
TimeSubmitted:
UntilTime:
Note that
GetObject("WinMgmts://servername") becomes
GetObject("WinMgmts:") if you're
working locally
Courage, the Cowardly Dog.
PS. Something fishy is going on there, or my name is Vadim Konovalov. And it's not.