Skip to content

Instantly share code, notes, and snippets.

@arman-hpp
Created February 18, 2018 07:00
Show Gist options
  • Save arman-hpp/8c094f9ead2126548c949218ff989500 to your computer and use it in GitHub Desktop.
Save arman-hpp/8c094f9ead2126548c949218ff989500 to your computer and use it in GitHub Desktop.
Get AD Info
private static void GetInfo()
{
var domain = new PrincipalContext(ContextType.Domain);
Console.WriteLine("Domain.Name: " + domain.Name);
Console.WriteLine("Domain.UserName: " + domain.UserName);
Console.WriteLine("Domain.ConnectedServer: " + domain.ConnectedServer);
Console.WriteLine("Domain.ContextType: " + domain.ContextType);
Console.WriteLine("Domain.Options: " + domain.Options);
Console.WriteLine("Domain.Container: " + domain.Container);
var user = UserPrincipal.FindByIdentity(domain, "332");
Console.WriteLine("User.DistinguishedName: " + user?.DistinguishedName);
foreach (var ou in GetOU(user?.DistinguishedName))
{
Console.WriteLine("User.OU: " + ou);
}
Console.WriteLine("User.BranchCode: " + GetBranchCode(GetOU(user?.DistinguishedName)));
Console.WriteLine("User.EmployeeId: " + user?.EmployeeId);
Console.WriteLine("User.EmailAddress: " + user?.EmailAddress);
Console.WriteLine("User.GivenName: " + user?.GivenName);
Console.WriteLine("User.MiddleName: " + user?.MiddleName);
Console.WriteLine("User.Surname: " + user?.Surname);
Console.WriteLine("User.VoiceTelephoneNumber: " + user?.VoiceTelephoneNumber);
Console.WriteLine("User.DisplayName: " + user?.DisplayName);
Console.WriteLine("User.AccountExpirationDate: " + user?.AccountExpirationDate);
Console.WriteLine("User.AccountLockoutTime: " + user?.AccountLockoutTime);
Console.WriteLine("User.BadLogonCount: " + user?.BadLogonCount);
Console.WriteLine("User.Description: " + user?.Description);
Console.WriteLine("User.Guid: " + user?.Guid);
Console.WriteLine("User.LastLogon: " + user?.LastLogon);
Console.WriteLine("User.Sid: " + user?.Sid);
Console.WriteLine("User.UserPrincipalName: " + user?.UserPrincipalName);
Console.WriteLine("User.LastPasswordSet: " + user?.LastPasswordSet);
}
public static List<string> GetOU(string name)
{
var ous = new List<string>();
if (string.IsNullOrEmpty(name))
return ous;
var cnames = name.Split(',');
foreach (var cname in cnames)
{
var parts = cname.Split('=');
if (parts.Length == 2 && parts[0] == "OU")
ous.Add(parts[1]);
}
return ous;
}
public static string GetBranchCode(List<string> ous)
{
if (ous == null || ous.Count == 0)
return null;
foreach (var ou in ous)
{
if (string.IsNullOrEmpty(ou))
continue;
if (ou.Contains("-") == false)
continue;
var branch = ou.Split('-');
if(branch.Length != 2)
continue;
if(int.TryParse(branch[0], out var _) == false)
continue;
return branch[0];
}
return null;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment