Сценарий, приведенный ниже, извлекает состояние пула приложений на сервере, на котором выполняется сценарий правильно, но он не отображает правильное значение и состояние пула приложений на 2-м сервере. Вместо этого он отражает состояние на 1-м сервере, но отражает правильное имя 2-го сервера.
Модуль импорта WebAdministration
$ AppPool = Get-Content "D: \ HealthCheck \ AppPool.txt"
$ webapps = Get-WebApplication
############################ Получить статус пула приложений
Функция AppPoolstatus ($ serverlist, $ ApplicationPools)
{
foreach ($ machineName в $ serverlist)
{
foreach ($ item в $ ApplicationPools)
{
$ AppPoolstatus = (Get-WebAppPoolState $ item). Значение;
if ($ AppPoolstatus -eq "Started") {
Add-Content $ Report ""
Add-Content $Report "<td bgcolor= 'GainsBoro' align=center> <B>$machineName</B></td>"
Add-Content $Report "<td bgcolor= 'GainsBoro' align=center> <B>$item</B></td>"
Add-Content $Report "<td bgcolor= '#00FF00' align=center><B>$AppPoolstatus</B></td>"
Add-Content $Report "</tr>"
}
else
{
Add-Content $ Report ""
Add-Content $Report "<td bgcolor= 'GainsBoro' align=center> <B>$machineName</B></td>"
Add-Content $Report "<td bgcolor= 'GainsBoro' align=center> <B>$item</B></td>"
Add-Content $Report "<td bgcolor= 'Red' align=center><B>$AppPoolstatus</B></td>"
Add-Content $Report "</tr>"
}
Write-Host "$ ApplicationPoolName -> $ ApplicationPoolStatus"
}
}
}
###################################### Вызов функции
AppPoolstatus $ компьютеров $ AppPool