#!/usr/bin/perl # 1 = server name (FQDN) # 2 = script name (on remote machine) # 3 = username (if any) # 4 = Password (if you specified a username) if($ARGV[0] eq "") { print <&1`; } else { $a = `net use \\\\$server\\ipc\$ 2>&1`; } if($? != 0) { print "Could not authenticate!\n"; print "===========================================\n"; print "$a\n"; print "===========================================\n"; exit(1); } else { print "Authenticated to $server.\n"; } #--------------------------------------------------------------------------------------- #Get local time $a = `net time \\\\$server 2>&1`; if($? != 0) { print "Could not get local time!\n"; print "===========================================\n"; print "$a\n"; print "===========================================\n"; exit(1); } else { print "Got local time.\n"; } #--------------------------------------------------------------------------------------- #Calculate scheduled time local $sched = &increasetime(&readtime($a),$it); #--------------------------------------------------------------------------------------- #Schedule script #at \\\\$server $sched \" $aa = "at \\\\$server $sched \"$scriptname\" 2>&1"; print "Executing ==> $aa\n"; $a =`$aa`; if($? != 0) { print "Could not schedule execution!\n"; print "===========================================\n"; print "$a\n"; print "===========================================\n"; exit(1); } else { print "Execution scheduled for $sched.\n"; } #--------------------------------------------------------------------------------------- #Disconnect $a = `net use \\\\$server\\ipc\$ /delete 2>&1`; if($? != 0) { print "Could not disconnect!\n"; print "===========================================\n"; print "$a\n"; print "===========================================\n"; exit(1); } else { print "Disconnected.\n"; } } #--------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------- #--------------------------------------------------------------------------------------- sub increasetime { local $tme = $_[0]; local $increment = $_[1]; local ($hour,$min) = split(/:/,$tme); $min = $min + $increment; while($min > 59) { $min = $min - 60; $hour++; } if(length($min) == 1) { $min = "0$min"; } return "$hour:$min"; } sub readtime { local $txt = $_[0]; local $i; local $j; foreach $i (split(/\n/,$txt)) { if(index($i,"time") != -1) { $j = $i; } } local ($junk,$fulltime) = split(/is /,$j); local ($dte,$tme,$pm) = split(/ /,$fulltime); local ($hour,$min) = split(/:/,$tme); if((index($pm,"PM") != -1) && ($hour != 12)) { $hour = $hour + 12; } $nt = "$hour:$min"; return "$nt"; }