【发布时间】:2015-08-16 00:08:28
【问题描述】:
我试图弄清楚如何在 .Net 4.5 上使用 C# 对远程计算机异步执行 WMI 查询。
我正在使用 ManagementObjectSearcher 类,并使用 Get(ManagementOperationObserver watcher) 方法;或多或少我正在使用这里的示例https://msdn.microsoft.com/en-US/library/ms257344(v=vs.80).aspx
它不起作用。
这是我所知道的:
当我使用 wbemtest 连接到远程计算机并同步执行查询 (SELECT * FROM Win32_Service) 时,它可以工作。
当我将 wbemtest 设置为异步时,它也可以工作,因此这不是我的工作站或目标机器上的配置问题,而且我的凭据工作正常。
如果我将 C# 代码连接到本地工作站,使用 ManagementOperationObserver 异步执行相同的查询也可以正常工作。
当我更改我的 C# 代码以连接到我的远程目标计算机时,它不起作用。 ManagementOperationObserver 上的任何事件都不会触发,我的应用程序只是坐在那里等待。我把它放在那里几分钟,没有任何反应。
我的工作站是域的一部分,而我的目标远程计算机不是,如果这很重要(因为 wbemtest 可以同时使用同步/异步,我不确定它是否重要)。
此时我不知道下一步该尝试什么。 ManagementOperationObserver 是否不适用于远程查询?
【问题讨论】:
标签: c# .net asynchronous wmi