1 /// 通过对象防火墙操作
2 /// 域网络防火墙(禁用:false;启用(默认):true)
3 /// 公共网络防火墙(禁用:false;启用(默认):true)
4 /// 专用网络防火墙(禁用: false;启用(默认):true)
5 public static bool FirewallOperateByObject(bool isOpenDomain = true, bool isOpenPublicState = true, bool isOpenStandard = true)
6 {
7 try
8 {
9 INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
10 // 启用<高级安全Windows防火墙> - 专有配置文件的防火墙
11 firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PRIVATE, isOpenStandard);
12 // 启用<高级安全Windows防火墙> - 公用配置文件的防火墙
13 firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC, isOpenPublicState);
14 // 启用<高级安全Windows防火墙> - 域配置文件的防火墙
15 firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_DOMAIN, isOpenDomain);
16 }
17 catch (Exception e)
18 {
19 string error = $"防火墙修改出错:{e.Message}";
20 throw new Exception(error);
21 }
22 return true;
23 }