Pregunta

Estoy tratando de crear programáticamente una regla de firewall de Windows de salida.Además, me gustaría habilitar y deshabilitar programáticamente esta regla.¿Cómo puedo hacer esto en C #?Manualmente, puedo hacerlo al entrar en el panel de control, haciendo clic en Windows Firewall, luego haciendo clic en Configuración avanzada.

¿Fue útil?

Solución

Puede envolver la sintaxis de comandos de Netsh Advfirewall en una pequeña biblioteca para permitirle habilitar / deshabilitar la configuración a pedido.Fallando eso, consulte http://msdn.microsoft.com/en-us/library/windows/Desktop/ff956124(v=vs.85).aspx para el firewall de Windows con API de seguridad avanzada.

Otros consejos

Es mejor usar la Biblioteca de Windows C: \ Windows \ System32 \ firewallapi.dll.Esta DLL está disponible ya que Windows 7. Visual Studio agregará automáticamente una envoltura para esta biblioteca COM si lo agrega a las referencias de su proyecto o puede crear la envoltura manualmente con 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 debe darle detalles suficientes en el LIB.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top