torben.dj
Goto Top

Emailadresse aus LDAP ermitteln

KEIN Active Directory !

Guten Tag zusammen,
bevor ich gesteinigt werde, dass es diese Frage schon mehrfach gibt, es handelt sich NICHT um ein Active Directory.
Wir arbeiten mit einem SAMBA Server und einem LDAP System, über das die Benutzer verwaltet werden.
Ich versuche momentan ein Skript für unsere Umgebung anzupassen, mit dem man das Thunderbirdprofil unter Windows automatisch einrichten kann.
Das funktioniert soweit auch schon ganz gut. Was mir allerdings noch fehlt, ist die Ermittlung der Emailadresse des aktuell angemeldeten Nutzers, die an das Skript als Variable übermittelt werden soll.
Wir haben also einen LDAP Server (ldap.domain.de) an den als Anonymous eine Anfrage gestellt werden kann (wie auch für die Adressbuchanfrage) Basis-DN: ou=firma,o=organisation,c=de
Port: 389
Jetzt will ich im Grunde dem LDAP sagen, dass er nach %username% suchen soll und mir vom Ergebnis die Mailadresse als Variable für das Thunderbirdskript übergeben soll.
Ist das überhaupt über ein Shellskript möglich, oder muss ich da zu weiteren Mitteln greifen.

Danke schonmal für eure Antworten.

Content-ID: 184400

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

Ausgedruckt am: 21.11.2024 um 19:11 Uhr

60730
60730 03.05.2012 um 10:14:28 Uhr
Goto Top
moin,

bevor ich gesteinigt werde, dass ...
Ich versuche momentan ein Skript für unsere Umgebung anzupassen
  • welches script?
Ist das überhaupt über ein Shellskript möglich, oder muss ich da zu weiteren Mitteln greifen.
ersteres Ja,zweiteres Jein


Gruß
torben.dj
torben.dj 03.05.2012 um 11:41:27 Uhr
Goto Top
@echo off

IF NOT EXIST "%ProgramFiles%\Mozilla Thunderbird\Thunderbird.exe" GOTO END  
IF EXIST "%APPDATA%\Thunderbird" GOTO MANDATORYCONFIG  

ECHO.
ECHO Setting up new Thunderbird user profile - Standby for Action!

ECHO.
echo Creating default profile....
"%programfiles%\Mozilla Thunderbird\thunderbird.exe" -createprofile default  

ECHO.
Echo Thunderbirdprofil wird automatisch fuer Sie eingerichtet...

call :GetProfileName

for /f "Tokens=2*" %%m in ('net user %USERNAME% /domain ^| find "Full Name"' ) do set FULLNAME=%%n  

SET TBPREFS=%APPDATA%\Thunderbird\Profiles\%TBPROFILE%\prefs.js

ECHO user_pref("mail.account.account1.identities", "id1"); >> "%TBPREFS%"  
ECHO user_pref("mail.account.account1.server", "server1");>> "%TBPREFS%"  
ECHO user_pref("mail.account.account2.server", "server2");>> "%TBPREFS%"  
ECHO user_pref("mail.accountmanager.accounts", "account1,account2");>> "%TBPREFS%"  
ECHO user_pref("mail.accountmanager.defaultaccount", "account1");>> "%TBPREFS%"  
ECHO user_pref("mail.accountmanager.localfoldersserver", "server2");>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.compose_html", false);>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.draft_folder", "imap://%username%@domain.de/Drafts");>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.drafts_folder_picker_mode", "0");>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.encryption_cert_name", "");>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.encryptionpolicy", 0);>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.fcc_folder", "imap://%username%@domain.de/Sent");>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.fcc_folder_picker_mode", "0");>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.fullName", "%FULLNAME%");>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.reply_on_top", 1);>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.sign_mail", false);>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.signing_cert_name", "");>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.smtpServer", "smtp1");>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.stationery_folder", "imap://%username%@domain.de/Templates");>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.useremail", "%FULLNAME%@domain.de");>> "%TBPREFS%"  
ECHO user_pref("mail.identity.id1.valid", true);>> "%TBPREFS%"  
ECHO user_pref("mail.root.imap", "%APPDATA%\\Thunderbird\\Profiles\\%TBPROFILE%\\ImapMail");>> "%TBPREFS%"  
ECHO user_pref("mail.root.none", "%APPDATA%\\Thunderbird\\Profiles\\%TBPROFILE%\\Mail");>> "%TBPREFS%"  
ECHO user_pref("mail.server.server1.capability", 25137);>> "%TBPREFS%"  
ECHO user_pref("mail.server.server1.directory", "%APPDATA%\\Thunderbird\\Profiles\\Thunderbird\\Profiles\\%TBPROFILE%\\ImapMail\\domain.de");>> "%TBPREFS%"  
ECHO user_pref("mail.server.server1.hostname", "domain.de");>> "%TBPREFS%"  
ECHO user_pref("mail.server.server1.isSecure", true);>> "%TBPREFS%"  
ECHO user_pref("mail.server.server1.login_at_startup", true);>> "%TBPREFS%"  
ECHO user_pref("mail.server.server1.name", "%FULLNAME%@domain.de");>> "%TBPREFS%"  
ECHO user_pref("mail.server.server1.port", 993);>> "%TBPREFS%"  
ECHO user_pref("mail.server.server1.type", "imap");>> "%TBPREFS%"  
ECHO user_pref("mail.server.server1.userName", "%username%");>> "%TBPREFS%"  
ECHO user_pref("mail.server.server2.directory", "%APPDATA%\\Thunderbird\\Profiles\\%TBPROFILE%\\Mail\\Local Folders");>> "%TBPREFS%"  
ECHO user_pref("mail.server.server2.hostname", "Local Folders");>> "%TBPREFS%"  
ECHO user_pref("mail.server.server2.name", "Local Folders");>> "%TBPREFS%"  
ECHO user_pref("mail.server.server2.type", "none");>> "%TBPREFS%"  
ECHO user_pref("mail.server.server2.userName", "nobody");>> "%TBPREFS%"  
ECHO user_pref("mail.smtp.defaultserver", "smtp1");>> "%TBPREFS%"  
ECHO user_pref("mail.smtpserver.smtp1.auth_method", 1);>> "%TBPREFS%"  
ECHO user_pref("mail.smtpserver.smtp1.hostname", "domain.de");>> "%TBPREFS%"  
ECHO user_pref("mail.smtpserver.smtp1.port", 25);>> "%TBPREFS%"  
ECHO user_pref("mail.smtpserver.smtp1.try_ssl", 2);>> "%TBPREFS%"  
ECHO user_pref("mail.smtpserver.smtp1.username", "%username%");>> "%TBPREFS%"  
ECHO user_pref("mail.smtpservers", "smtp1");>> "%TBPREFS%"  
ECHO user_pref("mail.startup.enabledMailCheckOnce", true);>> "%TBPREFS%"  


:MANDATORYCONFIG
call :GetProfileName

ECHO.
Echo Applying mandatory settings...

SET TBPREFS=%APPDATA%\Thunderbird\Profiles\%TBPROFILE%\user.js


ECHO user_pref("ldap_2.autoComplete.directoryServer", "ldap_2.servers.mycompany");> "%TBPREFS%"  
ECHO user_pref("ldap_2.autoComplete.useDirectory", true);>> "%TBPREFS%"  
ECHO user_pref("ldap_2.prefs_migrated", true);>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.history.filename", "history.mab");>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.history.replication.lastChangeNumber", 0);>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.mycompany.auth.savePassword", true);>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.mycompany.description", "My Company");>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.mycompany.filename", "abook-1.mab");>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.mycompany.position", 3);>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.mycompany.replication.lastChangeNumber", 0);>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.pab.filename", "abook.mab");>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.pab.replication.lastChangeNumber", 0);>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.user_directory_1.filename", "user_directory_1.mab");>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.user_directory_1.replication.lastChangeNumber", 0);>> "%TBPREFS%"  
ECHO user_pref("ldap_2.servers.user_directory_1.uri", "moz-abldapdirectory://user_directory_1.mab");>> "%TBPREFS%"  
ECHO user_pref("mail.inline_attachments", false);>> "%TBPREFS%"  
ECHO user_pref("mailnews.message_display.disable_remote_image", true); >> "%TBPREFS%"  
ECHO user_pref("network.proxy.autoconfig_url", "http://webcache/proxy.pac");>> "%TBPREFS%"  
ECHO user_pref("network.proxy.type", 2);>> "%TBPREFS%"  


:END
exit



:GetProfileName
cd %APPDATA%

dir "%APPDATA%\Thunderbird\Profiles\*.slt" /b > profname.tmp  

ECHO XPYP[*'CC-\1P\QX,=P,APZ5O!PQ2O~5aaI~}Ksx>_.COM  
_.COM SET TBPROFILE=>env-setter.BAT
TYPE profname.tmp>>env-setter.BAT
CALL env-setter.BAT
DEL env-setter.BAT
DEL _.COM
DEL profname.tmp 


Sicherlich stecken da noch einige Fehler drin, aber zumindest wird bei einem jungfräulichen Thunderbird eine Profil angelegt und auch die Serveradressen stehen schon entsprechend drin.
Was mir lediglich fehlt, ist das einfügen der richtigen Emailadresse, wobei die nicht immer "vorname.nachname@domain.de" lautet sondern bei Namensgleichheit ggf auch variieren kann.
Daher benötige ich die Abfrage aus dem LDAP.
Dani
Dani 04.05.2012 um 00:40:29 Uhr
Goto Top
Moin,
hast du versucht mit Hilfe eines LDAP-Tools das Feld zu finden?


Grüße,
Dani