Я написал сценарий командной оболочки, который используется для контроля состояния пулов приложений IIS. При текущем методе всякий раз, когда какой-либо пул идет вниз, он бросает мне предупреждение о том, что пул остановлен, и после этого он запускает пул, снова отправляя электронное сообщение о том, что этот пул. Поскольку у меня около 50 серверов, количество писем поступает навалом, что иногда вызывает спам. Может ли кто-нибудь помочь мне здесь, чтобы скрипт сканировал каталог пула и поместил результат в текстовый/html-файл и отправил мне список, в котором эти пулы опущены по почте. Вы можете найти сценарий ниже: -App_Pool_Alert Powershell Script
###################################Declear Servers in text file##############################################
$Servers = Get-Content C:\Users\Desktop\server.txt
################ Scans each server and import IIS web-administration module##################################
$Servers | ForEach-Object {
Invoke-Command -ComputerName $_ -ScriptBlock {
Import-Module WebAdministration
cd IIS:/AppPools
$CompName = (Get-WmiObject -Class Win32_ComputerSystem).Name
$ApplicationPools = dir
foreach ($item in $ApplicationPools)
{
$ApplicationPoolName = $item.Name
$ApplicationPoolStatus = Get-WebAppPoolState $ApplicationPoolName
If($ApplicationPoolStatus.value -eq "Stopped")
{
send-mailmessage -to "[email protected]" -from "[email protected]" -subject "Application Pool:- $ApplicationPoolName is Down on $CompName " -Body "$ApplicationPoolName is down. Please check IIS/Event logs for RCA." -SmtpServer ###########
Start-WebAppPool -Name $ApplicationPoolName
send-mailmessage -to "[email protected]" -from "[email protected]" -subject "Application Pool:- $ApplicationPoolName is Up on $CompName " -Body "$ApplicationPoolName is Up and running fine." -SmtpServer #############
}
}
}}
##################################### End of Script ##########################################################
Почему бы просто не написать строковый массив в вашем операторе IF, а затем в конце, если он не пуст, напишите, что в теле письма? –