public void Run(string[] args) { Console.Clear(); Console.WriteLine("*** Test AD User ***"); try { if (args == null || args.Length == 0) { Print.PrintUser(UserPrincipal.Current, "CURRENT USER INFO"); Console.WriteLine("TestADUser completed. Press enter to close application."); Console.ReadLine(); } else { // Replace this with the domain that you want to test string DomainName = "DomainName"; using (var pc = new PrincipalContext(ContextType.Domain, DomainName, null, ContextOptions.Negotiate)) { Console.WriteLine($"ConnectedServer : [{pc.ConnectedServer}]"); Console.WriteLine($"Container : [{pc.Container}]"); Console.WriteLine($"pc.Name : [{pc.Name}]"); Console.WriteLine($"pc.UserName : [{pc.UserName}]"); // Get the UserId and insert it here to test Guid userId = Guid.Empty; GetUser(pc, userId.ToString(), IdentityType.Guid); //Username GetUser(pc, args[0], IdentityType.Name); //UserPrincipalName if (!GetUser(pc, args[0], IdentityType.UserPrincipalName)) { GetUser(pc, args[0]); } //A list of roles that you want to test var roles = new List <string> { "Administrator", "PowerUser", "User" }; //List of usernames that needs to be tested var servaccounts = new List <string> { "User1", "User2", "User3" }; var roleAndusers = new Dictionary <string, List <string> >(); //Group + Users. Test is the users are in the groups roleAndusers.Add("Admins", new List <string> { "Administrator" }); roleAndusers.Add("Super Users", new List <string> { "User4", "User5", "MarketingPerson" }); roleAndusers.Add("Blocked", new List <string> { }); roleAndusers.Add("IT", new List <string> { "TriedRebooting", "Format" }); if (roleAndusers.Count != roles.Count) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"The number of roles and the number of items in the dictionary do not match. Testing may miss problems"); } } } } catch (Exception ex) { Console.WriteLine("### An error occurred ###"); while (ex != null) { Console.WriteLine(ex.Message); ex = ex.InnerException; } Console.ReadLine(); } Console.WriteLine("TestADUser completed."); }