2

ユーザーが所有するADグループを選択し、事前定義されたリストからそのグループにユーザーを追加できるVBアプリケーション(.NET 4.0)があります。グループとADからプルされ、ユーザーはOracleからプルされますが、すべて既存のADユーザーです。

コメント付きのコードブロックが3つ表示されます。3つすべてを試したところ、それぞれに「COMExceptionはユーザーコードによって処理されませんでした:指定されていないエラー」が表示されます。

<WebMethod()> _
Public Shared Function AddDirectReport(ByVal User As String, ByVal Group As String) As String
    Dim GroupMembers As List(Of String) = LoadGroupMembers(Group)
    If GroupMembers.Contains(User) Then
        Return "USER " & User & " IS ALREADY IN GROUP " & Group
    End If

    Dim SearchRoot As New DirectoryEntry("[LDAP Path]")

    Dim GroupSearcher As New DirectorySearcher
    With GroupSearcher
        .SearchRoot = SearchRoot
        .Filter = "(&(ObjectClass=Group)(CN=" & Group & "))"
    End With

    Dim UserSearcher As New DirectorySearcher
    With UserSearcher
        .SearchRoot = SearchRoot
        .Filter = "(&(ObjectClass=Person)(CN=" & User & "))"
    End With

    Dim g As DirectoryEntry = GroupSearcher.FindOne.GetDirectoryEntry
    Dim u As DirectoryEntry = UserSearcher.FindOne.GetDirectoryEntry

    'With u
    '    .Properties("memberof").Add(g)
    '    .CommitChanges()
    'End With

    'With g
    '    .Properties("member").Add(u)
    '    .CommitChanges()
    'End With

    'With g
    '    .Properties("members").Add(u)
    '    .CommitChanges()
    'End With
    Return "Success?"
End Function
4

1 に答える 1

2

これは素晴らしいリソースです。

その中で、あなたはあなたの2番目がほとんどそこにあったことがわかります。DirectoryEntryをaddメソッドに渡す代わりに、その識別名が必要です。

With g
    .Properties("member").Add(u.Properties("distinguishedName").Value)
    .CommitChanges()
End With
于 2012-12-24T17:56:42.097 に答える