除了我的 Windows Server 2012 机器之外,使用以下代码适用于我测试过的所有操作系统:
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 在服务器上构建了互操作程序集。
有人可以帮忙吗?