Ejemplo n.º 1
0
        private static void exportToFile(IEnumerable <ActiveDirectoryServer> serversToExport, CommandLineOptions options)
        {
            logger.Info("Export File: " + options.ExportFile);
            Regex csvExtension = new Regex("\\.csv$", RegexOptions.Compiled | RegexOptions.IgnoreCase);

            if (csvExtension.IsMatch(options.ExportFile))
            {
                logger.Info("Exporting to CSV file...");
                try
                {
                    ActiveDirectoryUserProvider reader = new ActiveDirectoryUserProvider();
                    reader.DumpUserRecordsToCSV(options.ExportFile, serversToExport, options.Limit);
                }
                catch (Exception csvException)
                {
                    logException("Error while exporting AD records to CSV file", csvException);
                }
            }
            else
            {
                logger.Info("Exporting to text file...");
                try
                {
                    ActiveDirectoryUserProvider reader = new ActiveDirectoryUserProvider();
                    reader.DumpUserRecordsToText(options.ExportFile, serversToExport, options.Limit);
                }
                catch (Exception txtException)
                {
                    logException("Error while exporting AD records to text file", txtException);
                }
            }
        }
Ejemplo n.º 2
0
        private static int syncFromActiveDirectory(int returnCode, ActiveDirectorySyncSettings adSyncSettings, AddressBookStore addressBook, CommandLineOptions options)
        {
            logger.Info("Initializing active directory reader...");
            ActiveDirectoryUserProvider reader = new ActiveDirectoryUserProvider();
            int recordsIterated = 0;

            try
            {
                foreach (var adServer in adSyncSettings.ActiveDirectoryServers)
                {
                    if (!string.IsNullOrWhiteSpace(options.ServerName) && options.ServerName != "None" && adServer.Name != options.ServerName)
                    {
                        // If user provides a specific server name, then skip all other servers
                        logger.Warn("Skipping AD server: " + adServer.Name);
                        continue;
                    }

                    logger.Info(new String('=', 50));
                    string displayContextContainer = adServer.ContextContainer;
                    if (string.IsNullOrWhiteSpace(displayContextContainer))
                    {
                        displayContextContainer = "No Context Container Provided";
                    }
                    logger.Info("Processing: " + adServer.Name + " (" + adServer.Domain + " / " + displayContextContainer + ")");

                    foreach (var adUser in reader.GetUserRecords(adServer))
                    {
                        addressBook.AddOrSyncADUser(adUser, adSyncSettings.SyncSettings.UpdateUserInformation);
                        recordsIterated++;

                        if (options.Limit > 0 && recordsIterated >= options.Limit)
                        {
                            break;
                        }
                    }

                    if (options.Limit > 0 && recordsIterated >= options.Limit)
                    {
                        logger.Info("\nObtained maximum record count of " + options.Limit);
                        break;
                    }
                }
            }
            catch (Exception exc)
            {
                logException("Unexpected Exception Occured", exc);
                returnCode = 1;
            }
            return(returnCode);
        }