使用 LINQ 查找串行设备列表
我使用以下代码来查找连接到 COM 端口的设备列表。
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSSerial_PortName");
在 Windows XP 中,代码工作正常,但在 Windows-7 中,我收到访问被拒绝异常
。在这两种情况下,我都在完全管理权限下运行,那么为什么我会在 Windows 7 而不是 XP 上遇到此错误。
I am using the following code to find a list of Devices attached to COM Port.
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSSerial_PortName");
With Windows XP, the code works fine, but with Windows-7, I get an Access Denied Exception
. I am running under full administrative privilege in both the cases, then why would I face this error with Windows 7 and not XP.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要提升应用的权限:请参阅此问答
You need to elevate privileges of your app: See this Q&A
我刚刚在我的 win7 设备中的 admin 下运行了你的代码,它工作正常,但在用户上下文中失败。即使您自己以管理员身份登录,您的进程也在 UAC 下运行。您需要确保应用程序的提升权限。
I just ran your code under admin in my win7 rig and it worked properly while it failed within user context. Your process is running under UAC even though you yourself is logged in as admin. You need to secure elevated privileges for the application.