我正在Win Server 2008 R2计算机上通过WMI检索服务列表,该计算机具有管理访问权限(并且正在使用特定的管理员帐户访问)。我认为安全性是可以的,因为我能够在.net和wbemtest中撤回数据。
问题来自于我使用完全相同的代码并使用await和async来访问数据。那时我得到一个" Access denied"当我使用foreach迭代返回的对象时。
我想强调它返回ManagementObjectCollection就好了。如果我不使用等待它也可以正常工作。工作和不工作之间的唯一区别是方法上的async关键字和await代码的添加,如下所示:
ManagementObjectCollection queryCollection = await Task.Run(() => Operations.ConnectService(wmipath, username, password));
Operations.ConnectService是一个静态方法,实际上可以很好地获取集合。我遇到的问题是这样的:为什么我会得到"访问被拒绝"当我从阻塞到线程?我错过了什么?