3

我正在尝试在 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)

4

0 回答 0