通过 PowerShell 查看 IIS Web 配置:HTTP 动词

jsh*_*zle 4 iis powershell httpverbs

I\xe2\x80\x99m 在某些服务器上配置 IIS 以将拒绝 HTTP 动词添加到请求过滤部分。这是使用以下方法完成的:

\n
Add-WebConfigurationProperty -PSPath 'MACHINE/WEBROOT/APPHOST' -Filter 'system.webServer/security/requestFiltering' -Value @{VERB="OPTIONS";allowed="False"} -Name Verbs -AtIndex 0\n
Run Code Online (Sandbox Code Playgroud)\n

\xe2\x80\xa6但是,我希望能够在配置\xe2\x80\x99s 后确认它的存在。下面显示了一些属性,但不是实际的 HTTP 动词列表:

\n
Get-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter 'system.webServer/security/requestFiltering' -Name Verbs\n
Run Code Online (Sandbox Code Playgroud)\n

我发现以下命令确实显示了“Verbs”的标题,但无论 IIS 管理控制台中是否存在“OPTIONS”,它都是空的:

\n
Get-WebConfiguration system.webServer/security/RequestFiltering/verbs -Recurse | Select-Object Verbs\n
Run Code Online (Sandbox Code Playgroud)\n

我需要添加什么来列出出现的动词?

\n

Pet*_*orf 5

尝试:

Get-WebConfiguration -pspath 'MACHINE/WEBROOT/APPHOST' -filter 'system.webServer/security/requestFiltering/verbs/add' | ft verb,allowed
Run Code Online (Sandbox Code Playgroud)

使用 XML 节点的完整 Xpath。

有时,查看applicationhost.config文件有助于确定数据的确切存储位置。您可以使用 Diff 工具来查看更改 UI 中的某些内容后的差异。

要删除特定动词,请使用:

Remove-WebConfigurationProperty  -pspath 'MACHINE/WEBROOT/APPHOST'  -filter "system.webServer/security/requestFiltering/verbs" -name "." -AtElement @{verb='OPTIONS'}
Run Code Online (Sandbox Code Playgroud)