Как переименовать пул приложений, к которому уже прикреплено приложение?

У меня есть пул приложений, которому назначено множество приложений, он не позволит мне переименовать.

Помимо удаления и создания нового пула приложений, все равно, чтобы получить новое имя для моего пула приложений? Я не хочу идти и переназначать каждое приложение в нем.

Ответ 1

Назначьте приложения в другой пул, переименуйте тот, который вы хотите переименовать. Повторно назначьте приложения обратно в ваш пул.

IIS не поддерживает другие параметры

Ответ 2

Нет, нет.

Либо поставить имя, либо создать новый пул приложений, и назначать приложения один за другим.

Если вам нужно повторить его на нескольких серверах, вы можете даже автоматизировать его с помощью ADSI и JavaScript или VBScript:

Ответ 3

Это был самый простой способ, с помощью которого я мог бы это исправить, хотя я не могу поверить, что это не так просто.

Import-Module WebAdministration

$oldName = "OldAppPool";
$newName = "NewAppPool";

if(-not (Test-Path IIS:\AppPools\TempPool)){
    New-WebAppPool TempPool
}
$tempAppPool = Get-Item IIS:\AppPools\TempPool

foreach($site in Get-ChildItem IIS:\Sites){
    $apps = $site | Get-ChildItem | Where-Object { $_.ApplicationPool -eq $oldName }

    foreach($app in $apps){
        $path = ("IIS:\Sites\{0}\{1}" -f $site.name, $app.name)
        $path
        Set-ItemProperty $path applicationPool TempPool
    }
}

Set-ItemProperty "IIS:\AppPools\$oldName" -Name name -Value $newName

foreach($site in Get-ChildItem IIS:\Sites){
    $apps = $site | Get-ChildItem | Where-Object { $_.ApplicationPool -eq "TempPool" }

    foreach($app in $apps){
        $path = ("IIS:\Sites\{0}\{1}" -f $site.name, $app.name)
        $path
        Set-ItemProperty $path applicationPool $newName
    }
}

Remove-WebAppPool TempPool