我想用PowerShell对我网站上的/admin文件夹设置ip限制。
我知道,因为这个部分被锁定了,我必须转到applicationHost.config,除非我解锁,否则我不能在那个特定的文件夹中使用本地web.config。我还想好了如何使用appcmd.exe添加IP限制规则。
由于allowUnlisted默认为true(Allow),我还必须将其设置为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管理器中,使用编辑功能中对我的参与者管理文件夹的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中进行此更改?
我对使用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"
添加/提交:
.appcmd.exe set config "Default Web Site" -section:system.webServer/security/ipSecurity /allowUnlisted:'false' /commit:apphost
如果你想使用appcmd