我正在尝试在 Windows 10 中的 INetFwServices 元素中进行迭代。但是,当我访问项目服务名称:“远程桌面”类型:NET_FW_SERVICE_REMOTE_DESKTOP 时,应用程序会引发异常灾难性故障(来自 HRESULT 的异常:0x8000FFFF (E_UNEXPECTED))。
firewall.LocalPolicy.CurrentProfile.Services 集合返回 3 项:1. 文件和打印机共享 2. 网络发现 3. 远程桌面
当我阅读第三项“远程桌面”以获取其 GloballyOpenPorts 时发生错误。
在 Windows 7 中,此类型 NET_FW_SERVICE_REMOTE_DESKTOP 可以正常工作,但在 Windows 10 中失败。如何在 Windows 10 中读取服务名称的 GloballyOpenPorts:“远程桌面”?
progID = Type.GetTypeFromProgID("HNetCfg.FwMgr");
firewall = Activator.CreateInstance(progID) as INetFwMgr;
ports = firewall.LocalPolicy.CurrentProfile.GloballyOpenPorts;
Debug.WriteLine("Count Services: " + firewall.LocalPolicy.CurrentProfile.Services.Count);
foreach (INetFwService service in firewall.LocalPolicy.CurrentProfile.Services)
{
Debug.WriteLine("Service: " + service.Name);
var port = service.GloballyOpenPorts;
}
StackTrace:在 NetFwTypeLib.INetFwService.get_GloballyOpenPorts() 在 c:\Users\Smartmatic\Documents\Visual Studio 2012\Projects\FirewallCustomTest\FirewallCustomTest\Firewall.cs:line 178 中的 FirewallCustomTest.Firewall.isPortFound(Int32 portNumber)