Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

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


Comment on RE: How long 'tween now and then?
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://32668]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others rifling through the Monastery: (11)
As of 2014-08-21 21:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (143 votes), past polls