C# 修改Windows防火墙规则的用户权限是什么?

C# 修改Windows防火墙规则的用户权限是什么?,c#,com,windows-firewall,windows-security,windows-firewall-api,C#,Com,Windows Firewall,Windows Security,Windows Firewall Api,我试图使用FirewallAPI.dll中的COM对象从C#应用程序以编程方式设置Windows防火墙规则。应用程序应该在不属于Administrators组的用户帐户下运行 我正在努力设置此用户帐户权限以修改防火墙 我授予此用户对HKLM\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy的完全访问权限,但没有帮助 当我尝试使用INetFwRule::put_RemoteAddresses时,我遇到了

我试图使用FirewallAPI.dll中的COM对象从C#应用程序以编程方式设置Windows防火墙规则。应用程序应该在不属于Administrators组的用户帐户下运行

我正在努力设置此用户帐户权限以修改防火墙

我授予此用户对HKLM\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy的完全访问权限,但没有帮助


当我尝试使用INetFwRule::put_RemoteAddresses时,我遇到了访问被拒绝的异常。如何获取缺少哪些权限的信息?

我找到了答案。用户必须在其安全令牌中列出带有强制标志的“网络配置操作员”组


可以通过将用户添加到“Network Configuration Operators”组并运行具有提升权限的进程来实现。没有提升的完整性,组将以“拒绝”标志列出,用户仍然没有访问权限。

您需要管理员权限。谢谢@facetus。在我的例子中,我正在编写一个Windows服务来管理特定的Windows防火墙规则。我发现将用户添加到您提到的组中就足以使其正常工作。也许将代码作为服务运行被认为是提升了的。有趣的是,我不得不拆解微软的DLL来找到答案。微软技术网络的人对此一无所知。