Microsoft KB Archive/215355

{|
 * width="100%"|

FIX: [Object].GUID Results Differ from [Object].Get("GUID")

 * }

Q215355

-

The information in this article applies to:


 * Microsoft Active Directory Service Interfaces, versions 2.0, 2.5

-

SYMPTOMS
When attempting to retrieve a directory object's GUID from an LDAP directory, using [object].GUID produces different results than using [object].Get("GUID").

CAUSE
Because of a bug in the LDAP ADSI Provider that ships with ADSI 2.0, using the syntax [object].GUID returns the GUID for the Class object, whereas using the syntax [object].Get("GUID") returns the actual GUID of the object you are currently bound to.

RESOLUTION
When retrieving an object's GUID, use the Get method to retrieve the attribute value as in this example:

[object].Get("GUID")

STATUS
This bug was corrected in ADSI.

Steps to Reproduce Behavior
To reproduce this issue, you must bind to an LDAP object that supports a GUID attribute, such as a Member object in the Site Server 3.0 Membership Directory. The following code demonstrates this:

Dim adsRoot Dim strLdapPath

strLdapPath = "LDAP://myserver:389/o=Microsoft/ou=Members/cn=MyUser"

'Bind to the object Set adsRoot = GetObject(strLdapPath)

'Display a Message Box with the incorrect GUID attribute Msgbox "The incorrect value is: " & CStr(adsRoot.GUID)

'Display a Message Box with the correct value Msgbox "The correct value is: " & CStr(adsRoot.Get("GUID"))

'Clean up Set adsRoot = Nothing