2012-03-20 6 views
7

Testuję istniejącą aplikację w podglądzie klienta systemu Windows 8 i ulega awarii po uruchomieniu. Pliki dziennika wskazują, że znajduje się on w metodzie, w której dokonuję walidacji na ID procesora i karcie sieciowej.Czy metody WMI Win32_Processor i Win32_NetworkAdapterConfiguration są dostępne w systemie Windows 8?

Aby to zrobić, wzywam

 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(); 
      } 
     } 

(Zauważ, że ta aplikacja działa poprawnie na Windows 7 i wcześniejszych).

Następnie używam tej samej składni do zahaczania w Win32_NetworkAdapterConfiguration i otrzymywania właściwości IPEnabled, IPAddress [] i MACAddress.

Ale gdzieś tu się zawala.

Próbowałem już to sprawdzić i znalazłem następujące Windows 8 server list of WMI classes and methods, a te, których używam, nie są na nim. Jednak ta sama strona ma również listę Windows 7 WMI classes and methods, a te też nie są w tym! (Nawet jeśli działa na Windows 7, nie ma problemu).

Wygląda na to, że nie jest obsługiwany.

MSDN dla ManagementClass wskazuje, że metoda is still present in .NET 4.5. Ponadto, this Microsoft resource jawnie listę Win32_Processor i Win32_NetworkAdapterConfiguration, z metodami, których potrzebuję.

Tak więc, z linków widać, że próbowałem to zbadać, więc jest to mój ostatni przystanek w próbach rozwiązania tej tajemnicy.

Moja aplikacja jest pierwotnie rozwiązaniem .NET 2.0 utworzonym w Visual Studio 2005. Zainstalowałem Visual Studio 2011 Beta w mojej maszynie VM pod Windows Preview klienta, wraz z najnowszym SQL 2012 Express. Próbowałem zaimportować mój projekt do tego Visual Studio, ale go nie ładuje, mówiąc mi, że obsługuje tylko rozwój Metro. Dlatego nie mogę debugować tego problemu na samej maszynie.

Moje pytanie dotyczy konkretnie tych klas w systemie Windows 8? Jeśli tak, to co robię źle? Jeśli tego nie zrobią, to muszę znaleźć sposób na uzyskanie tych informacji - ale myślę, że to jest osobne pytanie ;-)

+3

Nie mogę uwierzyć, że oni je usunąć, szybki sposób na sprawdzenie; pobierz WMICC i użyj swojego GUI, aby sprawdzić, czy są one wymienione/czego oczekujesz http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=8572 –

+0

Notatka boczna: Visual Studio 2011? Nie ma czegoś takiego (http://www.danielmoth.com/Blog/Visual-Studio-11-Not-2011.aspx), nawet w wersji Beta. W tej chwili dostępna jest wersja beta w wersji beta, ale nie podano nazwy produktu końcowego. Szansa na to, że zostanie nazwany 2012 rokiem. –

+0

Cześć dzięki, użyłem WMICC i rzeczywiście tam jest! Myślę, że mogło to pomóc, ponieważ odzyskany identyfikator procesora był pusty. Być może ze względu na moją pracę w VM? Jeśli chodzi o nazewnictwo VS 2011/11, przepraszam - cokolwiek otrzymasz na www.microsoft.com/express dla systemu Windows 8 ;-) – Mike

Odpowiedz

5

Potrafię potwierdzić, które obie klasy WMI (Win32_Processor i Win32_NetworkAdapterConfiguration) istnieją i działają pod w podglądzie programisty Windows 8.

FYI lista, która swoją refear ma tytuł Windows 8 Server WMI Classes with Methods, co oznacza WMI Classes which had methods.

enter image description here

enter image description here

narzędzie wykorzystywane do sprawdzenia WMI Delphi Code Creator

Powiązane problemy