如何通过PowerShell为IIS管理服务设置IP地址访问限制
PowerShell配置IIS管理服务IP访问限制实操
核心差异说明
IIS管理服务(WMSVC)的IP访问限制规则,与普通站点、应用域的IP限制分属完全独立的配置存储节点,无法直接套用站点级的IP限制配置方法,这是脚本无法命中目标配置的核心原因。
站点级IP限制的配置节点为system.webServer/security/ipSecurity,仅作用于Web站点的HTTP访问流量;而管理服务的IP限制节点为system.webServer/management/ipSecurity,直接管控具备远程IIS部署、管理操作权限的来源IP范围,二者配置互相隔离、互不影响。
可直接复用的配置脚本
所有操作需要以管理员权限运行PowerShell执行:
- 加载IIS配置管理模块
Import-Module WebAdministration
- 定义管理服务IP限制的固定配置路径(直接复用即可,无需根据站点调整)
$wmsvcIpRulePath = "MACHINE/WEBROOT/APPHOST/system.webServer/management/ipSecurity"
- 配置基础限制规则:默认拒绝所有未明确放行的来源IP,清空历史冗余规则避免冲突
# 关闭未列名IP的访问权限 Set-WebConfigurationProperty -PSPath "IIS:\" -Filter $wmsvcIpRulePath -Name "allowUnlisted" -Value $false # 清空历史已配置的IP规则 Clear-WebConfiguration -Filter $wmsvcIpRulePath -PSPath "IIS:\"
- 按需添加允许/拒绝的IP规则
单IP放行/拒绝示例:
# 放行单个管理IP 10.0.0.5 Add-WebConfigurationProperty -Filter $wmsvcIpRulePath -PSPath "IIS:\" -Name "." -Value @{ipAddress="10.0.0.5"; allowed="true"}
IP网段放行/拒绝示例:
# 放行整个192.168.1.0/24网段 Add-WebConfigurationProperty -Filter $wmsvcIpRulePath -PSPath "IIS:\" -Name "." -Value @{ipAddress="192.168.1.0"; subnetMask="255.255.255.0"; allowed="true"}
生效校验与注意事项
- 所有配置修改完成后,必须重启WMSVC服务才能让规则加载生效:
Restart-Service WMSVC -Force
- 可通过以下命令实时查询当前已生效的管理服务IP规则,验证配置是否写入成功:
Get-WebConfiguration -Filter $wmsvcIpRulePath -PSPath "IIS:\"
- 若规则未生效,优先排查配置路径是否误写为站点级的安全IP限制节点,避免规则仅作用于Web站点访问、无法管控远程管理权限
- 执行脚本时必须使用管理员权限,否则会出现配置文件写入无权限的报错
内容的提问来源于stack exchange,提问作者lis
相关产品推荐
相关产品推荐

