任何人都知道如何以编程方式将IP地址添加到具有高级安全性的Server 2008 Windows防火墙规则?以编程方式将IP添加到Server 2008防火墙规则
即,我已经设置了一个Block Action防火墙规则,该规则在范围的“远程IP地址”部分下列出了一些IP地址。我希望能够以编程方式从此列表中添加(或删除)IP地址。有没有.NET对象可以做到这一点?
任何人都知道如何以编程方式将IP地址添加到具有高级安全性的Server 2008 Windows防火墙规则?以编程方式将IP添加到Server 2008防火墙规则
即,我已经设置了一个Block Action防火墙规则,该规则在范围的“远程IP地址”部分下列出了一些IP地址。我希望能够以编程方式从此列表中添加(或删除)IP地址。有没有.NET对象可以做到这一点?
具有高级安全性起始页Windows防火墙,可以发现:
http://msdn.microsoft.com/en-us/library/ff956124(v=VS.85).aspx
具体来说,看来你需要的INetFwRule接口是在描述:
http://msdn.microsoft.com/en-us/library/aa365344(v=VS.85).aspx
检查get_RemoteAddresses和put_RemoteAddresses
您也可以尝试netsh环境。
我用过一次改变我的接口的MTU
我刚刚在vb.NET中完成了这项工作。 添加refrence到 “C:\ WINDOWS \ SYSTEM32 \ firewallapi.dll”
建立一个叫做防火墙类 - 像这样:
Imports NetFwTypeLib
Imports System.Net
Public Class Firewall
Implements IDisposable
Private _policy As INetFwPolicy2 = Nothing
Private ReadOnly Property Policy As INetFwPolicy2
Get
If _policy Is Nothing Then
_policy = DirectCast(Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")), INetFwPolicy2)
End If
Return _policy
End Get
End Property
Public Sub Add(ipAddress As IPAddress, ruleName As String)
Dim firewallRule As NetFwTypeLib.INetFwRule = Policy.Rules.Item(ruleName)
Dim NewAddress As String = ipAddress.ToString & "/255.255.255.255"
If Not firewallRule.RemoteAddresses.Contains(NewAddress) Then
firewallRule.RemoteAddresses += "," & NewAddress
End If
End Sub
Public Sub Remove(ipAddress As IPAddress, ruleName As String)
Dim firewallRule As NetFwTypeLib.INetFwRule = Policy.Rules.Item(ruleName)
Dim NewAddress As String = ipAddress.ToString & "/255.255.255.255"
If firewallRule.RemoteAddresses.Contains(NewAddress) Then
Dim ipList As String = firewallRule.RemoteAddresses
ipList = ipList.Replace(NewAddress, "")
ipList = ipList.Replace(",,", ",")
firewallRule.RemoteAddresses = ipList
End If
End Sub
Public Function Exists(ipAddress As IPAddress, ruleName As String) As Boolean
Dim firewallRule As NetFwTypeLib.INetFwRule = Policy.Rules.Item(ruleName)
Dim NewAddress As String = ipAddress.ToString & "/255.255.255.255"
If firewallRule.RemoteAddresses.Contains(NewAddress) Then
Return True
Else
Return False
End If
End Function
Private disposedValue As Boolean
Protected Overridable Sub Dispose(disposing As Boolean)
If Not Me.disposedValue Then
If disposing Then
End If
If Not _policy Is Nothing Then
_policy = Nothing
End If
End If
Me.disposedValue = True
End Sub
Public Sub Dispose() Implements IDisposable.Dispose
Dispose(True)
GC.SuppressFinalize(Me)
End Sub
End Class
漂亮的代码。为我工作得很好。 – SamTech 2013-08-12 04:42:27