Why we named a bit in the directory after BillG

Published Aug 23 2004 09:27 AM 2,554 Views

The billg bit or the DoNicknameResolution bit is a setting in the Active Directory that controls how Outlook ambiguous name resolution (ANR) works.  Normally, when resolving a name in Outlook, a query is done against the AD using the string passed in.  The AD will try to match the string against all of the attributes that are part of the ANR set which include Display Name, alias, office, surname, givenName, proxyAddresses, samAccountName, mail, legacyDN and any other attribute that has bit 3 set in the searchFlags attribute on its schema object.   The billg bit changes the behaviour so that if an exact match is found on the alias, only that entry will be returned.

Normally, people can just type an alias and this matches to a mail recipient.  But often it matches a lot more than the desired person.  This can result in a lot of entries returned for a simple string like "John" or "Susan".  You can normally get around this by putting an equals sign in front of the alias, "=john", and the AD will only return objects that match that string exactly, but it still returns everyone whose first name is John, not only the user who has the alias "john".  For users who just type in a name on the to line, and don't bother to check names before hitting send, mail can be sent to the wrong person.  However if the the DoNicknameResolution setting is turned on, the AD will first attempt an exact match against the alias field and return that entry if it exists before attempting name resolution on the set of ANR attributes.  So doing ANR against the string "John" would return the user with the alias of "john" instead of everyone who has the first name John.

This behaviour is controlled in the AD by setting the 4th character to '1' on the dsHeuristics attribute on the CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration, Root domain in forest object.  It changes the ANR behaviour of all the Global Catalogs across the forest that provide MAPI address book provider lookup capability.   If the dsHeuristics attribute wasn't set already, you would set it to '1000' to turn on nickname resolution.  Delete the attribute or set the 4th character back to '0' to turn the feature off.

It's unknown why it's called the billg bit. It might be because when this setting is enabled, typing in "billg" will resolve to Bill Gates immediately rather than popping up the ambiguous name resolution dialog, even if there's a BillGo in the directory. Another theory has to do with ancient history - early on in the development of Exchange Server 4.0, a program called wzmail was used for E-mail at Microsoft.  It ran against sendmail servers running on Xenix.  If you wanted to send mail to someone, you addressed mail using their alias.   However, when Exchange 4.0 along with the new GUI clients were first rolled out internally at Microsoft, the crusty old timers, used to wzmail, still wanted to send mail using the alias.  This didn't always work with the new ANR code and enough complaints were raised that the product team implemented an alias lookup and the behaviour was made optional via a registry-key at the time.

- Neil Shipp

Version history
Last update:
‎Jul 01 2019 02:59 PM
Updated by: