Agent 升级到 Windows 2012 R2 之后发现原来的自动化部署脚本无法正确的设置某些网站的 Application Pool User 了。原始的脚本是这个样子的:
Set-ItemProperty $AppPoolPath "ProcessModel.Username" $username
Set-ItemProperty $AppPoolPath "ProcessModel.Password" $password
Set-ItemProperty $AppPoolPath "ProcessModel.IdentityType" 3
改为
$appPool = Get-Item $AppPoolPath
$appPool.ProcessModel.Username = $username
$appPool.ProcessModel.Password = $password
$appPool.ProcessModel.IdentityType = 3
$appPool | Set-Item
解决问题。难道是因为 Set-ItemProperty 无法兼容的处理 IIS 的嵌套属性么。