2011-04-12 18 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

相關問題