コード例 #1
0
ファイル: Program.cs プロジェクト: waikhean/Nexpose_AdhocScan
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        {
            string programPath           = ConfigurationManager.AppSettings["programPath"];
            string logPath               = ConfigurationManager.AppSettings["logPath"];
            string logFileSize           = ConfigurationManager.AppSettings["logFileSize"];
            string emailServer           = ConfigurationManager.AppSettings["smtpServer"];
            string emailPort             = ConfigurationManager.AppSettings["smtpServerPort"];
            string logFileName           = ConfigurationManager.AppSettings["logFileName"];
            string logFilePath           = logPath + logFileName;
            string rubyPath              = ConfigurationManager.AppSettings["rubyPath"];
            string reportPath            = ConfigurationManager.AppSettings["reportPath"];
            string emailAddressFrom      = ConfigurationManager.AppSettings["emailAddress"];
            string adminEmailAddress     = ConfigurationManager.AppSettings["adminEmailAddress"];
            string adhocScanReportScript = rubyPath + @"scripts\run_adhoc_scan_reports.rb";
            string includedFilePath      = ConfigurationManager.AppSettings["csvFileinclude"];
            string excludedFilePath      = ConfigurationManager.AppSettings["csvFileExclude"];
            string ccsVMServerIP         = ConfigurationManager.AppSettings["ccsVMServerIP"];
            string ccsVMServerPort       = ConfigurationManager.AppSettings["ccsVMServerPort"];
            string ccsVMServerUser       = ConfigurationManager.AppSettings["ccsVMServerUser"];
            string passworFile           = ConfigurationManager.AppSettings["ccsVMServerPassword"];
            // string csvFilePath = ConfigurationManager.AppSettings["csvFilePath"];
            string csvFilePathFailed    = ConfigurationManager.AppSettings["csvFilePathFailed"];
            string csvFilePathProcessed = ConfigurationManager.AppSettings["csvFilePathProcessed"];
            string getSiteIncluded      = rubyPath + @"scripts\get_site_included_range.rb";
            string getSiteExcluded      = rubyPath + @"scripts\get_site_excluded_range.rb";
            string tempLogFilePath      = Directory.GetCurrentDirectory().ToString() + @"\" + logFileName;

            //to check whether all the path existis


            try
            {
                saveSiteLog = ConfigurationManager.AppSettings["saveSiteErrorLog"];
                Logger      = log4net.LogManager.GetLogger(saveSiteLog);

                NexposeAdhocScanLog = ConfigurationManager.AppSettings["NexposeAdhocScanErrorLog"];
                Llog = log4net.LogManager.GetLogger(NexposeAdhocScanLog);
                log4netConfigFile = ConfigurationManager.AppSettings["Log4netConfig"];
                log4net.Config.XmlConfigurator.ConfigureAndWatch(new System.IO.FileInfo(log4netConfigFile));

                if (!(Directory.Exists(programPath)))
                {
                    Llog.Info("programPath doesn't exist: " + programPath);
                    try
                    {
                        Directory.CreateDirectory(programPath);
                        Llog.Info("Created folder: " + programPath);
                    }
                    catch (Exception ex)
                    {
                        Llog.Info(ex.ToString());
                        string subject = "CCSVM SaveSites: Failed to create folder: " + programPath;
                        string body    = ex.ToString();
                        Library.sendEmail(emailAddressFrom, adminEmailAddress, subject, body);
                        Environment.Exit(1);
                    }
                }

                if (!(Directory.Exists(logPath)))
                {
                    Llog.Info("logPath doesn't exist: " + logPath);
                    try
                    {
                        Directory.CreateDirectory(logPath);
                        Llog.Info("Created folder: " + logPath);
                    }
                    catch (Exception ex)
                    {
                        Llog.Info(ex.ToString());
                        string subject = "CCSVM SaveSites: Failed to create folder: " + logPath;
                        string body    = ex.ToString();
                        Library.sendEmail(emailAddressFrom, adminEmailAddress, subject, body);
                        Environment.Exit(1);
                    }
                }

                if (!(Directory.Exists(rubyPath)))
                {
                    Llog.Info("Failed to find ruby folder: " + rubyPath);
                    string subject = "CCSVM SaveSites: Failed to find ruby folder";
                    string body    = "Failed to find ruby folder: " + rubyPath;
                    Library.sendEmail(emailAddressFrom, adminEmailAddress, subject, body);
                    Environment.Exit(1);
                }

                if (!File.Exists(passworFile))

                {
                    //Library.WriteErrorLog(logFilePath, "Failed to find the password file: " + passworFile);
                    Llog.Error("Failed to find the password file: " + passworFile);

                    string subject = "CCSVM SaveSites: Failed to find the password file";
                    string body    = "Failed to find the password file: " + passworFile;
                    Library.sendEmail(emailAddressFrom, adminEmailAddress, subject, body);
                    Environment.Exit(1);
                }

                if (!(File.Exists(adhocScanReportScript)))
                {
                    //Library.WriteErrorLog(logPath, "Cannot find ruby script: " + adhocScanReportScript);
                    Llog.Error("Cannot find ruby script: " + adhocScanReportScript);

                    string subject = "CCSVM SaveSites: Cannot find ruby script";
                    string body    = "Cannot find ruby script" + adhocScanReportScript;
                    Library.sendEmail(emailAddressFrom, adminEmailAddress, subject, body);
                    Environment.Exit(1);
                }

                if (!(File.Exists(getSiteIncluded)))
                {
                    //Library.WriteErrorLog(logPath, "Cannot find ruby script: " + getSiteIncluded);
                    Llog.Error("Cannot find ruby script: " + getSiteIncluded);

                    string subject = "CCSVM SaveSites: Cannot find ruby script";
                    string body    = "Cannot find ruby script" + getSiteIncluded;
                    Library.sendEmail(emailAddressFrom, adminEmailAddress, subject, body);
                    Environment.Exit(1);
                }

                if (!(File.Exists(getSiteExcluded)))
                {
                    //Library.WriteErrorLog(logFilePath, "Cannot find ruby script: " + getSiteExcluded);
                    Llog.Error("Cannot find ruby script: " + getSiteExcluded);
                    string subject = "CCSVM SaveSites: Cannot find ruby script";
                    string body    = "Cannot find ruby script" + getSiteExcluded;
                    Library.sendEmail(emailAddressFrom, adminEmailAddress, subject, body);
                    Environment.Exit(1);
                }


                //Library.WriteErrorLog(logFilePath, "========================================================================");
                //Library.WriteErrorLog(logFilePath, "All required files and folders exists, starting CCSVM Adhoc Scan service");

                Llog.Info("========================================================================");
                Llog.Info("All required files and folders exists, starting CCSVM Adhoc Scan service");

                ServiceBase[] ServicesToRun;
                ServicesToRun = new ServiceBase[]
                {
                    new ccsvmadhocscan()
                };
                ServiceBase.Run(ServicesToRun);
            }
            catch (Exception ex)
            {
                Llog.Error("Exception during start CCSVM Adhoc Scan service: " + ex.ToString());

                Environment.Exit(1);
            }
        }