First let me say that you should be careful with this, and you always have the problem of crap just blowing up in your face. Of course everyone who has worked with windows knows this, but I have to say do this at your own risk. Of course simply booting up is considered walking on eggshells some days, but this is pretty much a walk in the park.
This is a little thingie on helping admins set up scheduling for their servers. It helps to have a little experience with the server environment of Windows 2000, and for Linux people there are plenty of ways to do this with cron anyway so go find some officially supported documentation somewhere. But with the Windows 2000 people, its a tad easier. For NT4 users, if you are running an NT server and you don't know about the WINAT program that came with the resource kit, shame on you.
This part is optional. If you want, skip this part and go directly to here where the scheduling is introduced..
Otherwise, grab and Install ServiceInstaller from KC Multimedia. (KUDOS TO YA). It's free, it does more than it was written to, so grab it while you can. http://www.kcmultimedia.com/smaster/ is the location. (Mirror).
To configure Quake3 to run as a service, simply browse to the quake3 directory, find the exe. Enter in the same directory as the quake3.exe resides in. The startup parameters are your command line parameters. The dependencies shouldn't need to be touched unless you are launching more that two servers at boot up, so simply have one dependant on the other on the other on the other etc... but be careful, if you bork this you need to run regedt32 and delete the key that this creates located in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ (\WFA is where this one is located).
Easy enough, eh? Well after that, find the service in the control panel applet
Where is it? Why in here, of course.
Scroll down till you find it, then open it.
And viola! A Service! Now make sure you don't run it as system after you are done testing....
So basically change this from system (the default) so a user privileged correctly can run it. That's what you should do, anyway, but for now leave it as system. Fire it up and a console will appear. After all is said and done and if you want, you can make it a Local System Account and run it without the Allow service to interact with desktop checked and no one will even know it's running cause the console won't pop up. Ever. To bring it back stop the service and allow it to interact and start it back up. You can spec ipsec or ntlm telnet or whatever you want to send net start and net stop commands, or create a website to start and stop the services. Whatever you want. Nifty, eh?
Ok so that's out of the way. Now for the cool part, how to schedule..
Tired of those damn clans who come in, kick ass, can walk the walk and talk the talk, but wouldn't know how to unlock a server after they are done if their grapple or rocket launcher depended on it? DrugLordBob and I have come to the rescue.
I was sitting there looking at the players on my server and wondering how hard it could possibly be to have a program to issue command-line parameters to rcon to my server cause I wanted these players to know that the bots (AI) are in beta stage, once every 10 minutes would do. On a whim I asked DLB about it and in about 2 seconds later he gave me this program. So I tested it and wrote this up on how to use it.
First, download it and put it somewhere. I keep all my utilities in quake3/utilites for a reason. This is small, singular, and works. Oh btw if you get an error about winsck32.ocx or something like that it means that file is old so go update your shiznit cause it's insecure anyway and like a good admin you always do stay on top of issues like this so you should never see that, right? RIGHT?
Well read through all this first, cause some things might be out of order but I don't think much is.
Anyway, launch the app for the first time by double clicking on it through windows interface. You need to do this the first time to save the rcon information in the registry. Enter in the IP of the server, the port, and the rcon password. Right now the program only will accept one server at a time, but what the heck, one is good enough for right now.
Press save to write it to the registry.
If you want, you can test it out locally right now, click here for coolpic.
Ok, now that it's working close it out and open up the task scheduler located in the control panel.
You don't want anything here. Click browse button. Browse for the QuickRcon.exe. Once you have that,
Type the name of the job.
It doesn't matter what the date is set for. You are gonna change it.
But you will be prompted for a username and password combination for this task, who has permission to run it.
Make sure that this is checked.
Look at that! Click the advanced tab and there ya go!
Use your brain to figure out what needs to be done, when you want to schedule things, etc.
For this example it just simply exec's a config once every 3 hours.
You can make it happen daily at a specified time if you want to leave the advanced stuff here alone.
Depends on what you want to do.
Now for the tough part. See the Run: parameter? That's basically a rcon command right there.
We need to tell the scheduled service what to do at that time now. Here's where it gets TRICKY.
With Windows2000 Professional it demands the quotes around the application's parameters. With Windows2000 Advanced Server/Enterprise/Clusterphuck it requires the application path and exe to be wrapped in quotes. Why it's sometimes ass-backwards I have no idea. So my example above for a server would be
"E:\quake3\utilities\QuickRcon.exe" exec restart.cfg
Regardless you will always be prompted with a stupid verification of the password each and every damn time you change it. Now depending on what you want to send to the server it is usually better to create a config that will exec the commands for you and just exec the config. In this example the reset.cfg looks like this below, but you can have anything in there that's rcon-specific. You can even re-exec the wfa-server.cfg every night after-hours, whatever you want.
Just an example.
A list of scheduled tasks.
Well, that's about it. If you get a failed to start in the 'detailed' view of the task (above is list view), verify that the username/password combo is ok, and that the damn quotations are correct. After a little fiddling around you should have something that is working and cool. From then on, you can just do whatever you want with your server, leave it alone, and finally relax on that Sunday afternoon now that pre-season is here.