4

ファイアウォールにいくつかのルールを追加するアプリケーションがあります。ルールがファイアウォールに存在するかどうかを確認できるように、ファイアウォールのルールを取得する必要があります。私はC#を使用しています。

4

4 に答える 4

1

INetFwPolicy2 インターフェイスを提供するアセンブリに余分な参照を追加したくない場合は、C#の動的クラスを使用して、"HNetCfg.FwPolicy2" 型を反映できます。この作業コードを参照してください。

Type tNetFwPolicy2 = Type.GetTypeFromProgID("HNetCfg.FwPolicy2");
dynamic fwPolicy2 = Activator.CreateInstance(tNetFwPolicy2) as dynamic;                          
IEnumerable Rules = fwPolicy2.Rules as IEnumerable;
foreach (dynamic rule in Rules)
  {
  if (rule.Name=="My firewall rule")
    {

    }                              
  }

この方法で動的オブジェクトを使用するには、Microsoft.CSharp アセンブリへの参照が必要であることに注意してください。

于 2018-12-03T20:50:59.397 に答える
0

このコードからアイデアを得ることができます。

INetFwPolicy2 fwPolicy2 = (INetFwPolicy2)Activator.CreateInstance(typeFWPolicy2);

List<INetFwRule> RuleList = new List<INetFwRule>();

foreach (INetFwRule rule in fwPolicy2.Rules)
{
  RuleList.Add(rule);
}
于 2014-01-28T08:55:55.890 に答える