2011-04-12 55 views
6

我已经搜索过,但也有类似的问题,但没有人会谈到如何向“所有配置文件”添加异常(Windows 7,AKA“Any Profile “在Vista/Windows Server 2008上)。互联网上的例子只讨论添加到当前配置文件。以编程方式将应用程序添加到所有配置文件Windows防火墙(Vista +)

原因是我的虚拟机有一个问题:windows 2008 x86,当前的防火墙配置文件是Domain,我的应用程序被添加到Domain的Exception列表中。 (防火墙设置为默认值:阻止任何未在例外列表中的入站呼叫。) 但是,除非: 阻止入站呼叫1.关闭该虚拟机上的防火墙。 2.手动更改我的应用程序的规则简档,以“任何”

这是非常令人困惑,因为我以为只有活动的配置文件应该是“积极的”,应该是功能性的,不管其他配置文件挡住了我的申请呼入电话。

我正在使用XPSP2 INetFwMgr接口添加缺少“任何”配置文件支持的异常。

我正在使用c#,但任何语言的例子将不胜感激。

回答

8

您可以尝试这样的事:

using System; 
using NetFwTypeLib; 

namespace FirewallManager 

{ 
    class Program 
    { 
    static void Main(string[] args) 
    { 
     INetFwRule firewallRule = (INetFwRule)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule")); 
     firewallRule.Action = NET_FW_ACTION_.NET_FW_ACTION_ALLOW; 
     firewallRule.Description = "Allow notepad"; 
     firewallRule.ApplicationName = @"C:\Windows\notepad.exe"; 
     firewallRule.Enabled = true; 
     firewallRule.InterfaceTypes = "All"; 
     firewallRule.Name = "Notepad"; 

     INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(
      Type.GetTypeFromProgID("HNetCfg.FwPolicy2")); 
     firewallPolicy.Rules.Add(firewallRule); 

    } 
    } 
} 

为了完整起见,在此提及C:\ WINDOWS \ SYSTEM32 \ FirewallAPI.dll

+0

我想这一点,但是当我看到在防火墙规则系统防火墙,那么没有可执行的路径附加到规则,为什么这样? – 2014-04-22 05:23:04

相关问题