AutoChris Posted February 23, 2005 Share Posted February 23, 2005 I created a compiled AutoIt script which automatically shuts down a computer at 11pm every night for all of the computers on the domain. I was able to install this as a service using sc.exe and srvany.exe but for some reason the compiled script will not actually run when it is supposed to. Srvany.exe and my script are both running in the task manager as processes, the shutdown script just is not executing when it is supposed to. Has anybody else tried this and/or have any ideas on what I can do to get the script to work as a service? If I just have the file load at startup on the computers, it works fine; it is only when it is running as a service that it does not work. FYI: the reason I want to run it as a service is so the computers will shut down even if they are logged off or have not yet logged on. It is to save electricity. Thank you, SK Link to comment Share on other sites More sharing options...
bshoenhair Posted February 23, 2005 Share Posted February 23, 2005 Show your script so someone may help. Link to comment Share on other sites More sharing options...
Alterego Posted February 23, 2005 Share Posted February 23, 2005 (edited) what OS? modify for your os... from the server: use a Scheduled Task to automate a program like the following at whatever time you see fit... ;if it's a large network maybe you can automate listing their names $computersOnYourDomain = StringSplit("comp1,comp2,comp3,comp4",",") ;;;;send a shutdown signal to each computer on the domain ;;;;KBA:http://support.microsoft.com/default.aspx?scid=kb;en-us;317371&sd=tech For $shutdown = 1 to $computersOnYourDomain[0] Run(@Comspec & "/c shutdown \\$computersOnYourDomain[$shutdown]") Next ;;;give a couple mins to finish Sleep(120000) ;;;;make sure it shutdown For $checkAwake = 1 to $computersOnYourDomain[0] $pinging = Ping(//$computersOnYourDomain[$checkAwake]) If $pinging > 0 Then Run(@Comspec & "/c shutdown \\$computersOnYourDomain[$shutdown]") EndIf Next ;;;;add some code above to make sure your satisfied with the shutdown process. pick one... Shutdown(1) Run(@Comspec & "/c shutdown") i dont have a network to test this on...(actually im on a Mac =) EDIT: forgot to turn off the serv Edited February 23, 2005 by Alterego This dynamic web page is powered by AutoIt 3. Link to comment Share on other sites More sharing options...
this-is-me Posted February 23, 2005 Share Posted February 23, 2005 Go to the service control panel and set the script to interact with the desktop. I have a feeling that the script is having an error that you cannot see. Who else would I be? Link to comment Share on other sites More sharing options...
AutoChris Posted February 24, 2005 Author Share Posted February 24, 2005 Actually, the script is very simple. I have a server that creates a file on a mapped drive called "ShutdownComputers.txt" at 11pm and then waits for about 20 minutes and then deletes that file. Each computer has a script running which checks to see if that file exists every 5 minutes. So if a computer sees that file on the mapped drive, it will use the AutoIt Shutdown command and power itself off. This has worked great for computers that are logged on, but I wanted to be able to shut down computers that had not been logged on yet, or those that had been logged off but not shut down. So, I did some research and found sc.exe and srvany.exe and used those to turn the shutdown script into a service. However, now it is not working; I do not know whether it is not checking or not shutting down or both. I am not sure how to make sure a service is able to interact with the desktop. The frustrating thing is that my script is exactly the same except for the fact that it now runs as a service rather than just starting when a user logs onto the computer. I am going to do some more testing to see if it is just the compiled AutoIt script that has problems. I may just create a simple script that sends a message box every few minutes and make that a service and see if it runs. Link to comment Share on other sites More sharing options...
Insolence Posted February 24, 2005 Share Posted February 24, 2005 If it's not logged in, can it see the mapped drive? "I thoroughly disapprove of duels. If a man should challenge me, I would take him kindly and forgivingly by the hand and lead him to a quiet place and kill him." - Mark TwainPatient: "It hurts when I do $var_"Doctor: "Don't do $var_" - Lar. Link to comment Share on other sites More sharing options...
AutoChris Posted February 24, 2005 Author Share Posted February 24, 2005 If it's not logged in, can it see the mapped drive?<{POST_SNAPBACK}>Interesting question. I do not know the answer to that.However, when I tested the service-based shutdown script, I tested it on machines that were logged in and I had them point to the directory via named pipes rather than a mapped drive so that was not an issue as to why it was not working. Link to comment Share on other sites More sharing options...
nobby Posted February 24, 2005 Share Posted February 24, 2005 If the aim is to shutdown the computers at 11:00, wouldn't it be much simpler to shedule a task on each computers just to do that? To do it centrally you could have a script pinging addresses in your range, then run a shutdown based on the IP being alive. CheersNobby Link to comment Share on other sites More sharing options...
CyberSlug Posted February 24, 2005 Share Posted February 24, 2005 Have you looked at http://www.beyondlogic.org/solutions/shutdown/shutdown.htm Use Mozilla | Take a look at My Disorganized AutoIt stuff | Very very old: AutoBuilder 11 Jan 2005 prototype I need to update my sig! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now