Я настраиваю 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», но он пуст, несмотря на то, что «OPTIONS» присутствует в консоли администратора IIS:
Get-WebConfiguration system.webServer/security/RequestFiltering/verbs -Recurse | Select-Object Verbs
Что мне нужно добавить, чтобы перечислить присутствующие глаголы?
Попробуйте:
Get-WebConfiguration -pspath 'MACHINE/WEBROOT/APPHOST' -filter 'system.webServer/security/requestFiltering/verbs/add' | ft verb,allowed
используйте полный Xpath к узлу XML.
Иногда полезно просмотреть файл applicationhost.config
, чтобы выяснить, где именно хранятся данные. Вы можете использовать инструмент Diff, чтобы увидеть различия после изменения чего-либо в пользовательском интерфейсе.
Чтобы удалить конкретный глагол, используйте:
Remove-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -filter "system.webServer/security/requestFiltering/verbs" -name "." -AtElement @{verb='OPTIONS'}