Доступны ли в Windows 8 методы WMI Win32_Processor и Win32_NetworkAdapterConfiguration? - PullRequest
7 голосов
/ 20 марта 2012

Я тестирую существующее приложение в предварительном просмотре 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.

Но где-то здесь происходит сбой.

Я уже пытался исследовать это и обнаружил следующее В списке серверов Windows 8 классов и методов WMI и тех, которые я использую, его нет.Тем не менее, на этом же сайте есть список классов и методов WMI для Windows 7 , и они тоже не в этом!(Хотя он работает на 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 вместе с последним SQL2012 Экспресс.Я попытался импортировать свой проект в эту Visual Studio, но он не загружается, сообщая, что он поддерживает только разработку Metro.Поэтому я не могу отладить эту проблему на самой машине.

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

Ответы [ 3 ]

5 голосов
/ 20 марта 2012

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

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

enter image description here

enter image description here

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

2 голосов
/ 25 марта 2012

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

0 голосов
/ 30 марта 2017

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

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

...