Почему appcmd.exe не позволяет установить ipSecurity allowUnlisted? - PullRequest
0 голосов
/ 11 февраля 2019

Я бы хотел установить ограничение ip для папки / admin на моем веб-сайте с PowerShell.

Я понимаю, что, поскольку этот раздел заблокирован, я должен перейти в applicationHost.config, и, если я не разблокируюЯ не могу использовать локальный web.config в этой конкретной папке.Я также выяснил, как я могу добавить правило ограничения IP, используя appcmd.exe.

Из-за того, что allowUnlisted имеет значение true (Разрешить) по умолчанию, я также должен установить его как false, чего не могу достичь, потому что когдаЯ использую следующую команду. Я получил ошибку:

$location = "My Site/admin"
appcmd.exe set config $location -section:system.webServer/security/ipSecurity /allowUnlisted:false

ОШИБКА (сообщение: невозможно установить для атрибута "allowUnlisted" значение "false" .. Причина: этот раздел конфигурации не может использоваться по этому путиЭто происходит, когда раздел заблокирован на родительском уровне.

Я также обнаружил, что есть функция блокировки / разблокировки appcmd, но эти команды не позволяют указать конкретное местоположение. Я не хочу менятьчто-нибудь ожидает моего поведения $ местоположений, и делайте это в applicationHost.config.

Что вполне возможно , используя GUI , в IIS Manager, используя ограничения IP для моей конкретной папки администратора в функции РедактироватьЯ могу установить его в Deny, и это добавляет к концу applicationHost.config следующие строки (без других изменений):

<location path="My Site/admin">
    <system.webServer>
        <security>
            <ipSecurity allowUnlisted="false">
                <add ipAddress="127.0.0.1" allowed="true" />
            </ipSecurity>
        </security>
    </system.webServer>
</location>

Вопрос

Как я могу сделать это изменение в applicationHost.config с помощью CLI?

1 Ответ

0 голосов
/ 11 февраля 2019

Я не знаю много об использовании appcmd.exe.Однако, если вы хотите использовать модуль PowerShell WebAdministration, вы можете использовать следующее:

$location = "My Site/Admin"
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST' -location $location -filter "system.webServer/security/ipSecurity" -name "allowUnlisted" -value "False"
...