从属性应用程序池中提取站点名称

从属性应用程序池中提取站点名称

一个池中有两个站点在运行。我需要提取站点的名称以供将来使用。我使用下一个命令进行 exp。

PS C:\> Get-Item IIS:\AppPools\tech-2

Name                     State        Applications
----                     -----        ------------
tech-2                   Started      tech-2
                                      tech-3


PS C:\> get-item iis:\apppools\tech-2 | select Applications

Applications
------------

但结果为空。选择名称和状态,效果良好。

请帮忙。

答案1

尝试以下脚本:

import-module webadministration

$appPool = "MyPoolName" 

 $apps = (Get-WebConfigurationProperty "/system.applicationHost/sites/site/application[`
 @applicationPool='$appPool']" "machine/webroot/apphost" -name path).ItemXPath 

foreach ($s in $apps) {
    $name = $s -replace "\/system.applicationHost\/sites\/site\[\@name='", ""
    $name = $name -replace "' and \@id='\d{1,10}'\]\/application\[\@path='", ""
    $name = $name -replace "'\]",""
    $out += $name + "`n"
}

$out

问题是站点实际上并没有存储在应用程序池对象中,应用程序池存储在站点/应用程序中。

首先,我找到池名称的所有出现位置的所有 ItemXPath,然后在 foreach 循环中删除不需要的部分。虽然不太优雅,但确实有效。

作为奖励,该解决方案为您提供站点和应用程序名称,而不仅仅是站点名称。

相关内容