Я делаю это в 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