Есть идеи, как добавить новый элемент в корень applicationHost.config с помощью модуля IISAdministration?
Я бы собрал воедино текущий код (отредактированный для краткости), чтобы загрузить новый сайт в IIS 10.
Import-Module IISAdministration
$Manager = Get-IISServerManager
$Name = "my.sitedomain.foo"
$Config = $Manager.GetApplicationHostConfiguration()
$Config.GetSection("system.webServer/security/dynamicIpSecurity",$Name)
$DIPSecurity = $Config.GetSection("system.webServer/security/dynamicIpSecurity",$Name)
if($DIPSecurity -ne $null){
$DIPSecurity.GetChildElement("denyByRequest") | %{
$_.SetAttributeValue("enabled",$true)
$_.SetAttributeValue("maxRequests",20)
$_.SetAttributeValue("requestIntervalInMilliseconds",200)
}
}
Когда элемент dynamicIpSecurity был изменен с помощью диспетчера IIS, xml добавляется в файл конфигурации.Однако в готовом виде мой IIS applicationHost.config не имеет дочернего элемента <location>
для сайта.
Цель состоит в том, чтобы проверить, существует ли элемент location, и если нет, добавить что-нибудькак следующий
<location path="my.sitedomain.foo">
<system.webServer>
<security>
<dynamicIpSecurity>
<denyByConcurrentRequests enabled="true" />
<denyByRequestRate enabled="true" />
</dynamicIpSecurity>
</security>
</system.webServer>
</location>
Большое спасибо, Джеймс