我试图通过运行以下Cmdlet,使用PowerShell将IIS应用程序池的Enable32BitApplication和LoadUserProfile的值设置为True:

(Get-IISAppPool -Name DefaultAppPool).enable32BitAppOnWin64 = $True
(Get-IISAppPool -Name DefaultAppPool).ProcessModel.LoadUserProfile = $True

当我使用PowerShell检索这些值时,似乎Cmdlet已成功运行,但是当我尝试在GUI中检查它时,我会注意到它没有用。这就是为什么我尝试测试实际应用程序池的网站的原因,并且我发现这些Cmdlet无法正常工作。任何人都可以通过正确的PowerShell Cmdlet帮助我吗?

最佳答案

为了通过修改Get-IISAppPool返回的对象使其起作用,您必须在更改值之前调用Start-IISCommitDelay,然后在进行更改后调用Stop-IISCommitDelay。因此,在您的情况下,它将是:

Start-IISCommitDelay
(Get-IISAppPool -Name DefaultAppPool).enable32BitAppOnWin64 = $True
(Get-IISAppPool -Name DefaultAppPool).ProcessModel.LoadUserProfile = $True
Stop-IISCommitDelay

10-08 16:05