Seltener Fehler bei 'Win32_Processor'

Hallo,

wenn ich mit meinem .NET 1.1 Programm mittels

ManagementClass managementClass = new ManagementClass("Win32\_Processor");
foreach (ManagementObject managementObj in managementClass.GetInstances())
 result = managementObj["Manufacturer"].ToString() + "\_" + managementObj["ProcessorID"].ToString();

Prozessor-Daten abfragen will, dann scheint bei etwa 2% meiner Kunden die Exception:

„System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. —> System.NullReferenceException: Object reference not set to an instance of an object.“

geworfen zu werden. Was könnte das sein?

Danke im Voraus,
Alex

Hallo!

Aus dem Stand würde ich auf das nahe liegendste tippen: Der Indexer des ManagementObjects gibt entweder für „Manufacturer“ oder „ProcessorID“ null zurück und Dein .ToString() fällt daher auf die Nase.
Gibt es nicht irgendwelche Tools, mit denen sich die Seriennummer des Prozessors tilgen lässt? Das könnte dann u.U. der Grund sein.

Also: entweder explizit auf null testen oder jeweils das .ToString() weglassen, dann bekommst Du im Ergebnisstring jeweils einen Leerstring für den Parameter, der null ist.

Bei WMI kommt es übrigens an manchen Stellen auch noch auf die Benutzerrechte an. Ob das allerdings bei den Prozessoren der Fall ist, kann ich leider nicht sagen. Einfach mal ausprobieren.

Gruß,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]