Active Directoryユーザーの「説明」欄をLDAPで取得するVBでドツボにはまる

Visual Basic for Applicationsで、非常にくだらないことでドツボにはまってしまったので、同じ失敗を他の方がされないように、備忘のために書いておく。
ADODBオブジェクトを使って、LDAPクエリーで、Active Directory上のユーザーと、その属性を列挙するプログラムを書いていたが、description属性がすべてのユーザーについて空文字しか返ってこない。
画面上でユーザーのプロパティを表示させたとき、「全般」タブの「説明(D)」欄にあたる属性である。
もしかするとActive Directory上の「description」と、LDAPの「description」属性は、実は異なる属性を指しているのだろうか、と考えた。
Active Directory上のすべての属性一覧は下記のページで参照できる。
All Atributes (Windows) (Microsoft Dev Center)
例えば、実はActive Directory上の「Admin-Description」、つまりLDAPの「adminDescription」が「説明(D)」欄なのではないか、とか、「User-Comment」(LDAPの「comment」)がそうなのではないか、とか、いろいろ試行錯誤をしていた。
結局わかったのは、「description」属性で正解だったのだが、この属性は複数値を許可するため、Visual Basicで値を取得するときは、文字列のCollectionが返ってくるものとしてコーディングする必要がある、ということだ。
つまり下記のように、Collectionの個々の値を取得するためのループを回す必要がある。

If Not IsNull(oRes.Fields(“description”)) Then
  vDescVals = oRes.Fields(“description”)
  For Each vDescVal In vDescVals
    ‘ vDescValが個々の値
  Next
End If

これで「全般」タブの「説明(D)」欄の内容を正しく取得できる。
以上、とってもくだらないことでドツボにはまった僕がバカでした、というお話だった。