Доступны ли методы Win32_Processor и Win32_NetworkAdapterConfiguration WMI в Windows 8?

Я тестирую существующее приложение в потребительской предварительной версии Windows 8, и оно аварийно завершает работу при запуске. Файлы журнала показывают, что это метод, в котором я выполняю некоторую проверку идентификатора ЦП и сведений о сетевой карте.

Для этого я звоню

        ManagementClass mc = new ManagementClass("Win32_Processor");
        ManagementObjectCollection moc = mc.GetInstances();
        foreach (ManagementObject mo in moc)
        {
            if (cpuInfo.Length == 0)
            {
                // only return cpuInfo from first CPU
                cpuInfo = mo.Properties["ProcessorId"].Value.ToString();
            }
        }

(Обратите внимание, что это приложение отлично работает в Windows 7 и более ранних версиях).

Затем я использую тот же синтаксис для подключения к Win32_NetworkAdapterConfiguration и получения свойств IPEnabled, IPAddress[] и MACAddress.

Но где-то здесь он падает.

Я уже пытался исследовать это и нашел следующий список классов и методов WMI сервера Windows 8, а тех, которые я использую, нет в нем. Однако на том же сайте есть список классов и методов Windows 7 WMI, и их там тоже нет! (Несмотря на то, что это работает на Windows 7 без проблем).

Судя по всему, это не поддерживается.

MSDN для ManagementClass указывает, что метод все еще присутствует в .NET 4.5. Кроме того, этот ресурс Microsoftявно перечисляет Win32_Processor и Win32_NetworkAdapterConfiguration с нужными мне методами.

Итак, по ссылкам видно, что я пытался исследовать это, так что это моя последняя остановка в попытке разгадать эту загадку.

Мое приложение изначально представляет собой решение .NET 2.0, созданное в Visual Studio 2005. Я установил бета-версию Visual Studio 2011 на виртуальную машину Windows 8 Consumer Preview вместе с последней версией SQL 2012 Express.Я попытался импортировать свой проект в эту Visual Studio, но он не загружает его, говоря мне, что он поддерживает только разработку Metro. Поэтому я не могу отладить эту проблему на самой машине.

Итак, мой вопрос: существуют ли эти классы конкретно в Windows 8? Если да, то что я делаю не так? Если нет, то мне нужно найти способ получить эту информацию - но я думаю, это отдельный вопрос ;-)

7
задан Damien_The_Unbeliever 20 March 2012 в 15:43
поделиться