如何通过C#的WindowsFirewallHelper库启用或禁用已创建的防火墙规则
WindowsFirewallHelper 规则启用/禁用实现方法
核心操作逻辑
你之前观察到的rule.IsEnabled读取返回值,只是该属性get访问器的作用——这个成员是可直接读写的公开属性,并非仅能返回状态的只读字段,类库本身也不需要单独提供启用/禁用的方法,直接对属性赋值即可完成规则的状态切换,且修改会自动同步持久化到系统防火墙配置中,无需额外调用保存类接口。
具体实现方式
- 「断开(禁用防火墙规则)」:将目标规则的
IsEnabled属性赋值为false - 「连接(启用防火墙规则)」:将目标规则的
IsEnabled属性赋值为true
参考实现代码
// 根据规则名称匹配找到目标已创建的规则 var targetRule = FirewallManager.Instance.Rules.FirstOrDefault(rule => rule.Name == ruleName); if (targetRule == null) { // 规则不存在的异常处理逻辑 return; } // 执行「断开」操作:禁用规则 targetRule.IsEnabled = false; // 执行「连接」操作:启用规则 // targetRule.IsEnabled = true;
注意事项
规则属性的修改属于系统级配置写入操作,需要当前运行的进程具备本地管理员权限,否则操作会被系统安全策略拦截,抛出权限不足的运行时异常。
内容的提问来源于stack exchange,提问作者boonwin
相关产品推荐
相关产品推荐

