Hardware mit Hilfe von WMI auslesen
-
Hallo Leute,
ich habe eine verwaltete Anwendung, die die Hardware-Daten ausliest. Beim ersten Start hat alles auch super geklappt, danach wurden auf dem Rechner Änderungen vorgenommen, welche, sind mir nicht bekannt. Jetzt stürzt das Programm ab, wenn die Verbindung zu WMI aufgebaut wird (Init Methode der System::Management::ManagementScope- Klasse). Bin schon sehr verzweifelt, bin dankbar für jeden Hinweis, Ratschlag.
Mein Code:
//Member meiner Klasse
System::Management::ManagementScope ^m_connectScope;bool CManHW::InitConnect()
{
bool bRet = false;
try
{
// System::Management::ConnectionOptions festelegen
//CWTF::WriteLogFile("InitConnect Step_1");System::Management::ConnectionOptions ^options = gcnew ConnectionOptions();
//CWTF::WriteLogFile("InitConnect Step_2");options->Impersonation = ImpersonationLevel::Impersonate;
//CWTF::WriteLogFile("InitConnect Step_3");
//options->Authentication = AuthenticationLevel::Default;
options->Authentication = AuthenticationLevel::Unchanged;options->EnablePrivileges = true;
//System::Management::ManagementScope erzeugen
//CWTF::WriteLogFile("InitConnect Step_4");//CWTF::WriteLogFile("Environment::MachineName:");
//CWTF::WriteLogFile((LPCSTR)StringConvA(Environment::MachineName));m_connectScope = gcnew ManagementScope();
if (m_connectScope != nullptr)
{
m_connectScope->Path = gcnew ManagementPath("\\\" + Environment::MachineName + "\\root\\cimv2");m_connectScope->Options = options;
//Verbinding aufbauen
//CWTF::WriteLogFile("Connect-Begin");m_connectScope->Connect();
//*******
// hier bricht das Programm ab und Windows spuckt eine Fehlermeldung aus
//*******if (m_connectScope->IsConnected == true)
.....
Zum Testen habe ich dasselbe noch in C# implenentiert und die Parameter geändert, immer dasselbe:
Meldung
Details:
Informationen über das Aufrufen von JIT-Debuggen
anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.************** Ausnahmetext **************
System.Runtime.InteropServices.COMException (0x8007054E): Der angeforderte Vorgang konnte nicht abgeschlossen werden (entweder wegen eines schweren Fehlers auf dem Speichermedium oder einer beschädigten Datenstruktur auf dem Datenträger). (Ausnahme von HRESULT: 0x8007054E)
bei System.Management.ManagementScope.Initialize()Vielen Lieben Dank
Maria
-
-
Vielen Dank theta, kann es jetzt nicht testen, melde mich, wenn es geklappt hat
-
Benötige wieder Hilfe!!!
unter Vista Ultimate eine andere Fehlermeldung:
Beschreibung:
Stopped workingProblemsignatur:
Problemereignisname: CLR20r3
Problemsignatur 01: test.exe
Problemsignatur 02: 1.0.0.0
Problemsignatur 03: 4d022f46
Problemsignatur 04: System.Management
Problemsignatur 05: 2.0.0.0
Problemsignatur 06: 49cc5f67
Problemsignatur 07: 111
Problemsignatur 08: 123
Problemsignatur 09: System.UnauthorizedAccess
Betriebsystemversion: 6.0.6002.2.2.0.256.1
Gebietsschema-ID: 1031die Verbindung zu WMI wird aufgebaut, bei der Abfrage stürzt das Programm dann ab.
---------------------------------------------------------------------------
Lösung des Problems davor:Dienst "Windows-Verwaltungsinstrumentation" beenden.
->Start/Einstellungen/Systemsteuerung/Verwalung/Computerverwaltung/Dienste und Anwendungen/DiensteOrdner »Repository« im Pfad
C:\ WINDOWS\ system32\ wbem\ Repository
löschen oder umbenennen und neu booten.wurde das Problem beseitigt. Mehr war nicht nötig. ----------------------------------------------------------
Vielen Dank für Eure Hilfe
Maria
-
mir ist aufgefallen, dass dxdiag nicht alle Hardware-Daten ausliest,
jemand vielleicht eine Idee woran es liegen könnte?