This program will monitor the following services on a Microsoft Exchange 5.5 server:

System Attendant

Directory

Event Service

Information Store

Internet Mail Service

Message Transfer Agent

IIS Admin Service (for OWA)

World Wide Web Publishing Service (for OWA)

Although it can be modified to monitor any NT/2k Service.

This script works well when set as a Scheduled Task on a dedicated network monitoring station (mine runs every 2 hours). It will attempt to resume or start any paused or stopped service in your list and report everything it finds in a log file, and will send important notices to an Administrator account or an SMS phone, or pager (requires configuration).

To use SMS or paging services, you will need to setup the send_sms sub to fit your service provider. You could change this to use Net::Pager or SMS, but I found simply using my provider's CGI worked well enough.