需要列出 IIS 6.0 (Server 2k3) 中的所有站点、应用程序池和子应用程序

Need to list all sites, app pools, and sub apps in IIS 6.0 (Server 2k3)

Server 2003 正在逐步淘汰,我们目前正试图收集所有托管在我们仅存的几台 2k3 服务器上的网站和应用程序。问题是我不能使用 appcmd 来列出它们并且 iisapp 没有列出所有已安装的应用程序。

我采用的方法是将所有服务器上的 iis 配置导出到各种 xml 文件(通过批处理文件),然后使用 powershell 在每个 xml 中搜索特定的正则表达式字符串,例如"AppFriendlyName",等等。当 appfriendlyname 设置为 "Default Application" 时,这有时会让人筋疲力尽,因为它并没有真正告诉您使用它的应用程序是什么。

有没有更简单的方法可以将所有应用程序池和应用程序池路径集中在一个列表中,用于 IIS6.0?

据我所知,没有简单的方法可以从 PowerShell 使用 IIS6。我认为你在正确的轨道上。将 IIS6 配置导出到 XML 文件。

& {iiscnfg /export /f c:\inetpub\config.xml /sp / /children}

然后就可以使用PowerShell来解析XML.

$cfg = [Xml] (Get-Content "c:\inetpub\config.xml")

使用包含 IIS 配置的 $cfg PSObject,您现在可以提取所需的任何数据。例如:

$cfg.configuration.MBProperty.IIsWebDirectory | Select-Object Location, AppFriendlyName, AppPoolId