2014-11-03 54 views
0

我发现下面,命令行更新IIS 6 IP限制用于添加的IP地址在IIS 7使用命令行

appcmd set config /section:ipsecurity /+"[ipaddress='10.0.0.1',allowed='false']"

限制是否有IIS 6等效的命令?

谢谢!

回答

2

不,没有内置的Windows命令来做到这一点。你可以找到人们编写的脚本证据来减轻这一点。

最终,您要修改名为IPSecurity的元数据库条目。事情是这样的:这个IPSecurity条目可以设置在顶层(W3SVC服务),直到单个文件。所以,你可以为任何的定义安全:

  • 服务
  • 网站
  • VDIR
  • 文件夹
  • 文件

你的问题的例子是服务范围内,所以你会想要目标IIS://localhost/W3SVC。如果你只想配置默认网站,你的目标是IIS://localhost/W3SVC/1/Root

一旦您知道要修改的级别,您需要确定匹配IP的操作过程。你显然想阻止。 That means you'll need to modify the IPDeny List.

现在您只需编写一个脚本,使用您选择的语言通过ADSI连接到配置数据库,并修改IPDeny列表以包含附加IP。

我修改从MSDN页面的一个带参数:

Dim SecObj 
    Dim MyIPSec 
    Dim IPList 

    Set SecObj = GetObject("IIS://LocalHost/W3SVC") 
    Set MyIPSec = SecObj.IPSecurity 
    If (FALSE = MyIPSec.GrantByDefault) Then 
    MyIPSec.GrantByDefault = TRUE 
    End If 

    if WScript.Arguments.Count = 0 then 
    WScript.Echo "Missing IP Address" 
    WScript.Quit(1) 
    end if 

    ' WScript.Echo "Adding " & WScript.Arguments(0) 

    IPList = MyIPSec.IPDeny 
    Redim Preserve IPList (Ubound(IPList)+1) 
    IPList (Ubound(IPList)) = WScript.Arguments(0) 

    MyIPSec.IPDeny = IPList 
    SecObj.IPSecurity = MyIPSec 
    SecObj.Setinfo 

如果您保存此为blockip.vbs,你可以把它叫做:

wscript blockip.vbs 10.0.0.1

仅供参考,这对IIS6工作正常,但在Win7(IIS 7.5)上工作一次,然后在列表存在后失败。

+0

谢谢!它非常有效! – Osprey 2014-11-12 07:17:44

+0

@Osprey很高兴我能帮忙:) – 2014-11-12 14:12:00