脚本地址:

脚本 Exchange Server 2010 Services Monitor - HTML Report    
https://gallery.technet.microsoft.com/scriptcenter/0cd74cb6-3924-45b0-944b-a86441401094

脚本需要修改的地方:

(一)修改serverlist变量

server.txt文件里面主要是写服务器的列表地址,跟脚本放到同一个目录下就行。

cls
$ServerList = Get-Content "server.txt"
$report = "report.htm"
Clear-Content $report

修改字符集为中文的UTF-8,否则会有乱码

Add-Content $report "" 
Add-Content $report 'demo.com Exchange Service Monitor Report'

脚本的实现主要依赖get-wmiobject

foreach ($machineName in $serverlist)   
{    
$serviceStatus = get-WmiObject win32_service -ComputerName $machineName | where {($_.displayName -match "exch*") -and ($_.StartMode -match "Auto") -and ($_.StartMode -match "Manual") -and($_.state -match "Stopped")}    
    if ($serviceStatus -ne $null)    
    {    
        foreach ($service in $serviceStatus)    
         {    
         Write-Host $machineName `t $service.name `t $service.state -ForegroundColor Red    
         $svcName = $service.name    
         $svcState = $service.state          
         Add-Content $report ""    
         Add-Content $report "$machineName"    
         Add-Content $report "$svcName"    
         Add-Content $report "$svcState"    
         Add-Content $report ""    
         $serviceDownCount += 1    
         }    
    }    
    else    
    {    
        Write-Output "All Exchange related Services are running."

设置通知选项

$smtphost = "mail.demo.com"   
$from = "[email protected]"    
$to = "mailuser1@demo"    
$subject = "Exchange Service Monitor"

serverlist列表里面的信息

PowerShell-Exchange:Services Monitor Report_第1张图片

把脚本和serverlist放到一个目录。

PowerShell-Exchange:Services Monitor Report_第2张图片

运行结果

PowerShell-Exchange:Services Monitor Report_第3张图片