问题
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?
回答1:
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.
回答2:
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