The code in Listing 1, Listing 2, Listing 3, and Listing 4 is intended for use with objects stored in Active Directory (AD)—in other words, objects in the LDAP: namespace. Although you can use the code to query the mandatory and optional properties of objects outside AD (e.g., objects in the WinNT: namespace), problems arise because ADSI works differently in different namespaces. For example, if you use the code in Listing 1 to query an object in the WinNT: namespace, the IADS interface's Schema property returns an empty result set instead of a list of the available mandatory properties. Only optional properties are maintained for objects in the WinNT: namespace. Similarly, if you use the code in Listing 3 to query objects in the WinNT: namespace, the IADS PropertyList interface returns a list of all the available properties, not just the populated properties.