次のコードを使用すると、Windows Server 2012 マシンを除いて、テストしたすべての OS で動作します。
public static Type FwMgrType = Type.GetTypeFromProgID("HNetCfg.FwMgr");
public static void Main()
{
var fwMgr = (INetFwMgr) Activator.CreateInstance(FwMgrType);
var ssh = fwMgr.LocalPolicy.CurrentProfile.GloballyOpenPorts.Item(22,
NET_FW_IP_PROTOCOL_.NET_FW_IP_PROTOCOL_TCP); // throws FileNotFoundException
ssh.RemoteAddresses = "123.234.123.235";
}
ssh
変数を作成する行はスローしています:
システムは、指定されたファイルを見つけることができません。(HRESULT からの例外: 0x80070002)
どのファイルが見つからないのかわかりません。マシン上に FirewallAPI.dll が存在します。tlbimp.exe を使用して、サーバー上に相互運用機能アセンブリも構築しました。
誰か助けてくれませんか?