Доступен ли в Windows 8 Процессор Win32 и методы WMI Win32 NetworkAdapterConfiguration?

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

для этого я вызываю

        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.

но где-то здесь она рушится.

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

Так выглядит, это не поддерживаемый.

MSDN для ManagementClass указывает, что метод до сих пор .Нетто 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? Если да, то что я делаю не так? Если нет, то мне нужно найти способ получить эту информацию - но я думаю, что это отдельный вопрос ;-)

3 ответов


Я могу подтвердить, какие классы WMI (Win32_Processor и Win32_NetworkAdapterConfiguration) существуют и работают в Windows 8 Developer Preview.

FYI список, который ваш refear имеет название Windows 8 Server WMI Classes with Methods, что означает WMI Classes which had methods.

enter image description here

enter image description here

инструмент, используемый для проверки WMI Delphi Code Creator


на это был дан ответ, но, к сожалению, только в комментариях к моему первоначальному сообщению, Алекс К. используя http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8572 я смог идентифицировать эти методы, поэтому я считаю, что это проблема кодирования, поскольку мой код немного отличается от того, что генерируется этой утилитой.


методы WMI были доступны в Windows 8, но были удалены в Windows 8.1, поэтому в качестве альтернативы вы можете использовать этот код для анализа различных сетевых метрик в Windows 8.1 и Windows Phone 8:

https://code.msdn.microsoft.com/windowsapps/network-information-sample-63aaa201