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

如何通过PowerShell获取、添加、修改IIS网站的允许服务器变量?

通过PowerShell为IIS站点添加URL Rewrite允许的服务器变量

前提条件

  • 已安装IIS URL Rewrite模块
  • 已安装IIS管理PowerShell模块(Windows Server默认自带,缺失可通过服务器功能安装)

操作步骤

  1. 首先导入IIS管理模块
Import-Module IISAdministration
# 兼容旧版系统可替换为 Import-Module WebAdministration
  1. 定义要操作的站点名称与需要添加的服务器变量列表
# 替换为你的实际站点名
$siteName = "Default Web Site"

# 可根据反向代理需求自定义变量列表
$allowedServerVars = @(
    "HTTP_X_FORWARDED_FOR",
    "HTTP_X_FORWARDED_PROTO",
    "HTTP_X_ORIGINAL_HOST",
    "HTTP_X_REAL_IP"
)
  1. 执行添加操作(自带重复校验,不会报错)
foreach ($var in $allowedServerVars) {
    $existCheck = Get-WebConfigurationProperty -PSPath "MACHINE/WEBROOT/APPHOST/$siteName" -Filter "system.webServer/rewrite/allowedServerVariables/add[@name='$var']" -Name "."
    if (-not $existCheck) {
        Add-WebConfigurationProperty -PSPath "MACHINE/WEBROOT/APPHOST/$siteName" -Filter "system.webServer/rewrite/allowedServerVariables" -Name "." -Value @{name = $var}
        Write-Host "成功添加服务器变量:$var"
    } else {
        Write-Host "服务器变量 $var 已存在,跳过"
    }
}

验证配置

执行以下命令可以列出当前站点所有已允许的服务器变量:

Get-WebConfigurationProperty -PSPath "MACHINE/WEBROOT/APPHOST/$siteName" -Filter "system.webServer/rewrite/allowedServerVariables" -Name "." | Select-Object -ExpandProperty Collection | Select-Object name

说明

  • 上述配置写入站点级的applicationHost.config文件,属于IIS全局站点配置,优先级高于站点根目录的web.config,符合URL Rewrite服务器变量的配置要求。
  • 如果需要配置所有站点全局生效的允许服务器变量,将命令中PSPath参数的值改为MACHINE/WEBROOT/APPHOST即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 05:06:05