public static void CloseFileWall() { // 1. 判断当前系统为XP或Win7 //RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"Software\\Microsoft\\Windows NT\\CurrentVersion"); //var VersionName = rk.GetValue("ProductName").ToString(); //rk.Close(); // 2.关闭防火墙 //if (VersionName.Contains("XP")) //{ // RegistryKey rekey = Registry.LocalMachine.OpenSubKey(@"SYSTEM\\CurrentControlSet\\Services\\SharedAccess\\Parameters\\FirewallPolicy\\StandardProfile", true); // var Enablefilewall = rekey.GetValue("EnableFirewall").ToString(); // if (Enablefilewall == "1") // { // rekey.SetValue("EnableFirewall", 0); // } // rekey.Close(); //} //else { INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")); // 禁用<高级安全Windows防火墙> - 专有配置文件的防火墙 firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PRIVATE, false); // 禁用<高级安全Windows防火墙> - 公用配置文件的防火墙 firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC, false); } }
/// <summary> /// Set the firewall status (enabled or disabled). /// </summary> /// <param name="enable">True to enable, or false to disable.</param> public static void SetFirewall(bool enable) { NET_FW_PROFILE_TYPE2_ currentProfileTypes; INetFwPolicy2 policy = GetCurrentPolicy(); currentProfileTypes = (NET_FW_PROFILE_TYPE2_)policy.CurrentProfileTypes; policy.set_FirewallEnabled(currentProfileTypes, enable); }
/// <summary> /// 通过对象防火墙操作 /// </summary> /// <param name="isOpenDomain">域网络防火墙(禁用:false;启用(默认):true)</param> /// <param name="isOpenPublicState">公共网络防火墙(禁用:false;启用(默认):true)</param> /// <param name="isOpenStandard">专用网络防火墙(禁用: false;启用(默认):true)</param> /// <returns></returns> public static bool FirewallOperateByObject(bool isOpenDomain = true, bool isOpenPublicState = true, bool isOpenStandard = true) { try { INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")); // 启用<高级安全Windows防火墙> - 专有配置文件的防火墙 firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PRIVATE, isOpenStandard); // 启用<高级安全Windows防火墙> - 公用配置文件的防火墙 firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC, isOpenPublicState); // 启用<高级安全Windows防火墙> - 域配置文件的防火墙 firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_DOMAIN, isOpenDomain); } catch (Exception e) { string error = $"防火墙修改出错:{e.Message}"; //throw new Exception(error); System.Windows.Forms.MessageBox.Show(error); return(false); } return(true); }
/// <summary> /// 防火墙操作 /// </summary> /// <param name="isOpenDomain">域网络防火墙(禁用:false;启用(默认):true)</param> /// <param name="isOpenPublicState">公共网络防火墙(禁用:false;启用(默认):true)</param> /// <param name="isOpenStandard">专用网络防火墙(禁用: false;启用(默认):true)</param> /// <returns></returns> public static bool FirewallOpen(bool isOpenDomain = true, bool isOpenPublicState = true, bool isOpenStandard = true) { try { if (!IsAdministrator) { throw new Exception("操作防火墙必须已管理员身份运行。"); } INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")); // 启用<高级安全Windows防火墙> - 专有配置文件的防火墙 firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PRIVATE, isOpenStandard); // 启用<高级安全Windows防火墙> - 公用配置文件的防火墙 firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC, isOpenPublicState); // 启用<高级安全Windows防火墙> - 域配置文件的防火墙 firewallPolicy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_DOMAIN, isOpenDomain); } catch (Exception e) { string error = $"防火墙修改出错:{e.Message}"; throw new Exception(error); } return(true); }
public static void SetFirewallStatus(bool newStatus) { try { NET_FW_PROFILE_TYPE2_ fwCurrentProfileTypes; INetFwPolicy2 currPolicy = getCurrPolicy(); //read Current Profile Types (only to increase Performace) //avoids access on CurrentProfileTypes from each Property fwCurrentProfileTypes = (NET_FW_PROFILE_TYPE2_)currPolicy.CurrentProfileTypes; currPolicy.set_FirewallEnabled(fwCurrentProfileTypes, newStatus); } catch (Exception e) { Logger.Log(e.ToString()); } }
private Boolean changeStatus(NET_FW_PROFILE_TYPE2_ fwProfile, Boolean enabled) { fw.set_FirewallEnabled(fwProfile, enabled); return(true); }
public static void Enable_Firewall() { policy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PUBLIC, true); policy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_PRIVATE, true); policy.set_FirewallEnabled(NET_FW_PROFILE_TYPE2_.NET_FW_PROFILE2_DOMAIN, true); }
public void SetFirewallStatus(INetFwPolicy2 currentPolicy, bool newStatus) { var fwCurrentProfileTypes = (NET_FW_PROFILE_TYPE2_)currentPolicy.CurrentProfileTypes; currentPolicy.set_FirewallEnabled(fwCurrentProfileTypes, newStatus); }