Some time ago I developed ADUaCET, an extension for the Active Directory User and Computer MMC snap-in. Sad to say but the ADUaCET property page is not shown if you are searching for an user. It is only available if you use the procedure right click $USER -> Properties. I struggled the whole day with collecting information about this issue.

My results are the following:

  • It is not possible to use .NET and only Microsoft.Management.Advanced.PropertySheetExtension for having the property page tab after doing an Active Directory search.
  • Active Directory User and Computer MMC delegates the search to dsquery.dll, OpenQueryWindow. OpenQueryWindow uses an out pointer to pass back the Active Directory entries which were found by search query.
  • All default property pages (Member of, Sessions, Organization etc.) are included by MMC as COM objects.
  • All COM objects to be included in the User property page are stored in the Active Directory schema in CN=adminPropertyPages,CN=user-Display,CN=40[7|9],CN=DisplaySpecifiers,CN=Configuration,DC=yourdomain,DC=local. You can use ADSIEdit to change the used COM objects.
  • adminPropertyPages contains 10 GUIDs by default which are references to the registered COM objects. For example %systemroot%system32adprop.dll (GUID {6DFE6488-A212-11D0-BCD5-00C04FD8D5B6}) is one of them.
  • For determining which COM DLLs are used take an entry from adminPropertyPages and search your registry below HKLMSOFTWAREClassesCLSID$GUIDInProcServer32
  • A good example for registrating a new property page sheet COM object can be found at Yusufs.Directory.Blog (German).
  • Microsoft has two pages about Implement the Property Page COM Object and Registering the Property Page COM Object
  • codeproject.com has an example project which is based on .NET/C#. The example publishes a new property page sheet as COM object. Really helpful!

I am asking you for a donation.

You liked the content or this article has helped and reduced the amount of time you have struggled with this issue? Please donate a few bucks so I can keep going with solving challenges.