Why we named a bit in the directory after BillG

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

Comments (8)
  1. Vatsan says:

    and I thought ANR was and AD thing.. Since when did the Exchange team stake its claim on that … :)

  2. Neil Shipp says:

    ANR was part of Exchange Server 4.0 when it was released in 1996, long before the AD as such existed. In truth, the AD was originally developed from the Exchange Server directory code-base.

  3. an Exchange old timer.... since moved on says:

    ummm actually ANR is a MAPI concept and was avaialble as far back as MAPI 0 (MSMail client running against MSMAIL & hacked up version of same client to run against the internal Xenix servers at the time, to bring a decent Windows GUI to existing email)

    I will concur with Neil’s statement that the "bit" was to do with WZMAIL interop/ usability. Back then there was a ITG team dedicated to helping transition to Exchange (and they actually lived with the Exchange team in Building 16). They had / took / were given a top 5 list that they could use as deployment blockers. Email alias name resolution was engrained in the culture at MSFT (and to some degree still is today) and that is the reason Exchange has both the unique ALIAS field as well as special case ANR against it. BTW…. where do you think the AD came from….. Exchange !!!! They took it and goosed it up and took it to places we couldn’t have. Now, not even gonna mention where WE got it from :)

  4. Praveen says:

    Nice information….

  5. SamDruk says:

    What’s the corresponding client registry key?

  6. Larry Osterman says:

    Neil, IIRC, it was because of the wzmail behavior.

    There are some really fascinating issues with ANR that had to do with the fact that Tom Evslin (our VP at the time) wanted to be able to type in "To Ev" or "Ev To" and have it resolve to his name.

  7. Neil Shipp says:

    Sam – There is a corresponding client registry key for the Outlook. But it only applies to the OAB (offline address book) when offline or in Outlook 2003 cached mode. See the KB article http://support.microsoft.com/?kbid=841273.

    Larry – I talked to one of the other original directory devs who have since moved on to other groups to confirm my history. According to one source, Bill Gates did have problems with the original performance of the truncated first/last name queries.

  8. an Exchange old timer.... since moved on says:

    Yes Bill did. Though that particular aspect was being managed via the ITG top 5 list as the person driving this ITG team I described, was at the time closely tied to billg and routinely represented his "feedback" .

Comments are closed.