For Windows ComputersEdit
Assuming these are Windows computers on a domain, create a text file with the names of the computers you wish to shut down, one per line, and save it as shutmedown.txt in a folder. In that same folder, create a batch file called shutmedown.bat with the following contents:
@echo offfor /f %%c in (shutmedown.txt) do shutdown /r /t 30 /f /m \\%%c
Schedule that batch file to run when you wish the computers to shut down. You'll need to run it under domain credentials that have local administrator access to the workstations you're shutting down. This process will automatically warn the user that the computer is shutting down. The command above gives 30 seconds to save and close. You can give more seconds by altering the /t parameter. The native NT shutdown command doesn't offer a GUI to abort. Running shutdown /a from the command line of the workstation being shut down will abort the process. There may be third party utilities that allow this. The shutdown command has a few further options. If you go to a command prompt on an XP or 2003 server and type in shutdown -? You can see the options. Then just modify the command line to include the desired options. Also some version of shutdown use - and some use / as option identifiers.
We use Altiris to accomplish this and it does allow users to cancel.
For Macintosh ComputersEdit