I do this on a weekly basis to a group of machines. I run a bat file in a scheduled task, using psshutdown from microsoft /sysinternals:
psshutdown -s @shutws.txt
where shutws.txt is a text file listing machines that are targeted.
simple, clean. You can also put timers and warning messages in so if users are logged in they have time to save work and log off.