24 March 2011

Active Directory Properties for C#

I compiled the following list of Active Directory properties, while developing a solution. This list is more comprehensive than those I found on the InterWebs.

Please submit suggestions for additions to this list, via the comment block, below!  Code thrives on community feedback. (Code is posted after the jump break...)

using System;

namespace DemoNamespace
{
 public static class AdProperties
 { /* These are declared READONLY instead of CONST, to avoid regression 
   * issues when the constant value changes in the future.  The problem 
   * is that other assemblies referencing this one will hard-code the 
   * constant value, when compiled.  When the constant changes in this 
   * assembly, the other assemblies are not necessarily re-compiled, and 
   * therefore are not embedded with new values.
   */

  public static readonly String ACCOUNTEXPIRES = "accountExpires";
  public static readonly String ACCOUNTNAMEHISTORY = "accountNameHistory";
  public static readonly String ACSPOLICYNAME = "aCSPolicyName";
  public static readonly String ADMINCOUNT = "adminCount";
  public static readonly String ALTSECURITYIDENTITIES = "altSecurityIdentities";
  public static readonly String ASSISTANT = "assistant";

  public static readonly String BADPASSWORDTIME = "badPasswordTime";
  public static readonly String BADPWDCOUNT = "badPwdCount";

  public static readonly String CITY = "l";
  public static readonly String CODEPAGE = "codePage";
  public static readonly String COMMENT = "comment";
  public static readonly String COMPANY = "company";
  /// 
  /// Warning! CONTAINERNAME may be confused with NAME.
  /// 
  public static readonly String CONTAINERNAME = "cn";
  public static readonly String CONTROLACCESSRIGHTS = "controlAccessRights";
  public static readonly String COUNTRY = "co";
  public static readonly String COUNTRYABBREVIATION = "c";
  public static readonly String COUNTRYCODE = "countryCode";

  public static readonly String DBCSPWD = "dBCSPwd";
  public static readonly String DEFAULTCLASSSTORE = "defaultClassStore";
  public static readonly String DEPARTMENT = "department";
  public static readonly String DESCRIPTION = "description";
  public static readonly String DIRECTREPORTS = "directReports";
  public static readonly String DESKTOPPROFILE = "desktopProfile";
  public static readonly String DESTINATIONINDICATOR = "destinationIndicator";
  public static readonly String DIVISION = "division";
  public static readonly String DYNAMICLDAPSERVER = "dynamicLDAPServer";
  public static readonly String DISPLAYNAME = "displayName";
  public static readonly String DISTINGUISHEDNAME = "distinguishedName";
  public static readonly String DSCOREPROPAGATIONDATA = "dSCorePropagationData";

  public static readonly String EMAILADDRESS = "mail";
  public static readonly String EMAILADDRESSOTHERS = "otherMailbox";
  public static readonly String EMPLOYEEID = "employeeID";
  public static readonly String EXTENSION = "ipPhone";

  public static readonly String FAX = "facsimileTelephoneNumber";
  public static readonly String FAXOTHERS = "otherFacsimileTelephoneNumber";
  public static readonly String FIRSTNAME = "givenName";

  public static readonly String GARBAGECOLLECTIONPERIOD = "garbageCollPeriod";
  public static readonly String GENERATIONALSUFFIX = "generationQualifier";
  public static readonly String GROUPMEMBERSHIPSAM = "groupMembershipSAM";
  public static readonly String GROUPPRIORITY = "groupPriority";
  public static readonly String GROUPSTOIGNORE = "groupsToIgnore";

  public static readonly String HOMEADDRESS = "homePostalAddress";
  public static readonly String HOMEDRIVE = "homeDrive";
  public static readonly String HOMEFOLDER = "homeDirectory";
  public static readonly String HOMEMTA = "homeMTA";
  public static readonly String HOMEMDB = "homeMDB";
  public static readonly String HOMEPHONE = "homePhone";
  public static readonly String HOMEPHONEOTHERS = "otherHomePhone";

  public static readonly String INITIALS = "initials";
  public static readonly String INSTANCETYPE = "instanceType";
  public static readonly String INTERNATIONALISDNNUMBER = "primaryInternationalISDNNumber";
  public static readonly String INTERNATIONALISDNNUMBEROTHERS = "internationalISDNNumber";
  public static readonly String IPPHONENUMBER = "ipPhone";
  public static readonly String IPPHONENUMBEROTHERS = "otherIpPhone";

  /// 
  /// Warning!  JOBTITLE may be confused with TITLE.
  /// 
  public static readonly String JOBTITLE = "title";

  public static readonly String LASTNAME = "sn";
  public static readonly String LASTLOGOFF = "lastLogoff";
  public static readonly String LASTLOGON = "lastLogon";
  public static readonly String LASTLOGONTIMESTAMP = "lastLogonTimestamp";
  public static readonly String LEGACYEXCHANGEDN = "legacyExchangeDN";
  public static readonly String LMPWDHISTORY = "lmPwdHistory";
  public static readonly String LOCALEID = "localeID";
  public static readonly String LOCKOUTTIME = "lockoutTime";
  public static readonly String LOGONCOUNT = "logonCount";
  public static readonly String LOGONHOURS = "logonHours";
  /// 
  /// Same as USERPRINCIPALNAME.
  /// 
  public static readonly String LOGONNAME = "userPrincipalName";
  public static readonly String LOGONNAMEPREWIN2000 = "sAMAccountName";
  public static readonly String LOGONWORKSTATION = "logonWorkstation";
  public static readonly String LOGONWORKSTATIONS = "userWorkstations";

  public static readonly String MAILNICKNAME = "mailNickname";
  public static readonly String MANAGER = "manager";
  public static readonly String MAXSTORAGE = "maxStorage";
  public static readonly String MDBUSEDEFAULTS = "mDBUseDefaults";
  public static readonly String MEMBEROF = "memberOf";
  public static readonly String MHSORADDRESS = "mhsORAddress";
  public static readonly String MIDDLENAME = "initials";
  public static readonly String MOBILE = "mobile";
  public static readonly String MOBILEOTHERS = "otherMobile";
  public static readonly String MSDSCREATORSID = "mS-DS-CreatorSID";
  public static readonly String MSEXCHMAILBOXSECURITYDESCRIPTOR = "msExchMailboxSecurityDescriptor";
  public static readonly String MSEXCHPOLICIESINCLUDED = "msExchPoliciesIncluded";
  public static readonly String MSEXCHRECIPIENTTYPEDETAILS = "msExchRecipientTypeDetails";
  public static readonly String MSEXCHUSERACCOUNTCONTROL = "msExchUserAccountControl";
  public static readonly String MSEXCHHOMESERVERNAME = "msExchHomeServerName";
  public static readonly String MSEXCHVERSION = "msExchVersion";
  public static readonly String MSEXCHRECIPIENTDISPLAYTYPE = "msExchRecipientDisplayType";
  public static readonly String MSEXCHMAILBOXGUID = "msExchMailboxGuid";
  public static readonly String MSMQDIGESTS = "mSMQDigests";
  public static readonly String MSMQDIGESTSMIG = "mSMQDigestsMig";
  public static readonly String MSMQSIGNCERTIFICATES = "mSMQSignCertificates";
  public static readonly String MSMQSIGNCERTIFICATESMIG = "mSMQSignCertificatesMig";
  public static readonly String MSNPALLOWDIALIN = "msNPAllowDialin";
  public static readonly String MSNPCALLINGSTATIONID = "msNPCallingStationID";
  public static readonly String MSNPSAVEDCALLINGSTATIONID = "msNPSavedCallingStationID";
  public static readonly String MSRADIUSCALLBACKNUMBER = "msRADIUSCallbackNumber";
  public static readonly String MSRADIUSFRAMEDIPADDRESS = "msRADIUSFramedIPAddress";
  public static readonly String MSRADIUSFRAMEDROUTE = "msRADIUSFramedRoute";
  public static readonly String MSRADIUSSERVICETYPE = "msRADIUSServiceType";
  public static readonly String MSRASSAVEDCALLBACKNUMBER = "msRASSavedCallbackNumber";
  public static readonly String MSRASSAVEDFRAMEDIPADDRESS = "msRASSavedFramedIPAddress";
  public static readonly String MSRASSAVEDFRAMEDROUTE = "msRASSavedFramedRoute";

  /// 
  /// Warning! NAME may be confused with CONTAINERNAME.
  /// 
  public static readonly String NAME = "name";
  public static readonly String NETWORKADDRESS = "networkAddress";
  public static readonly String NTPWDHISTORY = "ntPwdHistory";
  public static readonly String NTSECURITYDESCRIPTOR = "nTSecurityDescriptor";
  public static readonly String NOTES = "info";

  public static readonly String O = "o";
  public static readonly String OBJECTCATEGORY = "objectCategory";
  public static readonly String OBJECTCLASS = "objectClass";
  public static readonly String OBJECTGUID = "objectGUID";
  public static readonly String OBJECTSID = "objectSid";
  public static readonly String OFFICELOCATION = "physicalDeliveryOfficeName";
  public static readonly String OPERATORCOUNT = "operatorCount";
  public static readonly String OTHERLOGINWORKSTATIONS = "otherLoginWorkstations"; // Yes, this is stupid, but doesn't fit up with the rest.
  public static readonly String OU = "ou";

  public static readonly String PAGER = "pager";
  public static readonly String PAGEROTHER = "otherPager";
  /// 
  /// Warning! PHONEOTHER may be confused with TELEPHONE.
  /// 
  public static readonly String PHONEOTHER = "otherTelephone";
  public static readonly String PHYSICALDELIVERYOFFICENAME = "physicalDeliveryOfficeName";
  public static readonly String POSTALADDRESS = "postalAddress";
  /// 
  /// Same as ZIPCODE.
  /// 
  public static readonly String POSTALCODE = "postalCode";
  public static readonly String POSTOFFICEBOX = "postOfficeBox";
  public static readonly String PREFERREDDELIVERYMETHOD = "preferredDeliveryMethod";
  public static readonly String PREFERREDOU = "preferredOU";
  public static readonly String PRIMARYGROUPID = "primaryGroupID";
  public static readonly String PROFILEPATH = "profilePath";
  public static readonly String PROXYADDRESSES = "proxyAddresses";
  public static readonly String PWDLASTSET = "pwdLastSet";
  public static readonly String REGISTEREDADDRESS = "registeredAddress";
  public static readonly String RID = "rid";
  public static readonly String SAMACCOUNTTYPE = "sAMAccountType";
  public static readonly String SCRIPTPATH = "scriptPath";
  public static readonly String SECURITYIDENTIFIER = "securityIdentifier";
  public static readonly String SERVICEPRINCIPALNAME = "servicePrincipalName";
  public static readonly String SHOWINADDRESSBOOK = "showInAddressBook";
  public static readonly String SIDHISTORY = "sIDHistory";
  public static readonly String STATE = "st";
  public static readonly String STREET = "street";
  public static readonly String STREETADDRESS = "streetAddress";
  public static readonly String SUPPLEMENTALCREDENTIALS = "supplementalCredentials";
  /// 
  /// Warning! TELEPHONE may be confused with PHONEOTHER.
  /// 
  public static readonly String TELEPHONE = "telephoneNumber";
  public static readonly String TELETEXTERMINALIDENTIFIER = "teletexTerminalIdentifier";
  public static readonly String TELEXNUMBER = "primaryTelexNumber";
  public static readonly String TELEXNUMBEROTHERS = "TelexNumber";
  public static readonly String TERMINALSERVER = "terminalServer";
  public static readonly String TEXTENCODEDORADDRESS = "textEncodedORAddress";
  public static readonly String THUMBNAILLOGO = "thumbnailLogo";
  public static readonly String THUMBNAILPHOTO = "thumbnailPhoto";
  /// 
  /// Warning!  TITLE may be confused with JOBTITLE.
  /// 
  public static readonly String TITLE = "personalTitle";
  public static readonly String TOKENGROUPS = "tokenGroups";
  public static readonly String TOKENGROUPSGLOBALANDUNIVERSAL = "tokenGroupsGlobalAndUniversal";
  public static readonly String TOKENGROUPSNOGCACCEPTABLE = "tokenGroupsNoGCAcceptable";

  public static readonly String UNICODEPWD = "unicodePwd";
  public static readonly String USERACCOUNTCONTROL = "userAccountControl";
  public static readonly String USERCERT = "userCert";
  public static readonly String USERCERTIFICATE = "userCertificate";
  public static readonly String USERPARAMETERS = "userParameters";
  /// 
  /// Same as LOGONNAME.
  /// 
  public static readonly String USERPRINCIPALNAME = "userPrincipalName";
  public static readonly String USERSHAREDFOLDER = "userSharedFolder";
  public static readonly String USERSHAREDFOLDEROTHER = "userSharedFolderOther";
  public static readonly String USERSMIMECERTIFICATE = "userSMIMECertificate";
  public static readonly String USNCHANGED = "uSNChanged";
  public static readonly String USNCREATED = "uSNCreated";

  public static readonly String WHENCHANGED = "whenChanged";
  public static readonly String WHENCREATED = "whenCreated";

  public static readonly String X121ADDRESS = "x121Address";

  /// 
  /// Same as POSTALCODE.
  /// 
  public static readonly String ZIPCODE = "postalCode";
 }
}

No comments:

Post a Comment

Please provide details, when posting technical comments. If you find an error in sample code or have found bad information/misinformation in a post, please e-mail me details, so I can make corrections as quickly as possible.