Microsoft.Diagnostics.Tracing.TraceEvent库的使用上监控ETW日志可以很容易在local machine
与ETW日志的工作 - 但真的有办法做同样的remote server
?这是我如何获得本地机器上感兴趣的事件。真正感兴趣的是,在不同的机器产生事件的情况下,如何实现相同的结果。远程计算机
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;
}
远程运行通过PSEXEC您CMDLINE工具:https://technet.microsoft.com/en-us/sysinternals/pxexec – magicandre1981