为什么appcmd.exe不允许设置ipSecurity allowUnlisted?

时间:2019-02-11 10:49:31

标签: powershell iis appcmd ip-restrictions

我想使用PowerShell将IP限制设置为我网站上的/ admin文件夹。

我确实知道,因为此部分已锁定,所以我必须转到applicationHost.config,除非我解锁,否则无法在该特定文件夹中使用本地web.config。 我还弄清楚了如何使用appcmd.exe添加IP限制规则。

由于allowUnlisted默认为true(允许),我还必须将其设置为false,这是我无法完成的,因为当我使用以下命令时出现错误:

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

错误(消息:无法将属性“ allowUnlisted”设置为值“ false”。)原因:此配置部分不能在此使用   路径。当该节被锁定在父级时会发生这种情况。

我还发现有appcmd锁定/解锁功能,但是这些命令不允许特定位置。我不想更改任何预期我的$ locations行为的东西,并在applicationHost.config中进行。

使用GUI完全有可能 ,在IIS管理器中使用“编辑”功能中我特定的admin文件夹的IP限制,我可以将其设置为“拒绝”,这会添加到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>

问题

如何使用CLI方式在applicationHost.config中进行此更改?

2 个答案:

答案 0 :(得分:1)

我对使用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"

答案 1 :(得分:1)

添加/提交:

.\appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /allowUnlisted:'false'  /commit:apphost

如果要使用appcmd进行操作