代码之家  ›  专栏  ›  技术社区  ›  g.pickardou

为什么appcmd.exe不允许设置ipsecurity allowinlist?

  •  0
  • g.pickardou  · 技术社区  · 7 年前

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

    我确实理解,因为这个部分被锁定了,我必须转到applicationhost.config,除非我解锁,否则我不能在那个特定的文件夹中使用本地web.config。 我还了解了如何使用appcmd.exe添加IP限制规则。

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

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

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

    我还发现有appcmd锁定/解锁功能,但这些命令不允许指定位置。我不想更改除$locations行为以外的任何内容,请在applicationhost.config中进行更改。

    哪个是 完全可以使用图形用户界面 ,在使用“编辑”功能中“我的particuar管理”文件夹上的IP限制的IIS管理器中,我可以将其设置为“拒绝”,这会将以下行添加到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中进行此更改?

    1 回复  |  直到 7 年前
        1
  •  1
  •   AdminOfThings    7 年前

    我对使用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"
    
    推荐文章