Domanda

Sto cercando di creare a livello di codice una regola del firewall di Windows in uscita.Inoltre, vorrei abilitare e disabilitare programmaticamente questa regola.Come posso andare a fare questo in c #?Manualmente, posso farlo andando in Pannello di controllo, facendo clic su Windows Firewall, quindi facendo clic su Impostazioni avanzate.

È stato utile?

Soluzione

È possibile avvolgere la sintassi del comando netsh advfirewall in una piccola libreria per consentire di abilitare / disabilitare le impostazioni su richiesta.In caso contrario, vedere http://msdn.microsoft.com/en-us/library/windows/desktop/ff956124(v=vs.85).aspx per il firewall di Windows con API di sicurezza avanzata.

Altri suggerimenti

È più bello utilizzare la libreria di Windows C: \ Windows \ System32 \ firewallapi.dll.Questa DLL è disponibile da Windows 7. Visual Studio aggiungerà automaticamente un wrapper per questa libreria COM se lo aggiungi ai riferimenti del progetto o si può creare manualmente il wrapper 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 dovrebbe darti dettagli sufficienti sulla lib.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top