2010-02-01 29 views
0

Nous avons demandé à nos serveurs de configurer quelque chose sur Exchange afin que, pour une adresse e-mail donnée, toutes les pièces jointes envoyées soient transférées vers un emplacement sur le serveur de fichiers.Comment puis-je surveiller le service d'événements Exchange 2003 à partir de mon application?

Le service d'événements Exchange contrôle ce comportement, mais il semble que ce service particulier échoue assez souvent. Je ne sais pas pourquoi - je n'ai pas accès au serveur d'échange et c'est exécuté par une équipe dans un pays différent.

Est-il possible de surveiller ce service d'échange de façon programmée afin que je puisse avertir les utilisateurs s'il tombe en panne? Je sais que la «bonne» solution est de la faire traiter par l'équipe Exchange, mais en raison des différences de fuseau horaire (et de leur énorme charge de travail), j'ai vraiment besoin de gérer cela de mon côté.

Pourriez-vous faire quelque chose comme ça avec WebDav?

Répondre

0

Vous pouvez utiliser le script Powershell suivant:

# Getting status of Exchange Services and look for anything that's "stopped" 
$ServiceStatus = get-service MSExch* | where-object {$_.Status -eq "stopped"} 

# Convert Result to String 
$ServiceStatusText = $ServiceStatus | fl | Out-String 

# If $ServiceStatus <> $null then send notification 
If ($ServiceStatus -ne $null) 
{ 
###Exchange Server Values 
$FromAddress = "[email protected]_DOMAIN.local" 
$ToAddress = "[email protected]_DOMAIN.com" 
$MessageSubject = "CRITICAL: An exchange service is has stopped" 
$MessageBody = "One or more Exchange services has stopped running or crashed. Please check the server ASAP for possible issues`n" 
$MessageBody = $MessageBody + $ServiceStatusText 

$SendingServer = "msexch02.pnlab.local" 

###Create the mail message and add the statistics text file as an attachment 
$SMTPMessage = New-Object System.Net.Mail.MailMessage $FromAddress, $ToAddress, $MessageSubject, $MessageBody 

###Send the message 
$SMTPClient = New-Object System.Net.Mail.SMTPClient $SendingServer 
$SMTPClient.Send($SMTPMessage) 
} 

# Else don't do anything and exit 
Else 
    { 
    $null 
    }