掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
[VB]Active Directoryで,ユーザよりグループを取得し、さらにそのグループのグループを取得するには? (ID:113022)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
[VB.NET]では DirectoryServices を使って同様のドメイン検索を実現してた ですが、VB6.0 では初めて作ったので十分動作確認して下さいね? かなり適当な部分がありますので…。 [VB6.0] Option Explicit Private Const Star As String = "*" Private Const LayerMax As Integer = 10 Private Const LdapTop As String = "LDAP://DOMAIN/" Private Sub Command1_Click() Dim sUsrLDAP As String Dim User As IADsUser Dim Group As IADsGroup sUsrLDAP = LdapTop & "CN=テストユーザ,OU=ユーザ,DC=DOMAIN,DC=com" Set User = GetObject(sUsrLDAP) Debug.Print "****************************************" Debug.Print Now For Each Group In User.Groups Debug.Print "" Debug.Print "* " & Group.Name Call memberOfSearch(Group.ADsPath, 2) Next Debug.Print "****************************************" End Sub Private Function memberOfSearch(ByVal LDAP As String, ByVal Layer As Integer) As Boolean Dim User As IADs Dim wStars As String Dim wStringX As String If Layer > LayerMax Then Exit Function wStars = MakeStars(Layer) On Error GoTo ErrTrap Set User = GetObject(LDAP) wStringX = User.memberOf If Len(wStringX) = 0 Then Exit Function Debug.Print wStars & " " & wStringX If Not StartsWith(wStringX, LdapTop) Then wStringX = LdapTop & wStringX End If Call memberOfSearch(wStringX, Layer + 1) ErrTrap: Debug.Print Err.Description End Function Private Function MakeStars(ByVal Length As Integer) As String Dim i As Integer Dim wStringX As String For i = 1 To Length wStringX = wStringX & Star Next MakeStars = wStringX End Function Private Function StartsWith(ByVal StringX As String, ByVal SeekString As String) As Boolean Dim wAns As Integer wAns = StrComp(Mid(StringX, 1, Len(SeekString)), SeekString) If wAns = 0 Then StartsWith = True Else StartsWith = False End If End Function
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.