请求协助:修复为名称以AS开头的IIS应用池启用32位模式的脚本
IIS应用池批量设置enable32BitAppOnWin64属性问题解决
你的脚本存在两个关键问题导致无法正常运行:
- 路径拼接错误:
$item是完整的应用池对象,直接拼到IIS:\AppPools\后面会生成无效路径,需要提取对象的Name属性来拼接合法路径 - 数据类型不匹配:
enable32BitAppOnWin64是布尔类型属性,不能传入字符串"true",必须使用PowerShell原生布尔值$true
修正后的脚本如下:
Import-Module WebAdministration # 使用布尔值而非字符串赋值 $enable32bit = $true # 筛选名称以AS开头的应用池 $results = Get-IISAppPool | Where-Object {$_.Name -like "AS*"} foreach ($item in $results) { # 用应用池名称拼接正确的IIS路径 Set-ItemProperty "IIS:\AppPools\$($item.Name)" -Name "enable32BitAppOnWin64" -Value $enable32bit }
额外注意事项:
- 必须以管理员权限运行PowerShell,否则会因权限不足无法修改应用池配置
- 确保
WebAdministration模块可正常加载(Windows Server默认自带,桌面版Windows需先安装IIS管理工具组件)
内容的提问来源于stack exchange,提问作者jma
相关产品推荐
相关产品推荐

