, программируя на протяжении многих лет, я никогда не публиковал вопрос на этом сайте, но я привел множество проблем, которые здесь уже рассматривались.Однако теперь я столкнулся с проблемой, на которую не могу найти ответ.
Я создаю приложение, в котором мне нужна информация из ShadowCopies в системе.Я пытаюсь добиться этого с помощью WMI (в C #).Это, однако, дает мне исключение «Ошибка инициализации».Вот код: ManagementScope scope = new ManagementScope ("\\. \ ROOT \ cimv2");
//create object query
ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_ShadowCopy");
//create object searcher
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(scope, query);
//get collection of WMI objects
ManagementObjectCollection queryCollection = searcher.Get();
//enumerate the collection.
foreach (ManagementObject m in queryCollection)
{
// access properties of the WMI object
Console.WriteLine("ClientAccessible : {0}", m["ClientAccessible"]);
}
При достижении строки foreach генерируется исключение ManagementException с сообщением «Ошибка инициализации».Я понятия не имею, почему это происходит.Если я использую точно такой же код и изменяю WMI-класс (на Win32_Processor / Win32_LogicalDisk / ...), я не получаю это исключение, и цикл foreach просто работает.Я также заметил, что исключение исходит из утверждения «searcher.Get ();».Я пробовал этот код на машине под управлением Windows Server 2008, а также на машине под управлением Windows 7 Enterprise, и оба генерировали одно и то же исключение.
Я также пытался использовать этот класс в vb-скрипте, и это сработало,Код VBS:
Set objWMIService = GetObject("winmgmts:\\" + ComputerName + "\root\cimv2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_ShadowCopy")
For Each objItem in colItems
Wscript.Echo objItem.ClientAccessible
Next
Я действительно не знаю, что вызывает это исключение, тем более что WMI-класс работает, когда я использую VB-скрипт.Кто-нибудь видит, что я здесь делаю не так?Любая помощь приветствуется, и если вам нужна дополнительная информация для решения этой проблемы, просто дайте мне знать!
Greetz, Simon
// ПРИМЕЧАНИЕ. Я получил этот код от http://include.wutils.com/wmi/ROOT%5Ccimv2/CIM_ManagedSystemElement/CIM_LogicalElement/Win32_ShadowCopy/cs-samples.html