\[Editor's Note: Email your Exchange Server and Outlook solutions (400 words maximum) to R2R at [email protected] Please include your phone number. We edit submissions for style, grammar, and length. If we print your contribution, you'll get $100.\]
Microsoft Active Directory Service Interfaces (ADSI) is a great interface for building directory utilities. You can point ADSI code at either the Exchange Server 5.5 Directory Store or the Windows 2000 Active Directory (AD), which Exchange 2000 Server uses. ADSI is a powerful and flexible interface, and the code can include bugs that create corrupt or invalid objects in the target directory.
I built a customized Microsoft Outlook form to help automate distribution list (DL) creation for the Exchange Server 5.5 Directory Store. The form calls ADSI behind the scenes, and a bug let users create DLs that have extended characters (e.g., /) in their names. The Exchange directory database usually doesn't allow such characters, but I ended up with some DL objects that included extended characters in their name. The result was instant corruption.
I tried to delete the corrupt DL with the Delete function from the Outlook form, but I was unsuccessful. The list remained visible in the Microsoft Exchange Administrator program, but I couldn't delete it even by using Exchange Administrator Delete Raw Object function.
Fortunately, invalid objects such as this DL don't crash the Directory anymore. Microsoft fixed this problem in Exchange Server 5.5 Service Pack 3 (SP3). The Microsoft article "XADM: Extended Characters Entered into a Mailbox via LDAP Cause Directory Replication to Break" (http://support.microsoft.com/support/kb/articles/q222/6/47.asp) gives the details of the problem and the fix. However, those objects can cause other serious problems (e.g., they can prevent a directory export from working).
In my situation, the object persisted even after its tombstone lifetime expired. Then, I found that you can use the ADSI Viewer to delete the problem DL on the server. The section Start Connecting to Active Directory in the Microsoft article "Easy Access to Active Directory Using ADSI" (http://msdn.microsoft.com/library/backgrnd/html/adadsi.htm) describes where you can get the ADSI Viewer.
To delete the corrupt object, start the ADSI Viewer and choose New, Object Viewer. In the New object dialog box, enter the path to your Exchange server and the user credentials. Specifically, in the Enter ADs path: text box, enter your server name in the form LDAP://servername. In the Open As field, enter your Exchange service account with its password. In the treeview that appears, you can browse your Exchange server directory down to the corrupt object and delete it.