Hallo zusammen,
habe mir das Beispielprogramm zu WMI Überwachung angesehen und kann es sehr gut gebrauchen, leider funktioniert es nur lokal. Wenn man remote auf einen anderen Rechner zugrift bekommt man beim Ausführen des Querys (m_WMIServices.ExecNotificationQueryAsync) eine Fehlermeldung "Zugriff verweigert". Gelesen habe ich, das man bei Adminrechten bei der anmeldung alle Rechte hat. Die Zugangsdaten stimmen auch, andere anfragen kann ich ohne probleme stellen.
Hat jemand schon damit gearbeitet und kann mir bei diesem Problem helfen ?
Vielen dank schonmal im Vorraus.
MFG
Christian Dannenberg
habe mir das Beispielprogramm zu WMI Überwachung angesehen und kann es sehr gut gebrauchen, leider funktioniert es nur lokal. Wenn man remote auf einen anderen Rechner zugrift bekommt man beim Ausführen des Querys (m_WMIServices.ExecNotificationQueryAsync) eine Fehlermeldung "Zugriff verweigert". Gelesen habe ich, das man bei Adminrechten bei der anmeldung alle Rechte hat. Die Zugangsdaten stimmen auch, andere anfragen kann ich ohne probleme stellen.
Hat jemand schon damit gearbeitet und kann mir bei diesem Problem helfen ?
Code:
function TFMain.Ueberwachung(Host: string): boolean; begin result := true; try aSink := TSWbemSink.Create(self); m_WMIServices := m_Locator.ConnectServer(Host, 'root/cimv2', EBenutzer.Text, Ekennwort.Text, '', '', wbemConnectFlagUseMaxWait, nil); m_WMIServices.Security_.Privileges.AddAsString('SeSecurityPrivilege',false); m_WMIServices.Security_.ImpersonationLevel := wbemImpersonationLevelImpersonate; aSink.OnObjectReady := ProcessCreated; m_WMIServices.ExecNotificationQueryAsync(aSink.DefaultInterface, 'SELECT * FROM __InstanceCreationEvent within 0.1 WHERE TargetInstance ISA "Win32_Process"', 'WQL', 0, nil, nil); except on e: exception do begin writelog(e.message); result := false; end end end;
MFG
Christian Dannenberg
Comment