首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#(VB.NET)操作Windows自带的防火墙 之 启用(开启)/禁用(关闭)防火墙

C# 操作 Windows 自带的防火墙分为启用(开启)/禁用(关闭)防火墙两种情况。在 C# 代码中,我们可以通过操作注册表中的 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WFDg 下的防火墙策略来实现这一步操作。

以下是详细的步骤:

  1. 使用 C# 操作注册表

使用 C# 中的 System.Runtime.InteropServices.DllImport("Shell32.dll") 属性定义以下函数:

代码语言:csharp
复制
[DllImport("Shell32.dll")]
private static extern uint SHNavigate2([In] ref SHELLEXECUTEINFO pSHELLEXECUTEINFO);

[DllImport("Kernel32.dll")]
private static extern uint RegOpenKeyEx(IntPtr hKey,
    [MarshalAs(UnmanagedType.LPTStr), In] string lpSubKey,
    int ulOptions, int samDesired, out IntPtr phkResult);

[DllImport("Kernel32.dll")]
private static extern int RegCloseKey(IntPtr hKey);

[DllImport("Advapi32.dll", EntryPoint = "RegQueryValueEx", CharSet = CharSet.Auto, SetLastError = true)]
private static extern int RegQueryValueEx ([In, MarshalAs(UnmanagedType.LPTStr)]
    string lpValueName, int reserved, out uint Type, byte[] lpData, ref uint lpcbData);
  1. 实现代码

首先打开防火墙,执行以下代码:

代码语言:csharp
复制
SHELLEXECUTEINFO sei = CreateShellExecuteInfo(null, "cmd", "/c netsh advfirewall firewall add rule name=\"YourRuleNameHere\" dir=in action=allow protocol=any scope=per\_user", 0, null);
SHNavigate2(ref sei);
int retCode = HIWORD(sei.hResult);
Marshal.FreeCoTaskMem((IntPtr)sei);
regOpenKeyEx IntPtr hkey, "SYSTEM\CurrentControlSet\Services\WFDg", 0, 0, out IntPtr phkResult);
int retCode = RegOpenKeyEx(phkResult, "CurrentConfiguration", 1, 0, out hkey1);
int retCode = RegQueryValueEx (hkey1, "FirewallPolicy", 0, out uint nTType, string FirewallPolicy, ref uint ncbName);

在注册表中找到当前配置的 FirewallPolicy,然后查询该策略下的所有规则项,找到需要打开的规则,删除,然后重新新建。删除的方法是:将规则对应的类型从 registrykey 中删除,如果 registrykey 为 phkResult,可以直接删除。重新新建的方法是更新 phkResult 指向的 registrykey 下的 FirewallPolicy 对象。

  1. 反向注册表操作

禁用防火墙的方法是使用 System.Runtime.InteropServices.DllImport("Shell32.dll") 属性定义以下函数,然后将防火墙功能设置为 0,并将注册表中的 firewall policy 值设置为 0。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

C#(VB.NET)操作Windows自带防火墙 启用开启禁用关闭防火墙

转载:http://www.cnblogs.com/sjcatsoft/archive/2009/01/15/1376489.html 在上一篇 C#(VB.NET)操作Windows自带防火墙 ...综述篇 里,我们提到了下面这幅图 本篇,我们就实现 启用/关闭 和 是否允许例外 功能 先说明一点,因为windows自带了“安全中心” Security Center 这个功能,用程序关闭防火墙时,...要解决这个问题,其实很简单,就是 将 Security Center 关闭关闭方法: 利用 net stop 或者修改注册表 或者.NET 里面自带windows service操作,都可以,我就不啰嗦了...核心代码: C# 方式: /// /// 获取防火墙管理的当前策略 /// /// 返回策略对应 object private static object FirewallCurrentProfile() { //获取管理防火墙COM组件type Type fwMgrType

88520

C#(VB.NET)操作Windows自带防火墙 启用开启禁用关闭防火墙

在上一篇 C#(VB.NET)操作Windows自带防火墙 综述篇 里,我们提到了下面这幅图 本篇,我们就实现 启用/关闭 和 是否允许例外 功能 先说明一点,因为windows自带了“安全中心...” Security Center 这个功能,用程序关闭防火墙时,“安全中心” 会弹出提示,如图: ?...要解决这个问题,其实很简单,就是 将 Security Center 关闭关闭方法: 利用 net stop 或者 修改注册表 或者.NET 里面自带 windows service操作,都可以,...核心代码: C# 方式: /// /// 获取防火墙管理的当前策略 /// /// 返回策略对应 object private static object FirewallCurrentProfile() { //获取管理防火墙COM组件type Type fwMgrType

2.4K20
  • ubuntu开启关闭防火墙操作命令

    安装方法 sudo apt-get install ufw 当然,这是有图形界面的(比较简陋),在新立得里搜索gufw试试…… 使用方法 1 启用 sudo ufw enable sudo ufw...default deny 作用:开启防火墙并随系统启动同时关闭所有外部对本机访问(本机访问外部正常)。...2 关闭 sudo ufw disable 3 查看防火墙状态 sudo ufw status 4 开启/禁用相应端口或服务举例 sudo ufw allow 80 允许外部访问80端口 sudo...sudo ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 22 要拒绝所有的TCP流量从10.0.0.0/8 到192.168.0.1地址22...sudo apt-get install ufw sudo ufw enable sudo ufw default deny 这样设置已经很安全,如果有特殊需要,可以使用sudo ufw allow开启相应服务

    2.2K21

    Linux学习笔记CentOS6.9 防火墙关闭以及开启

    有的时候,我们需要对系统防火墙进行操作,今天小编就给大家讲解一下如何开启以及关闭CentOS6.9系统下防火墙。 输入:cat /etc/issue   查看版本 ?...(一)通过service命令 service命令开启以及关闭防火墙为即时生效,下次重启机器时候会自动复原。.../init.d/iptables 进行操作 查看防火墙状态:/etc/init.d/iptables/status ?...关闭防火墙:/etc/init.d/iptables stop(这是临时关闭关闭是当前运行防火墙,重启之后防火墙又会启动,因为它是开机自启动) ?...这是临时关闭关闭是当前运行防火墙,重启之后防火墙又会启动,因为它是开机自启动,它相当于/etc/init.d/iptables start。

    1.1K10

    防火墙怎么关闭,一般设置在哪里?

    在电脑上装一个防火墙绝对是一个正确做法,因为在一定程度上防火墙可以保护我们电脑安全。那么有的时候如果正在操作电脑不需要防火墙暂时工作时,防火墙怎么关闭呢,防火墙一般设置在什么位置?...image.png 一、防火墙怎么关闭启用在哪里操作 想了解电脑防火墙关闭启用在哪里操作,最简单方法就是打开电脑点击左下角开始菜单,找到控制面板,二话不说直接进入,在大图标显示情况下找到windows...防火墙,点开windows防火墙后,如果想禁用防火墙就直接选定关闭,然在确定就可以了;如果是想启用防火墙就直接选定启用,然后再确定就OK了。...关于防火墙怎么关闭启用操作方法就是这么简单 二、防火墙基本设置 Windows防火墙启用之后,想让一些软件进行网络接连时就在防火墙中选择【允许程序通过windows防火墙通信】前小框中打上勾,...到最后添加程序太多无法确定哪个是开启禁用防火墙时,直接点击防火墙还原默认设置是最简单操作方法,当然还原后所有想要访问网络程序都会阻止,这时就需要从新选择设置windows防火墙了。

    5.6K60

    永恒蓝勒索病毒凶猛 周一上班请用正确姿势打开电脑

    北京时间5月12日开始,全球范围内爆发了基于Windows网络共享协议进行攻击传播“永恒蓝”勒索病毒。...二、开机防护操作指南 关于尚未感染用户群体详细防护步骤如下: 1)关闭网络,开启系统防火墙; 2)利用系统防火墙高级设置阻止向445端口进行连接(该操作会影响使用445端口服务)及网络共享; 3)...打开网络,开启系统自动更新,并检测更新进行安装; 2.1 Win7、Win8、Win10操作指南: 1)关闭网络:拔下网线,关闭无线路由器,已开机PC可关闭本机无线网卡,或禁用网络连接。...2)打开控制面板-系统与安全-Windows防火墙,点击左侧启动或关闭Windows防火墙 ? 3)选择启动防火墙,并点击确定 ? 4)点击高级设置 ?...2.2XP系统操作流程 1、依次打开控制面板,安全中心,Windows防火墙,选择启用 ?

    1.1K100

    Windows 2016 服务器安全配置和加固「建议收藏」

    开启并设置防火墙 如果使用了云服务器(如阿里云、腾讯云等),云服务商会提供一个防火墙工具,通常是放在路由级别的,使用起来更方便,如果误操作的话也不会将自己排除在服务器上,因此建议优先采用云服务商提供防火墙...开启关闭Windows防火墙 打开“控制面板”,依次选择“系统和安全”-“Windows防火墙”,选择左侧启用关闭Windows防火墙”,根据需要选择启用关闭Windows防火墙。...如果采用了云服务商提供防火墙的话,建议将Windows防火墙关闭。PS:开启防火墙之前需要允许远程登录端口访问,否则远程连接会中断!...允许特定端口访问 这里以Windows防火墙为例进行说明(其实云服务商提供防火墙规则是类似的),前提是防火墙启用。...“已启用”,并在“操作”中选中“阻止连接”,最后“确定”保存即可。

    4.6K20

    新装普通WIN10系统推荐一些操作

    1:关闭系统dep Dep功能默认就是开启,虽然可以对某些恶意程序起到安全保护作用。但是对于很多时候我们做测试环境或者软件会有一定影响,对此完全禁用DEP功能很有必要。...我电脑 右键属性--左下角最后一个选项--安全性与维护--出现一个进度条后将它拉至最下面,从不提示 做完以上2条操作后,重启电脑,WIN10自带小盾牌基本消失,不影响我们后续使用 3:关闭系统防火墙...我电脑--右键属性--打开控制面板--在打开控制面板页面中,找到Windows Defender防火墙功能设置项。...接下来,在打开页面中,点击页面左侧中启用关闭Windows Defnder防火墙”按钮。...,重启电脑即可 4:最重要一点 务必关闭系统自动更新 大家都知道 WIN10系统并不稳定,每次更新会存在负优化等情况,或导致桌面消失,蓝屏,等等各种难以预料事情,但是WIN10默认是自动开启更新

    81800

    xshell5连接不上虚拟机_虚拟机网络连接设置

    ,子网IP是192.168.20.0,里面IP地址就填写192.168.20.1 此时点击确定以后我们在点击一下VM8禁用,点击完以后禁用再右键单击一下启用,这时再去ping下linux主机IP就能通了...(虽然有点sb操作,但是我试过了貌似只有这样才可以,就像重启操作一样,其实在很多时候windows下ping不通linux我们都可以先禁用一下VM8然后在启用它基本上就解决了) 3.linux下ping...二:防火墙问题 二:检查你虚拟机中防火墙是否关闭 CentOs6中 查看防火墙状态:service iptables status 关闭防火墙:service iptables stop 禁用防火墙...禁用防火墙:systemctl disable firewalld.service 三:ssh服务 如果防火墙没问题的话检查ssh服务是否开启 查看ssh状态:service sshd status...正常情况下都是active,如果显示dead的话需要手动开启一下(service sshd start),如果开启时报错说没有安装ssh服务请先移步点这里 四:VM中还原默认设置 如果以上操作都没问题的话

    2.3K10

    Windows服务器基础安全加固方法(2008、2012)

    (提示:为了避免Windows自带防火墙和云平台防火墙功能冲突,在启用Windows自带防火墙后,请将云平台防火墙设置为”开放”。)...(提示,建议通过控制台Web终端来配置防火墙,以防止配置过程中出现误操作,导致远程桌面连接关闭。)...Windows防火墙” 在弹出对话框中,选择”公用配置文件”叶签,确定”防火墙状态”为”开启”,点击”确定”关闭对话框 开启防火墙后,为了不影响远程桌面的访问,需要确保允许远程桌面的访问,方法为: 在左侧树状列表中...”后链接 在弹出窗口,点击左边拦启用关闭Windows防火墙” 在弹出对话框,确保”公用网络设置”下选中”启用Windows防火墙”,并且不要勾选下面的两个复选框。...点击”确定”关闭对话框 同样,启用防火墙后也需要确保允许远程桌面的访问,方法为: 在”Windows防火墙”界面,点击”高级设置”,打开”高级安全Windows防火墙”窗口 在左边栏选择”入站规则”,

    7.1K20

    无来源ipRDP爆破防御对策小记

    通过上面两个关键词,查到许多NtLm攻击相关文章(后面发现其实和这个没关系...),我就先从SMB安全配置入手(绝招是直接关闭SMB,简单方便,读者可不做下面的操作。...具体可看这篇文章保护内网安全提高Windows AD安全性 爆破依旧 进行上述修改后,安全事件日志还是哗啦啦警告,然后我一查看云服务器安全组,我根本都没有开放445,139这类端口。...并且因为使用了云服务商安全组策略,为避免多余麻烦,没有开启windows防火墙,所以可能无法成功拦截?...开启windows防火墙 注意开启防火墙时,如果不是默认3389默认端口的话,需要手动添加入站规则。 配置好后效果如下: ? wail2ban 这样一目了然发现,还真的都是不一样ip。...(并且似乎开启防火墙后,策略组配置也生效了) 数据包分析 其实到此为止已经差不多了,但是我想肯定还是服务器有什么地方配置脆弱了,才会受到此次攻击。

    8.3K61

    内网穿透icmp隧道搭建+上线CS+环境场景搭建

    为了方便学习内网隧道技术,我在公司内网环境搭建了基于windows系统苛刻隧道环境,其实很简单,都是windows自带防火墙一些规则策略。...server 2019环境-icmp出网环境搭建记录 1 WEB服务器环境搭建 设置Windows防火墙策略 1) 启用防火墙 2) 防火墙高级设置(重点) (1)设置阻止入站/出站连接 打开高级设置...选择属性 域配置文件、专用配置文件、公用配置文件这三个标签中出站连接设置为阻止,确定 再次查看 (2)禁用全部已启用入站规则 选择入站规则,按照已启用排序,把启用规则选中,全部禁用 (...,完成 (4)新建出站规则:允许ICMP协议出站 禁用全部已启用出站规则:同样点击出站规则,把启用全部禁用掉 新建一个基于icmp协议规则 选择自定义,协议和端口 默认,下一步 协议类型选择...路径C:\phpstudy 4) 关闭windows病毒与威胁防护 ---- 2 内网服务器环境搭建 1) 开启防火墙 2) 禁用所有开启入站规则,新建入站规则:仅允许WEB服务器访问 新建规则

    2.2K21

    警惕出现下一个“WannaCry”,安天发布CVE-2017-11780漏洞免疫工具

    Windows 7系统操作如下:开始→控制面板→Windows Update→查看更新历史记录。 Windows10系统操作如下:Windows设置→更新和安全→历史更新记录(如下图)。 ?...2.2 临时防护步骤 2.2.1 由于相关原因不能及时安装补丁详细防护步骤如下: 关闭网络,开启系统防火墙; 利用系统防火墙高级设置阻止向445端口进行连接(该操作会影响使用445端口服务)及网络共享...; 打开网络,开启系统自动更新,并检测更新进行安装; 2.2.2 Windows 7系统处理流程举例: 1) 关闭网络。...2) 打开“控制面板→系统与安全→Windows防火墙”,点击左侧“启动或关闭Windows防火墙”。 ? 3) 选择“启用Windows防火墙”,并点击确定。 ? 4) 点击“高级设置”。 ?...13) Windows 7系统需要关闭Server 服务才能够禁用445端口连接。 关闭操作系统server服务:依次点击“开始 →运行”,输入services.msc,进入服务管理控制台。 ?

    94880

    Centos 防火墙开启关闭端口

    Centos 防火墙开启/关闭端口 Centos 6 开启/关闭端口 命令方式 写入iptables文件方式 Centos 7 开启/关闭端口 查看firewall服务状态 查看firewall状态...开启、重启、关闭、firewalld.service服务 查看防火墙规则 查询、开放、关闭端口 关于防火墙拦截FTP问题 查看 centos 版本 cat /etc/redhat-release...Centos 6 开启/关闭端口 命令方式 iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 端口号 -j DROP # 写入禁用规则...关闭端口 vim /etc/sysconfig/iptables # 打开防火墙规则文件, 进行编辑 service iptables restart # 重启防火墙 该方法则为直接操作文件 既可以直接删除开放端口命令...也可以添加禁用端口命令 个人比较喜欢方法二, 直接编辑规则文件, 防止同时存在禁用规则跟启用规则 Centos 7 开启/关闭端口 查看firewall服务状态 systemctl status

    3.3K40

    【错误记录】使用 Jedis 操作 Redis 数据库报错 ( JedisConnectionException | Redis 连接超时故障排查点 | 绑定配置 | 保护模式 | 防火墙 )

    文章目录 一、报错信息 二、连接超时故障排查点 1、注释配置文件中绑定配置 2、保护模式改为 no 3、检查安装 Redis 数据库系统防火墙是否关闭Windows 中查询防火墙是否关闭命令...在 Linux 中查询防火墙是否关闭命令 一、报错信息 ---- 使用 Jedis 操作 Redis 数据库报错 : Exception in thread "main" redis.clients.jedis.exceptions.JedisConnectionException...protected-mode yes 此处保护模式要关闭 , 修改为 protected-mode no 3、检查安装 Redis 数据库系统防火墙是否关闭关闭防火墙 , 才能被外部设备访问 本地...Redis 服务器 ; 在 Windows 中查询防火墙是否关闭命令 在 Windows 中查询防火墙是否关闭命令 : PowerShell 命令行查询防火墙 : 执行 Get-NetFirewallProfile...在 Linux 中查询防火墙是否关闭命令 执行 systemctl status firewalld 命令 , 查询防火墙状态 ; 防火墙开启 : 显示 active / running ; 防火墙关闭

    88510

    【安全基线】Windows终端合规安全设置

    由于黑客和病毒原因,一般情况下是不推荐使用此帐户,最好是不要开启这个帐户。修改建议:双击Guest用户->选择账户已禁用。 隐藏账户:在控制面板与开机选择中看不见账户。...在“本地策略->安全选项”中:将“关机:清除虚拟内存页面文件”,双击,修改状态为“已启用”。 登录检测 Windows登录屏幕不显示上次登录用户名 加固方案-参考配置操作: 1....在“本地策略->安全选项”中:将“交互式登录:不显示上次登录”,双击,修改状态为“已启用”。 五、入侵防范检测 Windows防火墙 开启Windows防火墙 加固方案-参考配置操作: 1....进入“控制面板->windows防火墙”. 2. 在“启用关闭防火墙/自定义设置”中:将“专用网络设置”和“公用网络设置”都开启Windows防火墙。 3....检查Windows Firewall服务是否开启,如下所示: 4. 补充:在Windows vista 以前旧版本系统中,设置稍有区别 5.

    3.8K10

    CentOS7安装mysql5.5

    一、检查本地是否安装过其他版本mysql rpm -qa|grep -i mysql 由于有些版本自带有mariadb,检查是否有mariadb,若是有需要先卸载 yum -y remove...privileges; 关闭防火墙:systemctl stop firewalld 设置开机禁用防火墙:systemctl disable firewalld.service systemctl...和防火墙firewalld命令 见下图 一、防火墙开启关闭禁用命令 (1)设置开机启用防火墙:systemctl enable firewalld.service (2)设置开机禁用防火墙:systemctl...disable firewalld.service (3)启动防火墙:systemctl start firewalld (4)关闭防火墙:systemctl stop firewalld (5...:firewall-cmd --reload (3)查看开放端口:firewall-cmd --list-ports (4)开启防火墙端口:firewall-cmd --zone=public -

    57310

    Windows 操作系统安全设置

    一、系统与磁盘格式选择   1、不要使用Ghost版Windows XP系统   在选用操作系统时,最好不要选择Ghost版Windows XP系统,因为使用此系统版本用户,默认情况下会自动开启远程终端服务...所以为此你最好在列表服务对话框内,双击messeng信使服务,在弹出属性对话框内,将其信使服务启动类型,选择为“已禁用”选项,就可将其服务关闭。   ...2、禁用clipbook服务   clipbook服务开启,可以使管理员能够轻松查看本地剪贴板里内容,但是该服务被黑客所利用,同样也会为其提供便捷查看剪贴板。...四、利用好Windows XP自带安全中心,可以有效防止外来攻击   虽然微软漏洞很多,但是Windows XP自带安全中心,也算是广大用户防御攻击一个“安慰”。...另外该安全中心还提供了防火墙功能,你只要在其下方单击“Windows 防火墙”标签,就可弹出“Windows 防火墙”对话框窗口,然后从中选中里面“启用”单选框项,单击“确定”按钮,便可发挥内置防火墙抵御外界攻击作用

    1.1K30
    领券