We want to use Cisco NAC and need to check if client Desktop has a firewall installed. This may be not the default Windows Firewall.
Is there some Windows registry key that can be checked?
For non-Windows firewalls, you can use WMI API to detect the presence of a firewall if it's registered with Windows.
Namespace = "Root\SecurityCenter2" (might be "Root\SecurityCenter" on pre-vista)
Query = "SELECT * From FirewallProduct"
And you can use this little gem to detect if it's actually on or off.
For Windows Firewall detection, it's INetFwMgr and friends.
Maybe just check if you can establish connection, if you can't - display a message that user should check firewall if it's installed?
来源:https://stackoverflow.com/questions/5975321/c-sharp-how-to-chceck-if-external-firewall-is-enabled