如何从 Powershell 设置“setProfileEnvironment”属性?
以下代码生成错误 “在此对象上找不到属性“setProfileEnvironment”。请验证该属性是否存在并且可以设置。”
$IISServerManager = Get-IISServerManager
$pool = $IISServerManager.ApplicationPools.Add("MyPoolName")
...
$pool.ProcessModel.LoadUserProfile = $true
$pool.ProcessModel.SetProfileEnvironment = $true
@BruceZhang 的回答有效,就像这样:
Set-ItemProperty ("IIS:\AppPools\MyAppPoolName") -Name processModel.setProfileEnvironment -value "true"
如果您使用的是原始帖子中的代码块,请确保在调用上述命令之前提交更改,以便新的应用程序池存在,使用:
$IISServerManager.CommitChanges()
我今天遇到了这个问题,发现了另一种使用 ProcessModel.Attributes 的替代方法,我认为它更简洁:
$pool.ProcessModel.Attributes['setProfileEnvironment'].Value
将其添加到问题的示例中,如下所示:
$IISServerManager = Get-IISServerManager
$pool = $IISServerManager.ApplicationPools.Add("MyPoolName")
...
$pool.ProcessModel.LoadUserProfile = $true
$pool.ProcessModel.Attributes['setProfileEnvironment'].Value = $true
$IISServerManager.CommitChanges()