Доступен ли в 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.
инструмент, используемый для проверки 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