首页 > 解决方案 > 如何通过 Powershell 填充 IIS 应用程序池中的关闭可执行文件字段

问题描述

在 Internet 信息服务管理器中,对于每个应用程序池,都有一个选项可以设置关机可执行文件的路径,以及Rapid-Fail Protection高级设置下的任何参数。

我有几个应用程序池(几百个),并想使用 PowerShell 脚本自动将每个应用程序池的关闭字段设置为我创建的程序。

是否存在这样的 PowerShell 命令?我仔细阅读了相应的文档,但没有结果。

有问题的领域

标签: powershelliis

解决方案


简短的回答?我无法专门在 Powershell 中弄清楚,但是..使用“appcmd.exe”我能够做到这一点。我编写了一个脚本,试图重新启动应用程序池并将结果通过电子邮件发送给我。该脚本由快速故障保护启动。如果你愿意,我也可以分享这个脚本......但是,我真的不想像你提到的那样手动设置每个应用程序池,所以我想出了以下......它不像某些那样漂亮或优雅,但是,它可以工作:

$poolList = (Get-ItemProperty -Path "IIS:\AppPools\*").name

ForEach($pool in $poolList) {
    C:\Windows\System32\inetsrv\appcmd.exe set apppool "$pool" /Failure.autoshutdownParams:"D:\_Scripts\CheckPools.ps1 -PoolName $pool"
    C:\Windows\System32\inetsrv\appcmd.exe set apppool "$pool" /Failure.autoshutdownexe:"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe"
    Get-ItemProperty -Path "IIS:\AppPools\$pool" -name Failure.autoshutdownexe|select *
}

我可以确认,对于 Windows 2016,此脚本设置了 Shutdown Executable 和 Shutdown Executable 参数。Executable 设置为启动 powershell,参数调用 powershell 脚本并将应用程序池名称传递给它。


推荐阅读