IIS 8:设置应用程序池用户名被忽略

IIS 8:设置应用程序池用户名被忽略

我在 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 上,最后一行仍然给了我旧的用户名,但它上面的一行不会导致错误。

编辑:

我们正在创建用于配置所有 Web 服务器的脚本。如果在编写脚本时无法设置用户名,那就太烦人了。

我已在多台 IIS 7.5 服务器 (Windows 2008) 上尝试过此方法,它们均能正常工作。我已在三台 IIS 8 服务器 (Windows 2012) 上尝试过此方法,但均不能正常工作。

事实证明,虽然我无法设置用户名,但我可以在 IIS 8 上设置密码:

  • Set-ItemProperty "testpool" -name "processmodel.password" -value "MyPassword"

答案1

我在 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();

对我有用:)

答案2

经过几次实验,这是我的解决方案

$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

相关内容