我正在配置某些服务器上的 IIS,以将拒绝 HTTP 动词添加到请求过滤部分。这是使用以下命令完成的:
Add-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter 'system.webServer/security/requestFiltering' -Value @{VERB="OPTIONS";allowed="False"} -Name Verbs -AtIndex 0
…但是,我希望能够在配置完成后确认它的存在。以下显示了一些属性,但不是实际的 HTTP 动词列表:
Get-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter 'system.webServer/security/requestFiltering' -Name Verbs
此后我发现以下命令确实显示了“Verbs”的标题,但无论 IIS 管理控制台中是否存在“OPTIONS”,它都是空的:
Get-WebConfiguration system.webServer/security/RequestFiltering/verbs -Recurse | Select-Object Verbs
我需要添加什么来列出现有的动词?
答案1
尝试:
Get-WebConfiguration -pspath 'MACHINE/WEBROOT/APPHOST' -filter 'system.webServer/security/requestFiltering/verbs/add' | ft verb,allowed
使用完整的 Xpath 到 XML 节点。
有时查看applicationhost.config
文件有助于确定数据的确切存储位置。您可以使用 Diff 工具查看在 UI 中更改某些内容后的差异。
要删除特定动词,请使用:
Remove-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webServer/security/requestFiltering/verbs" -name "." -AtElement @{verb='OPTIONS'}