cyberops
Goto Top

Userinformationen auslesen

Userdaten anhand des Usernames aus der AD auslesen.

Hallo zusammen.

Ich habe folgendes Problem:
Ich brauche den Anzeigenamen (displayName) des Users, der auf der Maschine angemeldet ist.

Die einzigste Informationen die ich habe, ist der Username und die Domäne, die in den Umgebungsvariablen hinterlegt sind.

Ich hoffe mir kann da jemand weiterhelfen.

Ich habe es so probiert,
ohne erfolg

Public Sub User_Info()
    
    On Error Resume Next
    
    strUser = Environ$("USERNAME")  

    'ConnectionString  
    Set objConnection = CreateObject("ADODB.Connection")  
    Set objCommand = CreateObject("ADODB.Command")  
    objConnection.Provider = "ADsDSOObject"  
    objConnection.Open "Active Directory Provider"  
    Set objCommand.ActiveConnection = objConnection

    objCommand.Properties("Page Size") = 1000  
    objCommand.Properties("Searchscope") = ADS_SCOPE_SUBTREE  
    
    'User- Daten importieren  
    objCommand.CommandText = _
        "SELECT displayName FROM 'LDAP://dc=firma,dc=com' WHERE SamAccountName = " & strUser  
    Set objRecordSet = objCommand.Execute
    
    strDN = objRecordSet.displayName
    MsgBox strDN

End Sub

Merci schonmal für eure Hilfe

Content-Key: 82708

Url: https://administrator.de/contentid/82708

Printed on: April 26, 2024 at 11:04 o'clock

Member: Logan000
Logan000 Mar 10, 2008 at 12:48:46 (UTC)
Goto Top
Worunter läuft diese procedur? VBA, VBS?
Environ$ funktioniert soweit ich weiss unter vbs nicht.

Hier mal als vbs skript:
Domain= "MyDomain"  
DomSuffix= "de"  

Set WshNetwork = Wscript.CreateObject("Wscript.Network")  
strUserName = LCase(WshNetwork.Username)


Set objConnection = CreateObject("ADODB.Connection")  
objConnection.Open "Provider=ADsDSOObject;"  
 
Set objCommand = CreateObject("ADODB.Command")  
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
    "<LDAP://dc=" & Domain & ",dc=" & DomSuffix & ">;(&(objectCategory=User)" & _  
         "(samAccountName=" & strUserName & "));samAccountName,displayname,sn;subtree"  
  
Set objRecordSet = objCommand.Execute
If objRecordset.RecordCount = 0 Then
    WScript.Echo "sAMAccountName: " & strUserName & " does not exist."  
Else
	strDisplayname = objRecordset.fields(1).value
End If
objConnection.Close

WScript.Echo  strDisplayname
Member: Cyberops
Cyberops Mar 10, 2008 at 13:02:19 (UTC)
Goto Top
Merci Logan000

Das war genau das was ich gesucht habe.
Musste es halt für VBA noch ein wenig anpassen,
funktioniert aber einwandfrei

Domain= "MyDomain"  
DomSuffix= "de"  

strUserName = Environ$("USERNAME")  

Set objConnection = CreateObject("ADODB.Connection")  
objConnection.Open "Provider=ADsDSOObject;"  
 
Set objCommand = CreateObject("ADODB.Command")  
objCommand.ActiveConnection = objConnection
objCommand.CommandText = _
    "<LDAP://dc=" & Domain & ",dc=" & DomSuffix & ">;(&(objectCategory=User)" & _  
         "(samAccountName=" & strUserName & "));samAccountName,displayname,sn;subtree"  
  
Set objRecordSet = objCommand.Execute
If objRecordset.RecordCount = 0 Then
    MsgBox "sAMAccountName: " & strUserName & " does not exist."  
Else
	strDisplayname = objRecordset.fields(1).value
End If
objConnection.Close

MsgBox  strDisplayname

Danke nochmals für die rasche Hilfe.

Gruss,
Cyberops