Я делаю это на IIS 7.5:
Создайте пул приложений, "testpool", и установите имя пользователя и пароль для соответствия тому, который существует в AD. Затем в powershell как администратор:
Import-Module webadministration
cd IIS:\AppPools
Get-ItemProperty "testpool" -name "processmodel.username"
Это дает мне корректное имя пользователя. Затем:
Set-ItemProperty "testpool" -name "processmodel.username" -value "mydomain\anotheruser"
Get-ItemProperty "testpool" -name "processmodel.username"
Это дает мне новое имя пользователя, mydomain\anotheruser. Однако на IIS 8, последняя строка все еще дает мне старое имя пользователя, но строка выше его не приводит к ошибке.
Править:
Мы создаем сценарии для конфигурирования всех наших веб-серверов. Это было бы довольно раздражающим, если установка имени пользователя не возможна при сценариях.
Я попробовал это на многих серверах IIS 7.5 (Windows 2008), и они все работают. Я попробовал его на трех IIS 8 серверов (Windows 2012), и ни один из них не работает.
Оказывается, что, хотя я не могу установить имя пользователя, я могу установить пароль на IIS 8:
Set-ItemProperty "testpool" -name "processmodel.password" -value "MyPassword"
Я делаю это в IIS 8
$testpool = get-item iis:\apppools\$iisAppPoolName;
$testpool.processModel.userName = $un;
$testpool.processModel.password = $pw;
$testpool.processModel.identityType = 3;
$testpool | Set-Item
$testpool.Stop();
$testpool.Start();
У меня работает :)
После нескольких экспериментов вот мое решение
$credentials = (Get-Credential -Message "Please enter the Login credentials including Domain Name").GetNetworkCredential()
$userName = $credentials.Domain + '\' + $credentials.UserName
Set-ItemProperty IIS:\AppPools\$app_pool_name -name processModel.identityType -Value SpecificUser
Set-ItemProperty IIS:\AppPools\$app_pool_name -name processModel.userName -Value $userName
Set-ItemProperty IIS:\AppPools\$app_pool_name -name processModel.password -Value $credentials.Password