1

Есть 2 сайта, которые работают в одном пуле. Мне нужно извлечь названия сайтов для дальнейшего использования. Я использую следующую команду для опыта.

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 ответ1

0

Попробуйте следующий скрипт:

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 я удаляю ненужные нам биты. Не элегантно, но это работает.

В качестве бонуса это решение дает вам название сайта и приложения, а не только название сайта.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .