我正在尝试以编程方式创建出站Windows防火墙规则。另外,我想以编程方式启用和禁用此规则。我怎样才能在C#中这样做?手动,我可以通过进入控制面板,单击Windows防火墙,然后单击“高级设置”。

有帮助吗?

解决方案

您可以将netsh advfirewall命令语法包装到一个小型库中,以允许您按需启用/禁用设置。失败了,看 http://msdn.microsoft.com/en-us/library/windows/desktop/ff956124(v=vs.85).aspx 具有高级安全API的Windows防火墙。

其他提示

使用Windows Library C:\ Windows \ System32 \ FirewAllapi.dll是更好的。此DLL以自Windows 7. Visual Studio将自动为此COM库添加包装器,如果将其添加到项目引用,或者您可以使用TLBimp.exe手动创建包装器。

using NetFwTypeLib;

INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule"));
firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
firewallRule.Description = "Your rule description";
firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_IN; // inbound
firewallRule.Enabled = true;
firewallRule.InterfaceTypes = "All";
firewallRule.RemoteAddresses = "1.2.3.0/24"; // add more blocks comma separated
firewallRule.Name = "You rule name";
firewallPolicy.Rules.Add(firewallRule);
.

vs intelliSense应该为您提供足够的细节。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top