Вопрос

Я пытаюсь программно создать исходящее правило брандмауэра Windows.Кроме того, я хотел бы программно включить и отключить это правило.Как я могу пойти делать это в C #?Вручную я могу сделать это, перейдя на панель управления, нажав на брандмауэр Windows, затем нажав на расширенные настройки.

Это было полезно?

Решение

Вы можете обернуть синтаксис команды Netsh Advirewall в небольшую библиотеку, чтобы позволить вам включить / отключить настройки по требованию.Не удалось, что см. http://msdn.microsoft.com/en-us/library/windows/desktop/ff956124(v=vs.85).aspx для брандмауэра Windows с расширенными API безопасности.

Другие советы

Это приятнее использовать библиотеку Windows 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 должен дать вам достаточные детали на lib.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top