使用 C# 以编程方式更改 ipsec 规则的方法?

2023-12-04

我知道如何执行 IPsec 更改的唯一方法是调用 netsh 来进行更改。有没有直接使用 System.Management 和 WMI 对象的方法?如果是这样,那是什么?我很难通过 MSDN 找到相关的 WMI 信息。

或者有人使用过其他有用的方法吗?

编辑:我正在使用 C# 工作,并且更喜欢 C# 示例以及基于 .NET System.Management 的答案。

谢谢你!


1) 准确:WMI。

EnableIPFilterSec WMI 类静态方法可以跨所有 IP 绑定的网络适配器全局启用 IP 安全。启用安全性后,可以使用 EnableIPSec WMI 类方法更改任何特定适配器的安全特性。前者的 MSDN 在这里:

http://msdn.microsoft.com/en-us/library/aa390381%28VS.85%29.aspx

有关 EnableIPSec 及其参数(允许您声明端口和协议列表)的信息,请参阅此 MSDN 条目:

http://msdn.microsoft.com/en-us/library/aa390382%28VS.85%29.aspx

最后,这是 WMI.NET 代码目录的链接,其中有使用 System.Management 执行 WQL 查询的有用代码示例。

http://msdn.microsoft.com/en-us/library/ms257338.aspx

NOTE:

如果您像我一样需要对 ObjectQuery/SelectQuery System.Management 对象进行广泛的 WQL 测试,请尝试一下 wbemtest。它是 Windows Management Instrumentation 测试器,使您的应用程序的编写、测试和磨练 WQL 变得更加顺利。

2) 相关:Vista 或更高版本上使用 FirewallAPI、INetFwRule 接口以及可能需要的任何其他内容进行编程防火墙更改。

在 Vista 或更高版本上,如果您需要 ipsec 功能但不关心旧的 PolicyAgent 实现,那么使用 FirewallAPI.dll 是一个简单的选择。

我一开始并没有意识到这是一个选项,因为我不知道 Vista 和后来的高级防火墙真正将 IPSec 和 WFP(Windows 过滤平台)内的防火墙结合起来,并使旧的 IPSec 实现通过 PolicyAgent 进行。

这意味着使用 FirewallAPI.dll 可以提供 IPSec 的所有功能以及防火墙的状态智能,这正是我想要的。我只是添加黑名单规则(因为黑名单规则优先),并在需要时通过 API 添加到黑名单,WFP 开始丢弃流量。完毕!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 C# 以编程方式更改 ipsec 规则的方法? 的相关文章

  • 生产中 ASP.NET Core 应用程序的实例化

    ASP NET Core 开始执行Main方法在于Program class inside Program cs文件 这会构建一个网络托管环境并告诉该网络主机开始运行 那么 有startup cs file 开发 NET Core Web
  • 使用 Moq 模拟实体框架 6 ObjectResult

    如何使用 Moq 模拟 Entity Framework 6 ObjectResult 以便对依赖 EF 数据库连接的代码进行单元测试 沿着这些思路阅读了大量的问题和答案 并从我所读到的内容中收集了许多有价值的信息 我已经实现了我认为相当优
  • Asp net Core 获取用户Windows用户名

    在ASP net CORE mvc中构建内联网 我需要获取当前用户的Windows用户名进行登录 我不需要使用Windows身份验证自动登录用户 我已经有一个自定义登录控制器来做到这一点 我只需要他的用户名 它在本地工作正常 但在 IIS
  • 如果变量的值在编译时已知/未知,则进行专门化

    如何在编译时 在实际编译和运行程序之前 其参数之一的值已知 未知的情况下专门化模板函数 我还不知道怎么办 idea 1 include
  • Winform 没有.NET 框架?

    我必须创建一些表单并将其作为直接 EXE 提供 而不是安装程序 它安装 NET 框架 最终用户对此不满意 他们想要可以直接打开和工作的东西 我知道它可以作为网络完成 但我正在寻找 winforms 吗 请建议哪种工具 技术可以处理这个问题
  • 不使用 razor viewengine 进行 Nancy 本地化

    目前我在 Nancy 使用 razor 作为我的视图引擎 我可以在剃刀中像这样访问我的资源文件 Text text greeting 但我想切换到不同的视图引擎 是否有其他支持 TextResource 的视图引擎 在超级简单的视图引擎中本
  • 内存数据库不保存数据

    我有一个简单的网络应用程序 在客户端有 Angular 在服务器端有 ASP NET Core Web API 我使用内存数据库 services AddDbContext
  • 将Excel数据转换为特定的JSON格式

    我收到一个 Excel 文件 xlsx 如下所示 行和列的数量可以变化 例如 它也可以如下所示 对于第一张图片中的 Excel 工作表 JSON 应如下所示 value Prename Nik Age 17 Country Switzerl
  • 就地修改 XML 文件?

    假设我有以下 XML 文件
  • 使用 Azure AD B2C 登录 Xamarin Android 应用

    经过一周的研究可与 Azure AD B2C 一起使用 Xamarin 以 Android 平台 而不是 Xamarin Forms 为目标的身份验证原理后 我终于寻求一些建议 我有一个带有 登录 按钮的活动 我想通过按钮的触摸事件登录到
  • Cgo 生成的源无法在 MVC 上编译

    我有一个用 CGo 制作的共享库 它在 Linux 和 Android 上链接得很好 但是 当使用 Microsoft Visual Studio 2017 在 Windows 10 上进行编译时 出现以下错误 Microsoft R Pr
  • 在 C++ 中从 std::string 转换为 char *

    我正在使用 VS2012 C 我需要将 std string 转换为 char 但我在网上找不到任何材料来提供有关如何执行此操作的任何指导 任何代码示例和建议将不胜感激 Use std string bla bla char blaptr
  • 如何知道正在服务器上的共享文件夹中进行更改的计算机的主机名/IP 地址

    我必须监视服务器上的共享文件夹 以了解网络中连接的计算机 它的主机名 在该文件夹中发生的更改 我使用C 实现了对目录和文件的监控 但是 它仅监视 创建 重命名 更改 删除 和 错误 事件等事件 我还需要帮助监控访问或更改共享文件夹的计算机的
  • C# 是否可以中断 ThreadPool 内的特定线程?

    假设我已将一个工作项排入队列ThreadPool 但是如果没有要处理的数据 从BlockingQueue 如果队列为空并且队列中不再有工作 那么我必须调用Thread Interrupt方法 如果我想中断阻塞任务 但是如何用 a 做同样的事
  • 在 C# 中更改 Excel 单元格格式

    如何使用 C 中的 Microsoft Excel 12 0 库更改 Excel 中单元格的格式 更具体地说 我想将给定单元格更改为文本格式 我读过了 net c 改变Excel单元格格式 https stackoverflow com q
  • XNA:Unload() 的意义是什么?

    XNA 游戏有一个Unload 方法 其中内容应该被卸载 但这有什么意义呢 如果所有内容都被卸载 那么游戏一定会退出 在这种情况下 无论如何 所有内容都会被垃圾收集 对吗 据我了解 它对于任何标准用途都没有用 因为正如您所说 垃圾收集器为您
  • 在 C 中使用 fgets 和 strcmp [重复]

    这个问题在这里已经有答案了 我试图从用户那里获取字符串输入 然后根据他们输入的输入运行不同的函数 例如 假设我问 你最喜欢的水果是什么 我希望程序根据他们输入的内容进行评论 我不知道该怎么做 这是我到目前为止所拥有的 include
  • Windows.Automation 中的旧版 IAccessible

    如何使用C 获取AutomationElement的LegacyIAccessible State和其他LegacyIAccessibles 就像工具中的 Inspect exe 一样 The LegacyIAccessible是新的 并且
  • 在 C# 中实现记忆化 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我知道这个话题 记忆 已经被讨论了很多 比如here https stackoverflow com questions 285216
  • 使用 C# 在 Powerpoint 2013 中创建具有多个系列的图表

    我使用的是 VS2013 Ultimate 带有 Office 2013 已安装 PowerPoint Excel 和 Word 我正在用 C 编码 我正在使用 C 创建 PowerPoint 演示文稿 到目前为止 我已经成功地完成了我想做

随机推荐

  • Django 迁移错误 _mysql_exceptions.ProgrammingError: (1064, "您的 SQL 语法有错误

    TL DR python版本冲突 我认为我下载并编译的python 3 6 无法使用这个包 libmysqlclient dev 来迁移到mysql 只有系统默认的python 3 4 可以 我的 ubuntu 服务器附带了 python
  • PHP 内置服务器给出“CLI 已停止工作”

    我正在尝试使用 PHP 内置服务器功能php S localhost 8888为我的项目运行测试服务器 当我使用它时 出现错误 在事件日志中 出现以下错误 Faulting application name php exe version
  • php shell_exec touch 重定向和 adduser

    我试图最终使用 phpshell exec功能创建新的 Linux 用户 然而 即使进行调试 我也遇到了问题 这是我的代码
  • iOS 验证开发者的应用商店购买 ID

    如何从用户的订单列表中检查用户发送给我的购买 ID 例如 他可以发送类似以下内容的内容 M1VYXX7VX7 如应用程序商店中他的购买列表中所写 并要求退回他的购买内容 可能是他意外删除了他的应用程序 但是当我在代码中获取订单信息时 通过S
  • 如何在不使用 cron 作业的情况下在谷歌云中安排 python 脚本?

    我有两个 python 脚本在我的本地环境中每天运行一次 一是获取数据 二是格式化数据 现在我想将这些脚本部署到 Google 的云环境并每天运行一次 两次 我可以使用 Google Cloud Function 执行此操作还是需要 App
  • 使用route-helper将查询参数添加到现有参数中

    我使用路线助手 route routename 在我的 Blade 模板文件中过滤和 或排序页面的结果 将参数附加到前面的参数的最简单方法是什么 举个例子 我访问页面 category1并查看一些产品 现在我使用排序将 URL 更改为 ca
  • 使用 R 和 ggplot2 语法将自定义工具提示添加到绘图中

    我正在尝试使用 ggplot 对象从 R 创建一个绘图 该对象具有自定义标签 library devtools install github ropensci plotly library plotly set credentials fi
  • PHP脚本将大文本文件分割成多个文件

    我正在努力创建一个 PHP 脚本来帮助根据行数将一个大文本文件拆分为多个较小的文件 我需要增加分割的选项 因此第一个文件从 10 行开始 第二个文件从 20 行开始 依此类推 这是我的脚本中的一个函数
  • Obj-C @synthesize [重复]

    这个问题在这里已经有答案了 可能的重复 在 Objective C 中使用下划线作为属性名称前缀 iPhone 应用程序开发初学者在这里 in h property nonatomic retain IBOutlet UILabel det
  • 为什么第 n 个子选择器不起作用?

    我正在使用nth child选择器为不同的社交图标添加背景图像 然而 所有图标看起来都是一样的 我究竟做错了什么 social logo display inline block width 24px height 24px transit
  • jQuery 中的鼠标滚轮问题

    我在头部有以下代码 jQuery function box bind mousewheel function event delta var dir delta gt 0 Up Down vel Math abs delta alert d
  • 调整图像内容大小但保持图像尺寸

    我正在尝试使用 PyGame 在 Python 中制作一个基本的 Pokemon 副本 我过去遵循过一些有关该库的教程 因此 对于这个项目 我将有一个基本的瓦片结构 要么是草 要么是水 玩家不能在水方块上移动 但可以在草方块上自由移动 我通
  • AspNetCompiler MSBuild 任务中的虚拟路径 - 它是否必须等于最终部署的虚拟路径?

    这是 VS 2008 和 Net 3 5 我使用自定义部署项目脚本 该脚本类似于发布右键单击菜单 但我已对其进行了自定义以执行文件重命名和各种其他零碎操作 它工作得非常好 并且大大简化了发布程序 本周末我发现我们的一个实时网站存在一个问题
  • 在 AJAX 之前我需要学习 Javascript 还是 AJAX 不需要 Javascript 知识? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我想知道是否值得先学习javascript AJAX 是否需要 JavaScript 或者只是标记语言的相似之处 你绝对应该学习 javascript 而且因为AJAX是用javascri
  • 不使用 Composer 安装 PHPMailer

    请原谅我的无知 我正在尝试在 Linux 上的 PHP 5 6 下安装 PHPMailer 6 0 1 我的 PHP 安装是远程的 我通过 FTP 管理所有网站的 PHP 我通常将软件包作为 zip 下载到 Win 10 解压 然后将结果通
  • 将无头浏览器与 Heroku Rails Unicorn 堆栈结合使用

    我看到过一些帖子 您可以更改 Heroku 上的构建 以将 PhantomJS 与 Cedar 堆栈一起使用 但是是否可以在 unicorn 堆栈上运行无头浏览器 是的 有人已经编写了一个包含 PhantomJS 的构建包 互联网和开源非常
  • 使用 Linq 遍历层次结构表

    我有一个包含两列的表 GroupId 和 ParentId 均为 GUIDS 该表形成了一个层次结构 因此我可以在 GroupId 字段中查找值 当我找到它时 我可以查看它的 ParentId 这个ParentId也会出现在不同记录的Gro
  • Jquery 中的去抖动功能?

    一直在寻找 Jquery 中的去抖函数或去抖方法 动画的构建可能会变得非常烦人 代码如下 function fade media hide media fadeIn 2000 var debounce false function colo
  • 预先已知字符串的完美哈希函数

    我有 4000 个字符串 我想用这些字符串创建一个完美的哈希表 字符串是预先知道的 所以我的第一个想法是使用一系列if声明 if name aaa return 1 else if name bbb return 2 4000th if s
  • 使用 C# 以编程方式更改 ipsec 规则的方法?

    我知道如何执行 IPsec 更改的唯一方法是调用 netsh 来进行更改 有没有直接使用 System Management 和 WMI 对象的方法 如果是这样 那是什么 我很难通过 MSDN 找到相关的 WMI 信息 或者有人使用过其他有