Ejemplo n.º 1
0
 public void ClearLog_LogNameNullEmptyOrNotExist_Throws()
 {
     using (var session = new EventLogSession())
     {
         Assert.Throws <ArgumentNullException>(() => session.ClearLog(null));
         Assert.Throws <ArgumentNullException>(() => session.ClearLog(null, backupPath: GetTestFilePath()));
         Assert.Throws <EventLogException>(() => session.ClearLog(""));
         Assert.Throws <EventLogNotFoundException>(() => session.ClearLog(logName: nameof(ClearLog_LogNameNullEmptyOrNotExist_Throws)));
     }
 }
Ejemplo n.º 2
0
 public void ClearLog_LogExists_Success()
 {
     using (var session = new EventLogSession())
     {
         string log    = "Log_" + nameof(ClearLog_LogExists_Success);
         string source = "Source_" + nameof(ClearLog_LogExists_Success);
         try
         {
             EventLog.CreateEventSource(source, log);
             using (EventLog eventLog = new EventLog())
             {
                 eventLog.Source = source;
                 Helpers.Retry(() => eventLog.WriteEntry("Writing to event log."));
                 Assert.NotEqual(0, Helpers.Retry((() => eventLog.Entries.Count)));
                 session.ClearLog(logName: log);
                 Assert.Equal(0, Helpers.Retry((() => eventLog.Entries.Count)));
             }
         }
         finally
         {
             EventLog.DeleteEventSource(source);
         }
         session.CancelCurrentOperations();
     }
 }
Ejemplo n.º 3
0
        public void ClearLog(string logname, Queryobj o, string fname = "")
        {
            EventLogSession session = new EventLogSession(
                o.IP,
                o.domain,
                o.username,
                o.password,
                SessionAuthentication.Default);


            session.ClearLog(logname);
            Alerts.alerts.Clear();
        }
Ejemplo n.º 4
0
        public static void Main(string[] args)
        {
            int    exitCode               = 0;
            String logPath                = "Application";
            String query                  = "*/System[Level <= 3 and Level >= 1]"; // XPath selecting all events of level warning or higher.
            String targetFile             = Environment.ExpandEnvironmentVariables("%USERPROFILE%\\export.evtx");
            String targetFileWithMessages = Environment.ExpandEnvironmentVariables("%USERPROFILE%\\exportWithMessages.evtx");

            try
            {
                //
                // Parse the command line.
                //
                if (args.Length > 0)
                {
                    if (args[0] == "/?" || args[0] == "-?")
                    {
                        Console.WriteLine("Usage: LogManagement [<logname> [<exportFile> [<exportFileWithMessages>]]]\n" +
                                          "<logname> is the name of an existing event log.\n" +
                                          "When <logname> is not specified, Application is assumed.\n" +
                                          "EXAMPLE: LogManagement Microsoft-Windows-TaskScheduler/Operational archive.evtx archiveWithMessages.evtx\n");
                        Environment.Exit(0);
                    }
                    else
                    {
                        logPath = args[0];
                        if (args.Length > 1)
                        {
                            targetFile = args[1];
                        }
                        if (args.Length > 2)
                        {
                            targetFileWithMessages = args[2];
                        }
                    }
                }

                //
                // Get log information.
                //
                EventLogSession     session = new EventLogSession();
                EventLogInformation logInfo = session.GetLogInformation(logPath, PathType.LogName);
                Console.WriteLine("The {0} log contains {1} events.", logPath, logInfo.RecordCount);

                //
                // Export selected events from a log to a file.
                //
                if (File.Exists(targetFile))
                {
                    Console.WriteLine("Could not export log {0}: file {1} already exists", logPath, targetFile);
                    Environment.Exit(1);
                }
                else
                {
                    session.ExportLog(logPath, PathType.LogName, query, targetFile, true);
                    Console.WriteLine("Selected events from the {0} log have been exported to file {1}.", logPath, targetFile);
                }

                //
                // Capture localized event information so that the exported log can be viewed on
                // systems that might not have some of the event providers installed.
                //
                if (File.Exists(targetFileWithMessages))
                {
                    Console.WriteLine("Could not archive log {0}: file {1} already exists", logPath, targetFileWithMessages);
                    Environment.Exit(1);
                }
                else
                {
                    session.ExportLogAndMessages(logPath, PathType.LogName, query, targetFileWithMessages, true, CultureInfo.CurrentCulture);
                    Console.WriteLine("The export file {0} has been localized into {1} for archiving.", targetFileWithMessages, CultureInfo.CurrentCulture.DisplayName);
                }

                //
                // Clear the log.
                //
                session.ClearLog(logPath);
                Console.WriteLine("The {0} log has been cleared.", logPath);
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine("You do not have the correct permissions. " +
                                  "Try re-running the sample with administrator privileges.\n" + e.ToString());
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
                exitCode = 1;
            }

            Environment.Exit(exitCode);
        }