c# - 使用 WindowsFirewallHelper c# 启用和禁用 Windows 防火墙规则
问题描述
嗨,我从这里使用 WindowsFirewallHelper Lib:WindowsFirewallHelper Git
首先我创建一个规则
IRule rule = FirewallManager.Instance.CreateApplicationRule(
FirewallManager.Instance.GetProfile().Type,
ruleName,
FirewallAction.Block,
@"Path\App.exe"
);
rule.Direction = FirewallDirection.Outbound;
FirewallManager.Instance.Rules.Add(rule);
之后我想创建一个启用或禁用此规则的连接和断开方法,但我在库中找不到任何方法,有人知道该怎么做吗?只有“rule.isEnabled”字段告诉它是否启用。
解决方案
由于我无法通过 Lib 实现它:我对启用和禁用方法做了以下操作:
我创建了一个 CMD 方法
private static void RunCMD(string argument)
{
Process process = new Process();
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.WindowStyle = ProcessWindowStyle.Hidden;
startInfo.FileName = @"C:\Windows\System32\cmd.exe";
startInfo.Arguments = argument;
process.StartInfo = startInfo;
process.Start();
}
然后我添加了其他两种方法:
public static void Disconnect()
{
RunCMD(@"/C netsh advfirewall firewall set rule name=""RULENAME"" new enable=no");
}
public static void Connect()
{
RunCMD(@"/C netsh advfirewall firewall set rule name=""RULENAME"" new enable=yes");
}
推荐阅读
- javascript - img 元素在 Ionic React 中不起作用
- java - FireBase getUid 在返回值后返回 Null
- python - 绘制跨越子午线和日期变更线的全局轮廓数据
- android - Android:范围存储:getContentResolver().update(...):COLUMN_LAST_MODIFIED:UnsupportedOperationException:不支持更新
- python - 从 DST 感知日期时间对象在 Dataframe 中创建 pandas DatetimeIndex
- mysql - 查询只返回与 where 没有关系的 id
- wordpress - 如何使用 WordPress 在 NextJS 中管理导航菜单
- sql - 如何在结果集中使用 2 个分组列进行 PIVOT?
- gitlab - Spring Cloud 配置服务器 - 引导属性文件 - 配置多个 git 存储库
- java - 如何使用进程和过滤 PID 正确捕获 logcat?