![Windows 程序能否判断它是否符合防火墙规则?](https://linux22.com/image/1398683/Windows%20%E7%A8%8B%E5%BA%8F%E8%83%BD%E5%90%A6%E5%88%A4%E6%96%AD%E5%AE%83%E6%98%AF%E5%90%A6%E7%AC%A6%E5%90%88%E9%98%B2%E7%81%AB%E5%A2%99%E8%A7%84%E5%88%99%EF%BC%9F.png)
当然,没有程序能够自行添加,但防火墙规则是否可被非特权应用程序读取?我有一个应用程序需要添加到规则中以进行特殊操作。我希望应用程序主动提示用户,“我需要访问端口 xxx,但我没有列在您的防火墙规则中,而不是默默失败或超时。请转到此处并执行此操作,以便我可以为您服务。”
答案1
是的。防火墙规则存储在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\FirewallRules
注册表项中。虽然理论上您可以直接查询键值,但最好使用 Windows 防火墙 API 函数:
- 适用于 Windows XP SP2 的 Windows 防火墙 API 参考
- 使用高级安全 Windows 防火墙(Windows Vista 及更高版本)