ユーザーID「domain \ usarname」が与えられているユーザーのフルネームを取得しようとしています。いくつかの異なる例を試してみましたが、うまくいかないようです。 私はVisual Basic .NETを使用しています。VB.NET:ADからフルネームを取得
私はもともとVBSで次のコードを見つけ、VBAに移植してうまくいきました。 VB.NET 2010で同じコードを使用しようとすると、複数のエラーが発生し、手動で入力してもLDAPパスが見つかりません。あなたは、タスクのこの種を行うためにSystem.DirectoryServices名前空間を使用することができます
Function FindUser()
On Error GoTo Err
Dim objRoot As Variant
Dim LDAPdomainName As String
Dim UserName As String
Dim UserDomain As String
Dim cn As Variant
Dim cmd As Variant
Dim rs As Variant
UserName = VBA.Environ("UserName") ' Gets Current User
UserDomain = VBA.Environ("UserDomain") 'Gets Current User's Domain
Set objRoot = GetObject("LDAP://RootDSE")
Domain= objRoot.Get("defaultNamingContext")
Set cn = CreateObject("ADODB.Connection")
Set cmd = CreateObject("ADODB.Command")
Set rs = CreateObject("ADODB.Recordset")
cn.Open "Provider=ADsDSOObject;"
cmd.activeconnection = cn
'cmd.commandtext = "SELECT ADsPath FROM 'LDAP://" & Domain & "' WHERE sAMAccountName = '" & UserName & "'"
'To see all attributes names available, connect with Active Directory Explorer and add to Select.
cmd.commandtext = "SELECT cn, mail FROM 'LDAP://" & Domain & "' WHERE sAMAccountName = '" & UserName & "'"
Set rs = cmd.Execute
Do Until rs.EOF
Debug.Print rs("cn") & " E-mail: " & rs("mail")
rs.MoveNext
Loop
Exit_Err:
If Not rs Is Nothing Then rs.Close
If Not cn Is Nothing Then cn.Close
Set rs = Nothing
Set cmd = Nothing
Set cn = Nothing
Exit Function
Err:
If Err <> 0 Then
MsgBox "Error connecting to Active Directory Database: " & Err.Description
Else
If Not rs.BOF And Not rs.EOF Then
rs.MoveFirst
MsgBox rs(0)
Else
MsgBox "Not Found"
End If
End If
Resume Exit_Err
End Function
これまでに何を試しましたか?これまでにテストしたコードをいくつか追加する必要があります。既に検討していることは提案しません。 – Matthieu
さて、彼が試したことは働いていないので、うまくいくものは有効な提案です。 – Yatrix