2014-11-03 85 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