Skip to main content

Export Sitecore users to a .csv file

Export Sitecore Users to a File Here is a piece of code which I have written to export Sitecore users to a .csv file. This code reads the list of Sitecore users using UserManager's GetUsers method. See if it helps you.
  

	using Sitecore.Shell.Framework.Commands;
	using System;
	using Sitecore.Web.UI.Sheer;
	using System.IO;
	using Sitecore.SecurityModel;
	using System.Text;
	using Sitecore.Diagnostics;
	namespace SitecoreCustom.Web.Extensions.Commands
	{
	public class ExportSitecoreUsers : Command
	{
		string filepath = string.Empty;
		public override void Execute(CommandContext context)
		{
			try
			{
				CreateFile();
				if (!string.IsNullOrWhiteSpace(filepath))
					SheerResponse.Download(filepath);
			}
			catch (Exception ex)
			{
				Log.Error(ex.Message, ex);
				SheerResponse.Alert("Error Occurred: Please try again");
			}
		}
		/// 
		/// Create csv file with list of users.
		///          
		private void CreateFile()
		{
			string fileExtension = ".csv";
			string path = Sitecore.Configuration.Settings.DataFolder + "Export User";
			if (!Directory.Exists(path))
				Directory.CreateDirectory(path);
			string fileName = "Sitecore_User";
			fileName = fileName + "-" + DateTime.Now.ToString("MM-dd-yyyy_HH-mm-ss");
			filepath = path + @"\" + fileName + fileExtension;

			using (new SecurityDisabler())
			{
				var users = Sitecore.Security.Accounts.UserManager.GetUsers();
				StringBuilder records = new StringBuilder();
				records.Append(string.Format("{0},{1},{2},{3},{4},{5},{6},{7}",
														 "User Name",
														 "Domain",
														 "Fully Qualified Name",
														 "Full Name",
														 "Email",
														 "Comment",
														 "Language",
														 "Locked"));

				foreach (var user in users)
				{
					try
					{
						if (user != null)
						{
							records.Append(Environment.NewLine);
							records.Append(string.Format("{0},{1},{2},{3},{4},{5},{6},{7}",
													   user.LocalName,
													   user.Domain.Name,
													   user.DisplayName,
													   user.Profile.FullName,
													   user.Profile.Email,
													   user.Profile.Comment,
													   user.Profile.ClientLanguage,
													   user.Profile.State));
						}
					}
					catch (Exception ex)
					{
					    Log.Error(ex.Message, ex);
					}
				}

				using (var writer = new StreamWriter(filepath, false))
				{
					writer.WriteLine(records.ToString());
					writer.Close();
				}
			}
		}
	}
}
  
These custom code files can also be downloaded from here

Comments

Popular posts from this blog

Sitecore 9.3 Installation | Common Issues and Resolutions

Recently, I have installed and setup Sitecore 9.3 on another machine. I faced similar/same kind of issues which I faced earlier. Thought, it would be helpful to the Sitecore Community if I capture and document them along with resolution steps I which took and be successful in settting up. Here are few of them I could document them. 1. Failed to start service 'Sitecore Marketing Automation Engine - sitecore93xconnect.dev.local-MarketingAutomationService (sitecore93xconnect.dev.local-MarketingAutomationService)'. Solution : This issue occurs because of non-self-signed certificates, hence please follow the below steps to resolve your issue. Execute below PowerShell script to find out if there are any non-self-signed certificates: 1. Open the PowerShell Console (Admin mode recommended) 2. Execute below command Get-Childitem cert:\LocalMachine\root -Recurse | Where-Object {$_.Issuer -ne $_.Subject} 3. If it shows any results listing any non-self-signed certificates...

Steps to create a Sitecore JSS app and Deploy to Sitecore

If you are a beginner in Sitecore JSS and you are looking step-by-step by process to setup your first JSS App with Sitecore, please proceed further and setup up your first JSS App along with deploying it to Sitecore. Before we jump start creating JSS APP, let us start with a quick introduction to Sitecore JSS. What is Sitecore JSS?  Sitecore JavaScript Services (JSS) is a complete SDK for JavaScript developers that enables you to build full-fledged solutions using Sitecore and modern JavaScript UI libraries and frameworks. Build Headless JavaScript applications with the power of Sitecore. Use your favorite JavaScript framework powered by an enterprise experience platform like React, Angular or Vue.js. Prerequisites for Connected mode with Sitecore Required Installations node.js v6.9 or later npm v5.7 or later Sitecore 9 or later installation with JSS(For JSS component ref, https://dev.sitecore.net/Downloads/Sitecore_JavaScript_Services.aspx) Required Settings  ...

Sitecore JSS - Custom Rendering Content Resolvers

In Sitecore, while working for real-time projects, you may get scenarios where you would see a need to customize you rendering output to serialze. Sitecore provides three different ways of customizing your rendering output with Sitecore JSS. They are as below. • Use JSS GraphQL Support - Using Integrated GraphQL queries • Use Out-of-the-box Rendering Content Resolvers - Using Sitecore JSS built-in Rendering Content Resolvers • Implementing a Custom Rendering Content Resolvers by inheriting RenderingContentsResolver Why Customization? In Sitecore development, many times we encounter scenarios to deal with hierarchical item structures like multi-level menu, product category, product sub-category, product details, forms etc., and even, in case where there is a need to combine the Sitecore data with any non-Sitecore data. In these types, Sitecore JSS is not able to serialize item structures with sub-hierarchies into JSON. Sitecore Jss allow us custiomize in...