サンプルアプリの画面側 ~ユーザ、コンピュータのリスト~ のユーザのリストところの ShowBelongGroups メソッド内を変更しました。
変更前:
For Each group In groups
If group.Native.IsMember(user.Entry.Path) Then 'グループに所属している時
groupListBox.Items.Add(group.Name)
End If
Next
変更後:
For Each group As IADs In user.Native.Groups() '所属するグループ数分(プライマリ グループ以外)
groupListBox.Items.Add(DirectoryAccess.PathToCn(group.Name))
Next
コンピュータのリストにも同じメソッドがありますが、そっちはそのままで。IADsComputer インターフェイスには Groups メソッドが定義されてないので Computer クラスには Native プロパティを実装してないからです。
Native プロパティを実装してグループのリストのように IADs.GetEx("memberOf") で所属するグループを取得ってやっても、コンピュータって通常は 1つのグループ(ドメインコントローラは Domain Controllers グループ、メンバサーバやクライアントPCは Domain Computers グループ)のみに所属してて、それがプライマリグループになってるので、GetEx メソッドを呼び出しても例外が発生するだけです。いいやり方とはいえないかなと思います。
かといって現行もなぁ、あんまりいいとは思えない・・・
グループの数が少ないならいいかもしれないけど。