У меня возникли проблемы с прямым доступом к Win32_OperatingSystem классу управления, доступному через WMI.
Это одноэлементный класс, и я вполне уверен, что "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);
Исключение System.Management.ManagementException
Сообщение = "Неверный путь к объекту"
Источник = "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 - У меня сложилось впечатление, что это был одноэлементный класс из-за этой страницы MSDN. Кроме того, открытие класса в утилите WBEMTest показывает this .
Диалог экземпляров показывает: «1 объект» и «Максимальная партия: 1» в этих полях и списки «Win32_OperatingSystem = @»
ManagementScope проверен как работающий, поэтому я не знаю, что случилось. Я новичок в WMI, но это один из самых простых вариантов использования!