当我使用firewall.dll属性时,Acces拒绝错误。 (HRESULT异常:0x80070005(E_ACCESSDENIED))

时间:2014-04-09 06:32:25

标签: c#

我的代码使用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);
}

1 个答案:

答案 0 :(得分:1)

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

我遇到了同样的问题客户端计算机,但是一旦我尝试在具有管理员权限的计算机上执行相同的操作(Windows 7),一切都运行良好。