UserPrincipal GetUnderlyingObject: properties missing
Accessing all fields for a DirectoryEntry is a potentially slow and heavy operation. Some fields might not be replicated to all domain controllers, and so bringing the values might require accessing a remote and slow-to-access Global Catalog (GC) server.
Once you have a DirectoryEntry in hand and you want to pull a specific value, you can call the RefreshCache
method, passing it the names of the properties you need.