这个脚本可用于Windows服务器的日常检查、维护。它可以检查服务的状态,并且生成一个html格式的报告。
(1)powershell脚本的代码:
$ServerList = Get-Content "D:\st07\windows\shell\shell_1\servers.txt"
$ServicesList = Get-Content "D:\st07\windows\shell\shell_1\services.txt"
$report = "D:\st07\windows\shell\shell_1\report.htm"
Add-Content $report "<html>"
Add-Content $report "<head>"
Add-Content $report "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>"
Add-Content $report '<title> Service Status </title>'
Add-content $report '<style type="text/css">'
Add-content $report "<!--"
Add-content $report "td {"
Add-content $report "font-family: 宋体;"
Add-content $report "font-size: 20px;"
Add-content $report "}"
Add-content $report "body {"
Add-content $report "margin-left: 5px;"
Add-content $report "margin-top: 5px;"
Add-content $report "margin-bottom: 10px;"
Add-content $report "}"
Add-content $report "-->"
Add-content $report "</style>"
Add-Content $report "</head>"
Add-Content $report "<body>"
Add-content $report "<table width='100%'>"
Add-content $report "<tr bgcolor='green'>"
Add-content $report "<td colspan='7' height='28' align='center'>"
Add-content $report "<font face='宋体' size='5'> Service Status </font>"
Add-content $report "</td>"
Add-content $report "</tr>"
Add-content $report "</table>"
Add-content $report "<table width='100%'>"
Add-Content $report "<tr bgcolor='green'>"
Add-Content $report "<td width='10%' align='center'> server </td>"
Add-Content $report "<td width='50%' align='center'> service </td>"
Add-Content $report "<td width='10%' align='center'> status </td>"
Add-Content $report "</tr>"
Function servicestatus ($serverlist, $serviceslist){
foreach ($machineName in $serverlist){
foreach ($service in $serviceslist) {
$serviceStatus = get-service -ComputerName $machineName -Name $service
if ($serviceStatus.status -eq "Running"){
Write-Host $machineName $serviceStatus.name $serviceStatus.status -ForegroundColor Green
$svcName = $serviceStatus.name
$svcState = $serviceStatus.status
Add-Content $report "<tr'>"
Add-Content $report "<td bgcolor= '#33ffff' align=center> $machineName</td>"
Add-Content $report "<td bgcolor= '#33ffff' align=center> $svcName</td>"
Add-Content $report "<td bgcolor= '#33ffff' align=center>$svcState</td>"
Add-Content $report "</tr>"
}
else{
Write-Host $machineName $serviceStatus.name $serviceStatus.status -ForegroundColor Red
$svcName = $serviceStatus.name
$svcState = $serviceStatus.status
Add-Content $report "<tr>"
Add-Content $report "<td bgcolor= 'GainsBoro' align=center>$machineName</td>"
Add-Content $report "<td bgcolor= 'GainsBoro' align=center>$svcName</td>"
Add-Content $report "<td bgcolor= 'Red' align=center>$svcState</td>"
Add-Content $report "</tr>"
}
}
}
}
servicestatus $ServerList $ServicesList
Add-content $report "</table>"
Add-Content $report "</body>"
Add-Content $report "</html>"
(2)效果图
参考资料:
[1]Sukhija Vikas.Monitor Windows Servicesstatus Remotely.