I’m working on a project and I was curious about what properties Active Directory would return when search for computers with the DirectorySearcher class in C#. Basically, you can search an entire domain for known computers using something like:
string domainName = "mydomain"; DirectoryEntry de = new DirectoryEntry(); de.Path = String.Format("LDAP://{0}", domainName); de.Username = "username"; de.Password = "password"; try { DirectorySearcher ds = new DirectorySearcher(); ds.Filter = "(&ObjectCategory=computer)"; SearchResultCollection results = ds.FindAll(); foreach (SearchResult sr in results) { ResultPropertyCollection myResultPropColl; myResultPropColl = sr.Properties; foreach (string myKey in myResultPropColl.PropertyNames) { string propString = String.Empty; string tab = " "; Console.WriteLine("{0} = ", myKey); foreach (Object myCollection in myResultPropColl[myKey]) { Console.WriteLine("{0}{1}", tab, myCollection); } } } } catch (Exception) { }
This code is basically borrowed from this MSDN article, but what I was originally after was what properties could I actually get at? I wasn’t all that interested in the code. Well, just running that code yielded me the following list of properties that you can access via a computer object from Active Directory:
operatingsystem countrycode cn lastlogoff dscorepropagationdata usncreated objectguid iscriticalsystemobject serviceprincipalname whenchanged localpolicyflags accountexpires primarygroupid badpwdcount objectclass instancetype objectcategory whencreated lastlogon useraccountcontrol samaccountname operatingsystemversion samaccounttype adspath serverreferencebl dnshostname pwdlastset ridsetreferences logoncount codepage name usnchanged badpasswordtime objectsid distinguishedname
For my purposes, I wanted to find out operating system information, so the operatingsystem and operatingsystemversion properties woulded nicely for me. But, there you go, all of the properties you can access from a computer object in Active Directory. I hope this is useful to someone else out there other than myself.