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

在上一篇 C#(VB.NET)操作Windows自带的防火墙 之 综述篇 里,我们提到了下面这幅图

本篇,我们就实现 启用/关闭是否允许例外 的功能

先说明一点,因为windows自带了“安全中心” Security Center 这个功能,用程序关闭防火墙时,“安全中心” 会弹出提示,如图:

要解决这个问题,其实很简单,就是 将 Security Center 关闭,关闭的方法: 利用 net stop 或者 修改注册表 或者.NET 里面自带的 windows service操作,都可以,我就不啰嗦了

核心代码:

C# 方式:

  /// <summary>
  /// 获取防火墙管理的当前策略
  /// </summary>
  /// <returns>返回策略对应的 object</returns>
  private static object FirewallCurrentProfile()
  {
      //获取管理防火墙的COM组件的type
      Type fwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr", true);
      //创建一个COM组件的实例
      object fwMgr = Activator.CreateInstance(fwMgrType);
      //获取实例的LocalPolicy属性
      object localPolicy = fwMgrType.InvokeMember("LocalPolicy", BindingFlags.GetProperty, null, fwMgr, null);
      //获取 LocalPolicy属性的子属性CurrentProfile
      return localPolicy.GetType().InvokeMember("CurrentProfile", BindingFlags.GetProperty, null, localPolicy, null);
  }

VB.NET 方式:

    Private Function FirewallProfile() As Object
        Dim FWMgr As Object = CreateObject("HNetCfg.FwMgr")
        Return FWMgr.LocalPolicy.CurrentProfil
    End Function

C# 版本源代码下载                                  VB.NET版本源代码(有需要的留言吧,懒得去写了,嘿嘿)

原文:http://www.zu14.cn/2009/01/15/dotnet-enable-disable-firewall/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏破晓之歌

pm2常用命令 原

1.pm2官方文档:http://pm2.keymetrics.io/docs/usage/cluster-mode/

1.6K50
来自专栏Jack-Cui

Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果

运行平台:Windows Python版本:Python3.x IDE:Sublime text3     上一篇内容,已经学会了使用简单的语句对网页进行抓...

26750
来自专栏Java架构沉思录

如何优雅地用Redis实现分布式锁

什么是分布式锁 在学习Java多线程编程的时候,锁是一个很重要也很基础的概念,锁可以看做是多线程情况下访问共享资源的一种线程同步机制。这是对于单进程应用而言的,...

29060
来自专栏Flutter&Dart

DartVM服务器开发(第二天)--处理请求

在上一节中,我们对所有请求都回复它一个Hello World!这个信息,我们现在改变一下,添加一个方法,传入request,把Hello World!这一条注释...

29020
来自专栏偏前端工程师的驿站

深入线程

前言                                         在校时认识的线程就是获取CPU执行时间的最小单位,多个线程共享所在进程的资...

205100
来自专栏我的博客

Laravel Command命令行

make:command php artisan make:command Test/Test生成新命令 在app/Console/Kernel.php文件当...

26740
来自专栏Java架构沉思录

如何优雅地用Redis实现分布式锁

在学习Java多线程编程的时候,锁是一个很重要也很基础的概念,锁可以看做是多线程情况下访问共享资源的一种线程同步机制。这是对于单进程应用而言的,即所有线程都在同...

415170
来自专栏决胜机器学习

Redis专题(九)——Redis管理工具

Redis专题(八) ——Redis管理工具 (原创内容,转载请注明来源,谢谢) 一、安全性 1、运行环境 Redis以简洁为美,其安全性...

55450
来自专栏蘑菇先生的技术笔记

Redis分布式锁服务(八)

32750
来自专栏小尘哥的专栏

springboot中使用tk.mybatis代码生成器

tk.mybatis是对mybatis的进一步封装,它对基本的单表的增删改查又做了进一步封装,springboot中的使用之前已经写过了,如果没用过,请参考我之...

35420

扫码关注云+社区

领取腾讯云代金券