You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过PowerShell脚本基于CSV修改IIS服务器应用程序池配置

实现方案

首先你需要先调整此前导出的CSV文件:仅保留你需要修改配置的应用程序池对应行,删除不需要调整的应用池数据,列保留AppPoolName(用于匹配目标应用池)和所有你需要修改的配置字段列即可,不需要保留无关字段。

然后替换原有的导出脚本为以下修改配置的脚本即可实现需求:

# 检查IIS是否安装
$IISInstalled = (Get-WindowsFeature -Name "Web-Server").Installed
If ($IISInstalled -eq $false){
    Write-Output "IIS not installed"
    exit
}

# 导入IIS管理模块
Import-Module WebAdministration -ErrorAction Stop

# 配置参数:修改为你的CSV文件实际路径
$csvPath = "\\w2-cmn-util02\Reports\app-pool-azure-20210729.csv"
# 读取CSV配置
$poolConfigList = Import-Csv -Path $csvPath -Encoding UTF8

foreach ($config in $poolConfigList) {
    $poolPath = "IIS:\AppPools\$($config.AppPoolName)"
    # 检查应用池是否存在
    if (-not (Test-Path $poolPath)) {
        Write-Warning "应用池 $($config.AppPoolName) 不存在,跳过修改"
        continue
    }

    # 逐个修改配置项,以下字段请和你CSV里的列名对应,不需要的字段可以删掉
    Set-ItemProperty -Path $poolPath -Name "managedRuntimeVersion" -Value $config.NETCLRVer
    Set-ItemProperty -Path $poolPath -Name "enable32BitAppOnWin64" -Value [bool]::Parse($config.'32-bit')
    Set-ItemProperty -Path $poolPath -Name "managedPipelineMode" -Value $config.ManagedPipeline
    Set-ItemProperty -Path $poolPath -Name "queueLength" -Value [int]$config.QueueLength
    Set-ItemProperty -Path $poolPath -Name "startMode" -Value $config.StartMode
    Set-ItemProperty -Path $poolPath -Name "recycling.periodicRestart.time" -Value [TimeSpan]::Parse($config.'recycling-periodicRestarttime')

    # 保存修改
    Start-WebAppPool -Name $config.AppPoolName
    Write-Output "应用池 $($config.AppPoolName) 配置修改完成"
}
注意事项
  • 脚本需要以管理员权限运行,避免权限不足导致修改失败
  • 首次测试可以在所有Set-ItemProperty末尾添加-WhatIf参数,运行后只会输出模拟修改结果,不会实际改动配置,确认无误后再去掉该参数即可
  • 如果需要批量在多台服务器执行该脚本,可以配合Invoke-Command远程命令执行,无需逐台登录服务器操作
  • 如果你的CSV里还有其他需要修改的配置项,参照示例格式新增对应的Set-ItemProperty语句即可

内容的提问来源于stack exchange,提问作者Aro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 01:00:03