使用firewall.dll属性时出现拒绝访问错误.(HRESULT中的异常:0x80070005(E_ACCESSDE

本文关键字:异常 0x80070005 ACCESSDE HRESULT 使用 属性 dll 错误 拒绝访问 firewall | 更新日期: 2023-09-27 17:57:35

我有使用firewall.dll向windows防火墙添加规则的代码,但我得到了此异常"访问被拒绝。(HRESULT中的异常:0x80070005(E_ACCESSDENIED))"这是我的代码:

using NetFwTypeLib;
namespace Tserver
{
    class Program
    {
    static void Main(string[] args)
    {
        INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(
        Type.GetTypeFromProgID("HNetCfg.FWRule"));
                   firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_BLOCK;
        firewallRule.Description = "Used to block all internet access.";
        firewallRule.Direction = NET_FW_RULE_DIRECTION_.NET_FW_RULE_DIR_OUT;
        firewallRule.Enabled = true;
        firewallRule.InterfaceTypes = "All";
        firewallRule.Name = "Block Internet";
        INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(
            Type.GetTypeFromProgID("HNetCfg.FwPolicy2"));
        firewallPolicy.Rules.Add(firewallRule);
}

使用firewall.dll属性时出现拒绝访问错误.(HRESULT中的异常:0x80070005(E_ACCESSDE

您需要拥有管理员权限才能执行您正在执行的操作。

我在客户端机器上也遇到过同样的问题,但当我尝试在具有管理员权限的机器(Windows 7)上做同样的事情时,一切都很顺利。