【发布时间】:2016-01-22 20:50:05
【问题描述】:
所以我已经很清楚如何使用INetFwPolicy2 和INetFwRule COM 接口以编程方式设置防火墙规则。但是,如何使用 COM 互操作为特定的“现代应用程序”/“地铁应用程序”/“商店应用程序”设置规则?
如果我使用防火墙 MMC,我可以转到:
规则 -> 属性 -> 程序和服务 -> 应用程序包
并在那里允许/阻止指定的包。但我不知道如何在代码中做到这一点。我找到了提供LocalAppPackageId 属性的INetFwRule3 接口,我认为这就是所有魔法。但是LocalAppPackageId 包含包的 SID,而不是它的名称,例如 microsoft.windows.photos_8wekyb3d8bbwe。那么,当我只知道它的名称时,我怎么能阻止我想要的包呢?我想我必须获得 SID,那么我该如何找到它呢? SID 的范围是本地的(每台机器唯一),还是我可以在找到 SID 后对其进行硬编码而不费心动态查找 SID?
【问题讨论】:
标签: c# .net com windows-firewall windows-firewall-api