Программно управлять Windows FireWall - PullRequest
3 голосов
/ 28 февраля 2012

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

Ответы [ 2 ]

3 голосов
/ 28 февраля 2012

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

0 голосов
/ 28 августа 2018

Лучше использовать библиотеку 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должен дать вам достаточно подробностей о библиотеке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...