vs2010 c# 管理win7防火墙
1. 概述
在Win7中运行的网络应用程序需要防火墙中增加许可规则。利用C#实现在防火墙自动添加入站端口许可规则。程序开发环境为vs2010旗舰版。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.TeamFoundation.Common; namespace FirewallAutomation { class Program { static void Main(string[] args) { //创建防火墙管理器实例。这里用到了COM Type netfwType = Type.GetTypeFromProgID("HNetCfg.FwMgr", false); INetFwMgr mgr = (INetFwMgr)Activator.CreateInstance(netfwType); //获取端口列表 INetFwOpenPorts ports = (INetFwOpenPorts)mgr.LocalPolicy.CurrentProfile.GloballyOpenPorts; System.Collections.IEnumerator enumerate = ports.GetEnumerator(); while (enumerate.MoveNext()) { INetFwOpenPort port = (INetFwOpenPort)enumerate.Current; Console.WriteLine("Name:{0} Protocol:{1}, Port:{2}", port.Name, port.Protocol.ToString(),port.Port); } //在入站规则中添加新的端口许可:TCP协议、8003端口 INetFwOpenPort newPort = (INetFwOpenPort)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwOpenPort")); newPort.Port = 8003; newPort.Name = "放行8003"; newPort.Protocol = NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP; newPort.Enabled = true; ports.Add(newPort); } } }
2. 运行结果
3. 注意点
程序必须获取UAC!