raivan
Goto Top

VBscript Vor- und Nachname auslesen

Hallo,

ich hab folgendes Problem, ich bin nicht so der VBscript Guru und möchte von einem AD Benutzer folgende Daten auslesen:

Vor- und Nachname
E-Mail
User

E-Mail und User hab ich bereits aber Vor- und Nachname noch nicht! Kann mir da jemand helfen? Weiters sollten die Variablen die jetzt in einer MsgBox ausgegeben werden in ein TXT File geschrieben werden!?

raivan

Dim objNetwork
Set objNetwork = CreateObject("WScript.Network")  
strUser = objNetwork.UserName
strDomain = objNetwork.UserDomain
MsgBox strUser
MsgBox strDomain

mailAdr = GetEmail(strUser, strDomain)
'wscript.echo mailAdr'  
MsgBox mailAdr


Function GetEmail(strAccountName, strDomainName)
  Dim adoLDAPCon, _
      adoLDAPRS, _
      strLDAP

 Set adoLDAPCon = CreateObject("ADODB.Connection")  
 adoLDAPCon.Provider = "ADsDSOObject"  
 adoLDAPCon.Open "ADSI"  
 strLDAP = "'LDAP://" & strDomainName & "'"  
 Set adoLDAPRS = adoLDAPCon.Execute("select mail from " _  
  & strLDAP & " WHERE objectClass = 'user'"& _  
  " And samAccountName = '" & strAccountName & "'")  
  With adoLDAPRS
     If Not .EOF Then
         GetEmail = .Fields("mail")  
     Else
         GetEmail = ""  
     End If
 End With
 adoLDAPRS.Close
 Set adoLDAPRS = Nothing
 Set adoLDAPCon = Nothing
End Function

Content-Key: 98298

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

Printed on: April 23, 2024 at 17:04 o'clock

Member: Logan000
Logan000 Oct 02, 2008 at 06:55:59 (UTC)
Goto Top
Moin Moin

Vor- und Nachname bekommst du wenn du dein SQL Statement wie folgt erweiterst:
...
  Set adoLDAPRS = adoLDAPCon.Execute("select sn,givenname,mail from " _   
  & strLDAP & " WHERE objectClass = 'user'" & _  
  " And samAccountName = '" & strAccountName & "'")   
...
  If Not .EOF Then 
      GetEmail = .Fields("mail")   
      GetVorname = .Fields("givenname")  
      GetNachname = .Fields("sn")  
...

Eine Textdatei schreiben kann so aussehen:
Dim fso
Const ForReading = 1 
Const ForWriting = 2 
 Set fso = CreateObject("Scripting.FileSystemObject")   
 Set File = fso.OpenTextFile("C:\Ergebnis.txt", ForWriting, True)   
 File.Write "Dieseer Text kommt in die Textdatei"  
 File.Close

Gruß L.
Member: raivan
raivan Oct 02, 2008 at 07:10:30 (UTC)
Goto Top
Hi,

danke für die schnelle Antwort hab den Code von dir eingebaut, aber wie bekomm ich die Werte nun raus, zb per MsgBox!?

raivan

Dim objNetwork
Set objNetwork = CreateObject("WScript.Network")  
strUser = objNetwork.UserName
strDomain = objNetwork.UserDomain
MsgBox strUser
MsgBox strDomain


mailAdr = GetEmail(strUser, strDomain)
'wscript.echo mailAdr'  
MsgBox mailAdr


Function GetEmail(strAccountName, strDomainName)
  Dim adoLDAPCon, _
      adoLDAPRS, _
      strLDAP

 Set adoLDAPCon = CreateObject("ADODB.Connection")  
 adoLDAPCon.Provider = "ADsDSOObject"  
 adoLDAPCon.Open "ADSI"  
 strLDAP = "'LDAP://" & strDomainName & "'"  

 Set adoLDAPRS = adoLDAPCon.Execute("select sn,givenname,mail from " _    
 & strLDAP & " WHERE objectClass = 'user'" & _   
 " And samAccountName = '" & strAccountName & "'")    

  With adoLDAPRS
     If Not .EOF Then
         GetEmail = .Fields("mail")  
         GetVorname = .Fields("givenname")  
         GetNachname = .Fields("sn")  
     Else
         GetEmail = ""  
     End If
 End With
 adoLDAPRS.Close
 Set adoLDAPRS = Nothing
 Set adoLDAPCon = Nothing
End Function
Member: Logan000
Logan000 Oct 02, 2008 at 07:52:42 (UTC)
Goto Top
Moin

aber wie bekomm ich die Werte nun raus, zb per MsgBox!?
Du hast Doch schon in deinen Code MSGBOX und String verkettung eingesetzt.

z.B.:
     If Not .EOF Then
         GetEmail = .Fields("mail")  
         GetVorname = .Fields("givenname")  
         GetNachname = .Fields("sn")  
         MSGBOX "Der Benutzer " & GetNachname & ", " & GetVorname _  
          & " hat folgende eMail: " & GetEmail  
     Else
...

Gruß L.