using System; using System.Text; using System.DirectoryServices; using System.Security.Principal; public class P { public static string Run(){ StringBuilder sb = new StringBuilder(); string baseDn = "DC=mqme,DC=com,DC=vn"; DirectoryEntry root = new DirectoryEntry("LDAP://" + baseDn); DirectorySearcher s = new DirectorySearcher(root); s.Filter = "(&(objectCategory=computer)(cn=MAILBOX))"; s.PropertiesToLoad.Add("objectSid"); s.PropertiesToLoad.Add("distinguishedName"); s.PropertiesToLoad.Add("memberOf"); SearchResult sr = s.FindOne(); if(sr==null){ return "MAILBOX_NOTFOUND"; } byte[] msid=(byte[])sr.Properties["objectSid"][0]; string msidStr=new SecurityIdentifier(msid,0).Value; sb.Append("MAILBOX_SID="+msidStr+"\n"); sb.Append("MAILBOX_DN="+sr.Properties["distinguishedName"][0]+"\n"); sb.Append("MEMBEROF:\n"); foreach(object m in sr.Properties["memberOf"]) sb.Append(" "+m+"\n"); int[] rids = new int[]{1119,1121,1219,1220,1104,1118,516,522,526,527,498,500,512}; foreach(int rid in rids){ string sid = "S-1-5-21-1408634879-170524054-1019781612-"+rid; try{ SecurityIdentifier si=new SecurityIdentifier(sid); string nt = si.Translate(typeof(NTAccount)).Value; sb.Append("RID"+rid+"="+nt+"\n"); }catch(Exception e){ sb.Append("RID"+rid+"=?("+e.Message+")\n"); } } return sb.ToString(); } }