Die Nutzung von Microsoft.Diagnostics.Tracing.TraceEvent Bibliothek macht es einfach, mit ETW anmeldet local machine
zu arbeiten - aber ist es wirklich eine Möglichkeit, das gleiche für remote server
zu tun? So erhalte ich die interessanten Ereignisse auf dem lokalen Rechner. Wirklich interessiert, wie man das gleiche Ergebnis erzielen würde, wenn Ereignisse für verschiedene Maschinen erzeugt werden.Überwachung ETW-Protokolle auf Remote-Computer
public LoggingEventArgs ListenForEvent(string eventName, int level, int maxWaitTimeInSec = 30)
{
if (!(TraceEventSession.IsElevated() ?? false))
{
_logger.Error("To turn on ETW events you need to be Administrator.");
return null;
}
LoggingEventArgs result = null;
_logger.Info("Creating a '{0}' session", _sessionName);
using (var session = new TraceEventSession(_sessionName))
{
_timer = ConstructTimerForSession(session, maxWaitTimeInSec);
TargetEventReceived += delegate (object sender, LoggingEventArgs e)
{
//if level is not negative, check for specific level of incoming event.
//Otherwise track all levels
bool condition = level > 0 ? e.Level == level : true;
if (condition)
{
result = e;
StopListeningForEvents(session);
}
};
AddCallbackForProviderEvent(session, _providerName, eventName);
StartListeningForEvents(session, _providerName, _timer);
}
return result;
}
Führen Sie Ihr Cmdline-Tool über PsExec remote: https://technet.microsoft.com/en-us/sysinternals/pxexec – magicandre1981