I have some custom programs I've written to do various maintenance/monitoring tasks that I run periodically (some every few minutes, some as little as once a day). Is it a better practice to run them out of the task scheduler, or to run them as a windows service (triggered by an embedded timer object)?
Here's an interesting article about services vs. sheduled tasks.
http://weblogs.asp.net/jgalloway/archive/2005/10/24/428303.aspx
I think for simple/one-off type scheduled processing, it's easier to just write a console app and run it as windows scheduled task.
However, most of the time, I end up writing a service, just so all of our services run the same way. Like Martin said Quartz.NET is really powerful for writing scheduled services, and gives you more flexibility than plain scheduled tasks.