我正在尝试使用PowerShell在IIS中创建一个应用程序池。在搜索网络后,我创建了以下测试脚本:
Import-Module WebAdministration
$siteName = "TestAppPool"
$userAccountName = "Domain\UserName"
$userAccountPassword = "MyPassword"
if(!(Test-Path ("IIS:\AppPools\" + $siteName)))
{
$appPool = New-Item ("IIS:\AppPools\" + $siteName)
#Display Default AppPool Settings
"AppPool = " + $appPool
"UserName = " + $appPool.processModel.userName
"Password = " + $appPool.processModel.password
"Runtime = " + $appPool.managedRuntimeVersion
$appPool.processModel.userName = $userAccountName
$appPool.processModel.password = $userAccountPassword
$appPool.managedRuntimeVersion = "v4.0"
$appPool | Set-Item
#Display Updated AppPool Settings
"AppPool = " +$appPool
"UserName = " + $appPool.processModel.userName
"Password = " + $appPool.processModel.password
"Runtime = " + $appPool.managedRuntimeVersion
}
当我运行脚本时,用户名和密码没有被更新成我设置的值。
这是两个打印块的结果。#Display Default AppPool Settings
AppPool = Microsoft.IIs.PowerShell.Framework.ConfigurationElement
UserName =
Password =
Runtime = v2.0
#Display Updated AppPool Settings
AppPool = Microsoft.IIs.PowerShell.Framework.ConfigurationElement
UserName =
Password =
Runtime = v2.0
在IIS中查看应用程序池,发现.NET Framework已经更新,但身份仍设置为ApplicationPoolIdentity。它应该是Domain\UserName。
我是该计算机上的管理员,并且以管理员模式运行PowerShell。有什么想法可以让这个工作起来吗?
-Name processmodel.userName
- 它似乎是大小写敏感的(至少在Server 2016中)。 - user2871239