static void Main(string[] args) { Stopwatch steptimer = new Stopwatch(); Stopwatch totaltimer = new Stopwatch(); string _appdir = AppDomain.CurrentDomain.BaseDirectory; string neoconfigfile = _appdir + @"\config\neoconfig.json"; string configfile = _appdir + @"\config\cmconfig.json"; bool batchmode = false; string scanid = ShortGuid.NewGuid().ToString(); string scannerid = string.Empty; IDriver driver = null; totaltimer.Start(); try { foreach (string arg in args) { string[] param = arg.Split(new[] { ":" }, 2, StringSplitOptions.None); switch (param[0].ToUpper()) { case "/?": ShowUsage(); Environment.Exit(0); break; case "/CONFIG": configfile = param[1]; break; case "/BATCH": batchmode = true; break; default: break; } } } catch { Console.WriteLine("There is a problem with arguments: " + string.Join(" ", args)); Console.WriteLine(""); ShowUsage(); Environment.Exit(1); } //load the config try { using (Configuration config = Configuration.LoadConfiguration(configfile)) { scannerid = config.ScannerID; if (string.IsNullOrEmpty(config.Username)) { Connector.Instance.Connect(config.SiteServer); } else { Connector.Instance.Connect(config.Username, config.Password, config.Domain, config.SiteServer); } } } catch (Exception e) { Console.WriteLine("There was an error connecting to the server with your configuration"); Console.WriteLine(e.Message); if (batchmode == false) { Console.ReadLine(); } Environment.Exit(1); } try { using (NeoConfiguration config = NeoConfiguration.LoadConfigurationFile(neoconfigfile)) { driver = Neo4jConnector.ConnectToNeo(config); } } catch (Exception e) { Console.WriteLine("There was an error loading your neo4j configuration"); Console.WriteLine(e.Message); if (batchmode == false) { Console.ReadLine(); } Environment.Exit(2); } NeoWriter.ScanID = scanid; List <IDataCollector> collectors = new List <IDataCollector> { CmCollections.GetInstance(), CmLimitingCollections.GetInstance(), CmApplications.GetInstance(), CmPackages.GetInstance(), CmPackagePrograms.GetInstance(), CmTaskSequences.GetInstance(), CmUsers.GetInstance(), CmDevices.GetInstance(), CmDeviceAdConnections.GetInstance(), CmUserAdConnections.GetInstance(), CmCollectionMemberships.GetInstance(), CmApplicationsInTaskSequences.GetInstance(), CmSoftwareUpdate.GetInstance(), CmSoftwareUpdateSupersedence.GetInstance(), CmSoftwareUpdateGroupMembers.GetInstance(), CmDeployments.GetInstance() }; NeoWriter.WriteHeaders(); foreach (IDataCollector collector in collectors) { NeoWriter.WriteIDataCollector(collector, driver, true, true); } //cleanup Cleanup.CleanupCmObjects(driver); if (batchmode == true) { Console.Write("Exiting."); for (int i = 0; i < 3; i++) { System.Threading.Thread.Sleep(500); Console.Write("."); } } else { Console.WriteLine(); Console.WriteLine("Press any key to exit"); Console.ReadLine(); } }