2016-11-11 5 views
1

특정 방화벽 규칙을 이름으로 가져 와서 사용하는 옵션 (특히 IP 범위)을보고 무언가와 비교하고 싶습니다. 이게 가능합니까, 온라인으로 검색했지만 아무것도 찾을 수 없습니다. 해당 객체의 firewallPolicy.Rules 내부특정 방화벽 규칙 옵션 가져 오기

INetFwPolicy2 firewallPolicy = (INetFwPolicy2)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FwPolicy2")); 
INetFwRule firewallRule = firewallPolicy.Rules.OfType<INetFwRule>().Where(x => x.Name == RULE_NAME).FirstOrDefault(); 

if (firewallRule == null) 
{ 
    firewallRule = (INetFwRule)Activator.CreateInstance(Type.GetTypeFromProgID("HNetCfg.FWRule")); 
    firewallRule.Name = RULE_NAME; 
    /* More stuff */ 
    firewallPolicy.Rules.Add(firewallRule); 
} 

답변

0

액세스하고 당신이 당신의 방화벽 내부에있는 각 규칙에 대해 이동하는 foreach 루프 를 사용할 수 있습니다 :

이 내가 규칙을 추가하고 방법이다. 특별히 몇 가지 규칙을 원하는 경우 , 사용 LINQ는 수집 안에 seach하기 위해이 같은 뭔가 :

VAR 규칙 = firewallPolicy.Rules.Where을 (N => n.Name == "당신의 이름");