加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – WMI – 直接访问Win32_OperatingSystem的单例实例

发布时间:2020-12-16 01:28:54 所属栏目:百科 来源:网络整理
导读:我无法直接访问通过WMI公开的Win32_OperatingSystem管理类. 它是一个单例类,我很确定“Win32_OperatingSystem = @”是获取单例实例的正确路径语法. 对InvokeMethod的调用产生了问题底部列出的异常,访问ClassPath属性(注释行)也是如此. 我究竟做错了什么? [
我无法直接访问通过WMI公开的Win32_OperatingSystem管理类.

它是一个单例类,我很确定“Win32_OperatingSystem = @”是获取单例实例的正确路径语法.

对InvokeMethod的调用产生了问题底部列出的异常,访问ClassPath属性(注释行)也是如此.

我究竟做错了什么?

[我知道我可以使用ManagementObjectSearcher / ObjectQuery来返回Win32_OperatingSystem的集合(它只包含一个),但由于我知道它是一个单例,我想直接访问它.

ManagementScope cimv2 = InitScope(string.Format(@"{0}rootcimv2",this.Name));

ManagementObject os = new ManagementObject(
    cimv2,new ManagementPath("Win32_OperatingSystem=@"),new ObjectGetOptions());

//ManagementPath p = os.ClassPath;

os.InvokeMethod("Reboot",null);

系统管理.ManagementException被捕获
??Message =“无效的对象路径”
??来源= “System.Management”
??堆栈跟踪:
??在System.Management.ManagementException.ThrowWithExtendedInfo(ManagementStatus errorCode)
??在System.Management.ManagementObject.Initialize(Boolean getObject)
??在System.Management.ManagementBaSEObject.get_wbemObject()
??在System.Management.ManagementObject.get_ClassPath()
??在System.Management.ManagementObject.GetMethodParameters(String methodName,ManagementBaSEObject& inParameters,IWbemClassObjectFreeThreaded& inParametersClass,IWbemClassObjectFreeThreaded& outParametersClass)
??在System.Management.ManagementObject.InvokeMethod(String methodName,Object [] args)

谢谢你的回复.

尼克 – 我不知道该怎么做:)

Uros – 我的印象是它是一个单例类,因为this MSDN页面.此外,在WBEMTest实用程序中打开类显示this.

实例对话框显示:“1个对象”和“最大批量:1”在这些字段和列表中“Win32_OperatingSystem = @”

ManagementScope被验证为有效,所以我不知道是什么.我是WMI新手,但这似乎是最简单的用例之一!

解决方法

哇,世界正在发生变化.对不起,我没有意识到你使用的是Vista.正如您所看到的那样,在Windows XP中,情况有所不同.那么,点击“Instances”按钮会发生什么?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读