Программное управление брандмауэром Windows
Я пытаюсь программно создать исходящее правило брандмауэра Windows. Кроме того, я хотел бы программно включить и отключить это правило. Как я могу сделать это в C#? Вручную, я могу сделать это, зайдя в Панель управления, нажав на Брандмауэр Windows, а затем нажав дополнительные настройки.
2 ответа:
Вы можете обернуть синтаксис команды netsh advfirewall в небольшую библиотеку, чтобы включить/отключить настройки по требованию. В противном случае, смотрите http://msdn.microsoft.com/en-us/library/windows/desktop/ff956124 (v=vs.85). aspx для брандмауэра Windows с расширенным API безопасности.
Лучше использовать библиотеку Windows C:\windows\system32\FirewallAPI.файл 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.