ducke 11 Geschrieben 8. August 2007 Melden Teilen Geschrieben 8. August 2007 Hallo liebe Scripting Gurus, ich hab da mal ein kleines Verständnisproblem. Hab hier ein Script zum erzeugen einer EMail mit pdf Anhang über VBS. Das komplette Script gibt es hier: http://www.msxfaq.net/tools/pdf2smtp-0807.zip Beschreibung hier: MSXFAQ.DE - PDF2SMTP Script Jetzt möchte ich dieses Script für eine NT Domäne benutzen. Problem ist, dass ich den Fullname splitten muss. Username der den Druckerjob startet ist: HWurst (strSAMName) UserFullname: Wurst, Hans (user.FullName) Der benötigte Name: Hans.Wurst Diese Codesnipsel habe ich gefunden, kann sie aber leider nicht zusammenfügen :( Set objUser = GetObject("WinNT://" & strDomain & "/" & strSAMName) str = objUser.FullName arr = Split(str, ", ") Hier der Code, den ich ersetzen möchte: function SAM2Mail(strSAMName) ' Funktion: Übersetzt den übergebenen SAMAccountName per ADS-Abfrage in die SMTP-Adresse ' Eingabeparameter: strSAMName: Der NT-Anmeldename ' Rückgabewert: Die SMTP-Adresse oder ein Leerstring ' Kommentar: strField = "mail" ' Angabe des abzufragenden Feldes Dim objConn Dim objCommand dim objArgs On Error Resume Next 'Create ADO connection object for Active Directory Set objConn = CreateObject("ADODB.Connection") objConn.Provider = "ADsDSOObject" objConn.Open "Active Directory Provider" if checkit("Fehler beim ADO-Zugriff auf Active Directory!") then exit function 'Create ADO command object for the connection. Set objCommand = CreateObject("ADODB.Command") objCommand.ActiveConnection = objConn if checkit("Fehler beim Definieren des ADO-Kommandos!") then exit function 'Get the ADsPath for the domain to search. Set objRoot = GetObject("LDAP://rootDSE") strDomain = objRoot.Get("defaultNamingContext") Set objDomain = GetObject("LDAP://" & strDomain) if checkit("Fehler beim Ansprechen des Active Directory!") then exit function 'Abfrage strSQL = "SELECT " & strField & " FROM '" strSQL = strSQL & "LDAP://" & strDomain & "' WHERE sAMAccountName = '" & strSAMName & "'" 'saydebug strSQL 'Assemble the commandtext. objCommand.CommandText = strSQL if checkit("Fehler beim Übergeben des Kommandos!") then exit function 'Execute the query. Set objRS = objCommand.Execute if checkit("Fehler beim Ausführen der Suche im Active Directory!") then exit function strOutput = "" strOutput = objRS.Fields(0).value on error goto 0 SAM2Mail = strOutput end function Wer könnte mir bei diesem Problem helfen? Zitieren Link zu diesem Kommentar
ducke 11 Geschrieben 9. August 2007 Autor Melden Teilen Geschrieben 9. August 2007 Hier die Lösung für mein Problem: function SAM2MailNT(strSAMName, strNTDomain, strMailToDomain) dim objUser, arrUsers, strNTUserNachname, strNTUserVorname, stremail Set objUser = GetObject("WinNT://" & strNTDomain & "/" & strSAMName) ' --- Enthält der Anzeigenamen ein Komma, wird die Zeichenkette in Vor- und Nachname gesplittet If InStr(objUser.FullName, ", ") Then ArrUsers = Split(objUser.FullName, ", ") strNTUserNachname = Trim(ArrUsers(0)) strNTUserVorname = Trim(ArrUsers(1)) End If stremail ="" stremail = strNTUserVorname & "." & strNTUserNachname & "@" & strMailToDomain SAM2MailNT = stremail end function Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.