Beefy Boxes and Bandwidth Generously Provided by pair Networks
The stupid question is the question not asked

RE: How long 'tween now and then?

by t0mas (Priest)
on Sep 15, 2000 at 17:53 UTC ( #32668=note: print w/replies, xml ) Need Help??

in reply to How long 'tween now and then?

Buuuut, AT.EXE (in Win2K) doesn't run as the currently-logged-in user. I know I can change that, but it doesn't appear to be programmatically changeable (and I don't want to go around to all of these machines).

But yes it is programmatically changeable. The following is a snippet of a hack I did...
#!/usr/bin/perl -w # Modules use strict; use Win32::API; # Variables use vars qw($host $user $password $success $OpenSCManager $LockService +Database); use vars qw($lock $OpenService $ChangeServiceConfig $SChandle $Shandle +); use vars qw($UnlockServiceDatabase $CloseServiceHandle); # Constants use constant SC_MANAGER_ALL_ACCESS => 0x000F0000|0x0001|0x0002 |0x0004|0x0008|0x0010|0x0020; use constant SERVICE_CHANGE_CONFIG => 0x0002; use constant SERVICE_NO_CHANGE => 0xffffffff; # Change theese... $host="SOME_COMPUTER"; $user=".\\local_user_account"; $password="password_for_user"; # Import stuff $OpenSCManager = new Win32::API( "advapi32", "OpenSCManager", ["P", "N", "N"], "I"); if (! defined $OpenSCManager) { die "Can't import OpenSCManager"; } $LockServiceDatabase = new Win32::API( "advapi32", "LockServiceDatabase", ["I"], "I"); if (! defined $LockServiceDatabase) { die "Can't import LockServiceDatabase"; } $OpenService = new Win32::API( "advapi32", "OpenService", ["I", "P", "N"], "I"); if (! defined $OpenService) { die "Can't import OpenService"; } $ChangeServiceConfig = new Win32::API( "advapi32", "ChangeServiceConfig", ["I", "N", "N", "N", "P", "P", "N", "P", "P", "P", "P"], "N"); if (! defined $ChangeServiceConfig) { die "Can't import ChangeServiceConfig"; } $UnlockServiceDatabase = new Win32::API( "advapi32", "UnlockServiceDatabase", ["I"], "I"); if (! defined $UnlockServiceDatabase) { die "Can't import UnlockServiceDatabase"; } $CloseServiceHandle = new Win32::API( "advapi32", "CloseServiceHandle", ["I"], "I"); if (! defined $CloseServiceHandle) { die "Can't import CloseServiceHandle"; } $SChandle=$OpenSCManager->Call( $host, 0, SC_MANAGER_ALL_ACCESS); die "Failed to open service manager on $host" unless $SChandle; $lock=$LockServiceDatabase->Call( $SChandle); die "Failed to lock service database on $host" unless $lock; $Shandle=$OpenService->Call( $SChandle, "Schedule", SERVICE_CHANGE_CONFIG); die "Failed to open Task Scheduler on $host" unless $Shandle; $success=$ChangeServiceConfig->Call( $Shandle, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, SERVICE_NO_CHANGE, 0, 0, 0, 0, $user, $password, "Task Scheduler"); print "Change status: "; print $success?"OK\n":"Failed\n"; $UnlockServiceDatabase->Call( $lock); $CloseServiceHandle->Call( $SChandle);

/brother t0mas

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://32668]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2017-09-26 21:08 GMT
Find Nodes?
    Voting Booth?
    During the recent solar eclipse, I:

    Results (297 votes). Check out past polls.