它是一个单例类,我很确定“Win32_OperatingSystem = @”是获取单例实例的正确路径语法.
对InvokeMethod的调用产生了问题底部列出的异常,访问Classpath属性(注释行)也是如此.
我究竟做错了什么?
[我知道我可以使用ManagementObjectSearcher / Objectquery来返回Win32_OperatingSystem的集合(它只包含一个),但由于我知道它是一个单例,我想直接访问它.
ManagementScope cimv2 = InitScope(string.Format(@"\{0}\root\cimv2",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”按钮会发生什么? 总结以上是内存溢出为你收集整理的c# – WMI – 直接访问Win32_OperatingSystem的单例实例全部内容,希望文章能够帮你解决c# – WMI – 直接访问Win32_OperatingSystem的单例实例所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)