Как я могу контролировать службу событий Exchange 2003 из своего приложения? - PullRequest
0 голосов
/ 01 февраля 2010

Мы заставили наших серверов установить что-то на Exchange, чтобы для определенного адреса электронной почты все отправленные в него вложения были помещены в папку на файловом сервере.

Служба событий Exchange контролирует это поведение, но кажется, что эта конкретная служба часто выходит из строя. Я не знаю почему - у меня нет доступа к серверу Exchange, и он управляется командой из другой страны.

Можно ли программно контролировать эту службу обмена, чтобы я мог предупредить пользователей, если она выйдет из строя? Я знаю, что «правильное» решение состоит в том, чтобы решить эту проблему командой Exchange, но из-за различий в часовых поясах (и их большой рабочей нагрузки) мне действительно нужно справляться с этим с моей стороны.

Не могли бы вы сделать что-то подобное с WebDav?

1 Ответ

0 голосов
/ 09 февраля 2010

Вы можете использовать следующий скрипт PowerShell:

# 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 = "Exchange-Alert@YOUR_DOMAIN.local"
 $ToAddress = "your_address@YOUR_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
  }
...