Hallo ..., hier die versprochene loesung(en). Da die dateianhaenge nicht ueber die liste gehen, stelle ich sie naechstens auf meine seiten im netz. cut --------------------------------------------------------- cut "Automatische" Konfiguration von Thunderbird mit einigen gewünschten Seiteneffekten (Die unerwünschten Seiteneffekte bitte melden mailto:lehrer@platzer-net.de .-) ) Meine Voraussetzungen im Schulungsnetz: ------------------------------------------------------------------- (Bei dieser Konfiguration hat es funktioniert, ich übernehme keine Garantie für die Funktion bei anderen Konfigurationen.) - Der Server ist ein SLSS 1.0 - Es gibt keine Windows 98 Rechner im Netz, nur Windows => 2000 - Windows und die lokalen Nutzerdaten sind auf C:. - Die Programme von Thunderbird und Firefox liegen neben einigen anderen Programmen auf einer Freigabe des Servers. - Jeder Nutzer hat einen Account mit dem persönlichen Verzeichnis (Samba) auf dem Laufwerk U: - Die Nutzer-Basisverzeichnisse wurden im "skel"-Verzeichnis konfiguriert. Notwendigkeiten: ----------------------------------------------------------------------------------------------------- a) Auf dem Server gespeicherte Programme sollen einfach vom Windows-Desktop oder über das Startmenü zu starten sein. b) Thunderbird und Firefox sollen ihre Profiledaten in dem Laufwerk U: ablegen. c) Persönliche Einstellungen von Thunderbird sollen automatisch bei jedem Einloggen erzeugt werden (Veränderungen werden überschrieben). Lösungen: -------------------------------------------------------------------------------------------------------------- a) Um das Problem mit dem Start von "nicht installierten" Windows-Programmen zu lösen, schreibe ich die notwendigen Verknüpfungen bei jedem Einloggvorgang des Nutzers in sein jeweiliges lokales Profilverzeichnis. Dazu wird ein vorgefertigtes und mit Daten gefülltes Verzeichnis per "xcopy" kopiert. Die Quelldateien habe ich in "/var/lib/samba/netlogon/umgebung/all users" abgelegt. In dem Quellverzeichnis stehen die notwendigen Daten und können gegebenenfalls aktualisiert werden. Verzeichnisse: +--Anwendungsdaten + +-Mozilla ! ! +Firefox ; hier liegt die profiles.ini fuer Firefox ! +Thunderbird ; hier liegt die profiles.ini fuer Thunderbird +--Desktop ; Starticons fuer servergespeicherte Programme +--Startmenü ; Starticons fuer servergespeicherte Programme +-Programme ; Starticons fuer servergespeicherte Programme Der XCopy Befehl wird bei jedem Einloggen des Nutzers aus der "logon.bat" heraus mit den entsprechenden Parametern aufgerufen. So bin ich sicher, dass die Oberfläche stimmt. --------logon.bat------------------- @xcopy "\\sokrates\netlogon\umgebung\All Users\*.*" "C:\Dokumente und Einstellungen\%username%\*.*" /S/Y/H/R/Q --------logon.bat------------------- b) Die Dateien "profiles.ini" verweisen auf die Pfade für die Profile von Firefox bzw. Thunderbird auf Laufwerk U:. Die Programme Firefox bzw. Thunderbird werten diese Dateien bei ihrem Start aus. c)Um beim Anmelden des jeweiligen Nutzers ein Ereignis zu erzeugen, habe ich in der "smb.conf" das "preexec" und "postexec" Kommando in [homes] eingefügt. ----smb.conf----------------------------------- root preexec = /var/lib/samba/script/userlogon %u %g %H %m %M %T root postexec = /var/lib/samba/script/userlogout %u %g %H %m %M %T ----smb.conf----------------------------------- Die Kommandos rufen die von mir neu angelegten Dateien "/var/lib/samba/script/userlogon" und "/var/lib/samba/script/userlogout" auf ("/var/lib/samba/script/" fand ich gut wg. der Nähe zu /var/lib/samba/logon :-)) In der "/var/lib/samba/script/ userlogon " werden die Aufrufparameter ausgewertet und in Dateien geschrieben. ---- userlogon ---------------------------------- # die aufrufparameter in lesbare form bringen nutzer=$1 gruppe=$2 home=$3 maschine=$4 maschinendomain=$5 datum=$6 zeit=$7 # wg.: meiner paranoia: aufschreiben, wer sich angemeldet hat ....., # wg des datenschutzes: alle nutzer unterschreiben eine nutzerordnung # die private nutzung ist nicht erlaubt. echo "con # $nutzer # $gruppe # $datum # $zeit # $home # $maschine # $maschinendomain" >>/var/log/samba/$maschine.con.log # in der datei "userlogout" steht analog: echo "dis # $nutzer # $gruppe # $datum..... # fuer die notwendigen persoenlichen daten: # in ldap nach dem nutzer suchen, die "set" batchbefehle erzeugen und # die zeilen in die "mkset.bat" datei in home schreiben. /usr/bin/ldapsearch -LLL -x -b "uid=$nutzer, dc=sts, dc=da; dc=schule, dc=hessen, dc=de" sn cn mail description |sed "s/dn: /set dn=/g; s/sn: /set sn=/g; s/cn: /set cn=/g; s/mail: /set mail=/g; s/description: /set description=/g" > $home/mkset.bat # den rest der daten auch noch, wenn die daten schon da sind, # kann man sie auch windows geben :-) echo "set nutzer=$nutzer" >> $home/mkset.bat echo "set logondatum=$datum" >> $home/mkset.bat echo "set logonzeit=$zeit" >> $home/mkset.bat echo "set gruppe=$gruppe" >> $home/mkset.bat echo "set maschine=$maschine" >> $home/mkset.bat ---- userlogon ---------------------------------- Da jetzt alle notwendigen Daten auf dem jeweiligen Windowsrechner sind, kann der Rest der Arbeit auch der Windowsrechner machen J). In der "logon.bat" wird die automatisch erzeugte Datei "mkset.bat" aufgerufen um die Umgebungsvariablen zu setzen. Nach dem Aufruf wird die Datei "mkset.bat" nicht mehr gebraucht und gelöscht. --------logon.bat------------------- call U:\mkset.bat del /F mkset.bat --------logon.bat------------------- Da jetzt die Umgebung steht, kann per "echo" Befehl die "user.js" mit den Nutzerdaten geschrieben werden. Dazu wird die Datei "mkuserprefsjs.bat" in U: kopiert, ausgeführt und lokal geloescht. --------logon.bat------------------- copy /Y "\\sokrates\netlogon\mkuserprefsjs.bat" u:\mkuserprefsjs.bat call u:\mkuserprefsjs.bat del /F u:\mkuserprefsjs.bat --------logon.bat------------------- (Als Vorlage zur "user.js" habe ich einen neuen POP-Mailaccount mit Thunderbird angelegt. Den so erzeugten Datensatz aus der "profs.js" habe ich mit den entsprechenden Variablennamen versehen und zu einer Batch-Datei umgeschrieben. -----user.js--------------------------------------------------------------------------------- @echo off rem lokale umgebungsvariablen setzen set mailserver=192.168.000.003 set expfile=u:\thunderbird\user.js set organisation= studienseminar darmstadt hessen rem rem user.js mit den umgebungsvariablen aus mkset.bat erzeugen echo # Mozilla User Preferences >%expfile% echo /* Do not edit this file. >>%expfile% echo * >>%expfile% echo * If you make changes to this file while the browser is running, >>%expfile% echo * the changes will be overwritten when the browser exits. >>%expfile% echo * >>%expfile% echo * To make a manual change to preferences, you can visit the URL about:config >>%expfile% echo * For more information, see http://www.mozilla.org/unix/customizing.html#prefs >>%expfile% echo */ >>%expfile% echo user_pref("app.update.autoUpdateEnabled", false); >>%expfile% >>%expfile% echo user_pref("extensions.update.autoUpdateEnabled", false); >>%expfile% echo user_pref("mail.account.account1.server", "server1"); >>%expfile% echo user_pref("mail.account.account2.identities", "id1"); >>%expfile% echo user_pref("mail.account.account2.server", "server2"); >>%expfile% echo user_pref("mail.accountmanager.accounts", "account1,account2");
%expfile% echo user_pref("mail.accountmanager.defaultaccount", "account2"); >>%expfile% echo user_pref("mail.accountmanager.localfoldersserver", "server1"); %expfile% echo user_pref("mail.identity.id1.compose_html", false); >>%expfile% echo user_pref("mail.identity.id1.directoryServer", ""); >>%expfile% echo user_pref("mail.identity.id1.bcc_self", true); >>%expfile% echo user_pref("mail.identity.id1.doBcc", true); >>%expfile% echo user_pref("mail.identity.id1.doBccList", "%mail%"); >>%expfile% echo user_pref("mail.identity.id1.draft_folder", "mailbox://%mail%/Drafts"); %expfile% echo user_pref("mail.identity.id1.drafts_folder_picker_mode", "0"); %expfile% echo user_pref("mail.identity.id1.encryption_cert_name", ""); >>%expfile% echo user_pref("mail.identity.id1.encryptionpolicy", 0); >>%expfile% echo user_pref("mail.identity.id1.escapedVCard", ""); >>%expfile% echo user_pref("mail.identity.id1.fcc", false); >>%expfile% echo user_pref("mail.identity.id1.fcc_folder", "mailbox://%mail%/Sent"); %expfile% echo user_pref("mail.identity.id1.fcc_folder_picker_mode", "0"); >>%expfile% echo user_pref("mail.identity.id1.fullName", "%cn%"); >>%expfile% echo user_pref("mail.identity.id1.organization", "%organisation%"); >>%expfile% echo user_pref("mail.identity.id1.overrideGlobal_Pref", false); >>%expfile% echo user_pref("mail.identity.id1.reply_to", ""); >>%expfile% echo user_pref("mail.identity.id1.sign_mail", false); >>%expfile% echo user_pref("mail.identity.id1.signing_cert_name", ""); >>%expfile% echo user_pref("mail.identity.id1.smtpServer", "smtp1"); >>%expfile% echo user_pref("mail.identity.id1.stationery_folder", "mailbox://%mail%/Templates"); >>%expfile% echo user_pref("mail.identity.id1.tmpl_folder_picker_mode", "0"); >>%expfile% echo user_pref("mail.identity.id1.useremail", "%mail%"); >>%expfile% echo user_pref("mail.identity.id1.valid", true); >>%expfile% echo user_pref("mail.prompt_purge_threshhold", true); >>%expfile% echo user_pref("mail.root.none", "u:\\thunderbird\\Mail"); >>%expfile% echo user_pref("mail.root.none-rel", "[ProfD]Mail"); >>%expfile% echo user_pref("mail.root.pop3", "u:\\thunderbird\\Mail"); >>%expfile% echo user_pref("mail.root.pop3-rel", "[ProfD]Mail"); >>%expfile% echo user_pref("mail.server.server1.directory", "u:\\thunderbird\\Mail\\Local Folders"); >>%expfile% echo user_pref("mail.server.server1.directory-rel", "[ProfD]Mail/Local Folders"); >>%expfile% echo user_pref("mail.server.server1.hostname", "Local Folders"); >>%expfile% echo user_pref("mail.server.server1.name", "Lokale Ordner"); >>%expfile% echo user_pref("mail.server.server1.type", "none"); >>%expfile% echo user_pref("mail.server.server1.userName", "nobody"); >>%expfile% echo user_pref("mail.server.server2.ageLimit", 30); >>%expfile% echo user_pref("mail.server.server2.check_time", 5); >>%expfile% echo user_pref("mail.server.server2.daysToKeepBodies", 30); >>%expfile% echo user_pref("mail.server.server2.daysToKeepHdrs", 30); >>%expfile% echo user_pref("mail.server.server2.directory", "u:\\thunderbird\\Mail\\mailserver"); >>%expfile% echo user_pref("mail.server.server2.directory-rel", "[ProfD]Mail/mailserver"); >>%expfile% echo user_pref("mail.server.server2.download_on_biff", true); >>%expfile% echo user_pref("mail.server.server2.hostname", "%mailserver%"); >>%expfile% echo user_pref("mail.server.server2.login_at_startup", true); >>%expfile% echo user_pref("mail.server.server2.name", "%mail%"); >>%expfile% echo user_pref("mail.server.server2.numHdrsToKeep", 30); >>%expfile% echo user_pref("mail.server.server2.type", "pop3"); >>%expfile% echo user_pref("mail.server.server2.userName", "%uid%"); >>%expfile% echo user_pref("mail.smtp.defaultserver", "smtp1"); >>%expfile% echo user_pref("mail.smtpserver.smtp1.auth_method", 1); >>%expfile% echo user_pref("mail.smtpserver.smtp1.hostname", "%mailserver%"); >>%expfile% echo user_pref("mail.smtpserver.smtp1.port", 25); >>%expfile% echo user_pref("mail.smtpserver.smtp1.try_ssl", 0); >>%expfile% echo user_pref("mail.smtpserver.smtp1.username", "%uid%"); >>%expfile% echo user_pref("mail.smtpservers", "smtp1"); >>%expfile% echo user_pref("mail.startup.enabledMailCheckOnce", true); >>%expfile% echo user_pref("mailnews.quotingPrefs.version", 1); >>%expfile% echo user_pref("mailnews.ui.threadpane.version", 5); >>%expfile%
-----user.js--------------------------------------------------------------------------------- Erfahrungen bitte zurueck mailen. Danke cut --------------------------------------------------------- cut -- Mit freundlichen Gruessen :-) Willi Platzer ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Wenn der Wind der Veränderung weht, bauen die einen Mauern und die anderen Windmühlen. (Sprichwort) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @echo off rem konstanten setzen set mailserver=192.168.000.003 set expfile=u:\thunderbird\user.js set organisation= studienseminar darmstadt hessen rem rem user.js mit den umgebungsvariablen aus mkset.bat erzeugen echo # Mozilla User Preferences >%expfile% echo /* Do not edit this file. >>%expfile% echo * >>%expfile% echo * If you make changes to this file while the browser is running, >>%expfile% echo * the changes will be overwritten when the browser exits. >>%expfile% echo * >>%expfile% echo * To make a manual change to preferences, you can visit the URL about:config >>%expfile% echo * For more information, see http://www.mozilla.org/unix/customizing.html#prefs >>%expfile% echo */ >>%expfile% echo user_pref("app.update.autoUpdateEnabled", false); >>%expfile% >>%expfile% echo user_pref("extensions.update.autoUpdateEnabled", false); >>%expfile% echo user_pref("mail.account.account1.server", "server1"); >>%expfile% echo user_pref("mail.account.account2.identities", "id1"); >>%expfile% echo user_pref("mail.account.account2.server", "server2"); >>%expfile% echo user_pref("mail.accountmanager.accounts", "account1,account2"); >>%expfile% echo user_pref("mail.accountmanager.defaultaccount", "account2"); >>%expfile% echo user_pref("mail.accountmanager.localfoldersserver", "server1"); >>%expfile% echo user_pref("mail.identity.id1.compose_html", false); >>%expfile% echo user_pref("mail.identity.id1.directoryServer", ""); >>%expfile% echo user_pref("mail.identity.id1.doBcc", true); >>%expfile% echo user_pref("mail.identity.id1.doBccList", "%mail%"); >>%expfile% echo user_pref("mail.identity.id1.draft_folder", "mailbox://%mail%/Drafts"); >>%expfile% echo user_pref("mail.identity.id1.drafts_folder_picker_mode", "0"); >>%expfile% echo user_pref("mail.identity.id1.encryption_cert_name", ""); >>%expfile% echo user_pref("mail.identity.id1.encryptionpolicy", 0); >>%expfile% echo user_pref("mail.identity.id1.escapedVCard", ""); >>%expfile% echo user_pref("mail.identity.id1.fcc", false); >>%expfile% echo user_pref("mail.identity.id1.fcc_folder", "mailbox://%mail%/Sent"); >>%expfile% echo user_pref("mail.identity.id1.fcc_folder_picker_mode", "0"); >>%expfile% echo user_pref("mail.identity.id1.fullName", "%cn%"); >>%expfile% echo user_pref("mail.identity.id1.organization", "%organisation%"); >>%expfile% echo user_pref("mail.identity.id1.overrideGlobal_Pref", false); >>%expfile% echo user_pref("mail.identity.id1.reply_to", ""); >>%expfile% echo user_pref("mail.identity.id1.sign_mail", false); >>%expfile% echo user_pref("mail.identity.id1.signing_cert_name", ""); >>%expfile% echo user_pref("mail.identity.id1.smtpServer", "smtp1"); >>%expfile% echo user_pref("mail.identity.id1.stationery_folder", "mailbox://%mail%/Templates"); >>%expfile% echo user_pref("mail.identity.id1.tmpl_folder_picker_mode", "0"); >>%expfile% echo user_pref("mail.identity.id1.useremail", "%mail%"); >>%expfile% echo user_pref("mail.identity.id1.valid", true); >>%expfile% echo user_pref("mail.prompt_purge_threshhold", true); >>%expfile% echo user_pref("mail.root.none", "u:\\thunderbird\\Mail"); >>%expfile% echo user_pref("mail.root.none-rel", "[ProfD]Mail"); >>%expfile% echo user_pref("mail.root.pop3", "u:\\thunderbird\\Mail"); >>%expfile% echo user_pref("mail.root.pop3-rel", "[ProfD]Mail"); >>%expfile% echo user_pref("mail.server.server1.directory", "u:\\thunderbird\\Mail\\Local Folders"); >>%expfile% echo user_pref("mail.server.server1.directory-rel", "[ProfD]Mail/Local Folders"); >>%expfile% echo user_pref("mail.server.server1.hostname", "Local Folders"); >>%expfile% echo user_pref("mail.server.server1.name", "Lokale Ordner"); >>%expfile% echo user_pref("mail.server.server1.type", "none"); >>%expfile% echo user_pref("mail.server.server1.userName", "nobody"); >>%expfile% echo user_pref("mail.server.server2.ageLimit", 30); >>%expfile% echo user_pref("mail.server.server2.check_time", 5); >>%expfile% echo user_pref("mail.server.server2.daysToKeepBodies", 30); >>%expfile% echo user_pref("mail.server.server2.daysToKeepHdrs", 30); >>%expfile% echo user_pref("mail.server.server2.directory", "u:\\thunderbird\\Mail\\mailserver"); >>%expfile% echo user_pref("mail.server.server2.directory-rel", "[ProfD]Mail/mailserver"); >>%expfile% echo user_pref("mail.server.server2.download_on_biff", true); >>%expfile% echo user_pref("mail.server.server2.hostname", "%mailserver%"); >>%expfile% echo user_pref("mail.server.server2.login_at_startup", true); >>%expfile% echo user_pref("mail.server.server2.name", "%mail%"); >>%expfile% echo user_pref("mail.server.server2.numHdrsToKeep", 30); >>%expfile% echo user_pref("mail.server.server2.type", "pop3"); >>%expfile% echo user_pref("mail.server.server2.userName", "%uid%"); >>%expfile% echo user_pref("mail.smtp.defaultserver", "smtp1"); >>%expfile% echo user_pref("mail.smtpserver.smtp1.auth_method", 1); >>%expfile% echo user_pref("mail.smtpserver.smtp1.hostname", "%mailserver%"); >>%expfile% echo user_pref("mail.smtpserver.smtp1.port", 25); >>%expfile% echo user_pref("mail.smtpserver.smtp1.try_ssl", 0); >>%expfile% echo user_pref("mail.smtpserver.smtp1.username", "%uid%"); >>%expfile% echo user_pref("mail.smtpservers", "smtp1"); >>%expfile% echo user_pref("mail.startup.enabledMailCheckOnce", true); >>%expfile% echo user_pref("mailnews.quotingPrefs.version", 1); >>%expfile% echo user_pref("mailnews.ui.threadpane.version", 5); >>%expfile% @echo off rem ........ rem temp wo sie hin soll und nicht persoenlich! set temp=C:\temp set tmp=C:\temp rem ab jetzt wird es persoenlich rem grundeinstellung fuer den nutzer @xcopy "\\sokrates\netlogon\umgebung\All Users\*.*" "C:\Dokumente und Einstellungen\%username%\*.*" /S/Y/H/R/Q rem persoenliche umgebung setzen und batch loeschen. call U:\mkset.bat del /F mkset.bat rem batch fuer die erzeugung der user.js kopieren ausfuehren und loeschen. copy /Y "\\sokrates\netlogon\mkuserprefsjs.bat" u:\mkuserprefsjs.bat call u:\mkuserprefsjs.bat del /F u:\mkuserprefsjs.bat rem ein schoenes tool fuer die hintergrund information rem siehe http://www.msexchangefaq.de/tools/bginfo.htm start p:\bgtool\Bginfo.exe P:\bgtool\normal.bgi /Timer:00 rem ende #! /bin/sh # Copyright (c) # # Author: Willi platzer # V4 1.2.2005 #aufrufparameter in lesbarer form nutzer=$1 gruppe=$2 home=$3 maschine=$4 maschinnedomain=$5 datum=$6 zeit=$7 # wg.: meiner paranoia: aufschreiben wer sich angemeldet hat ....., # wg.: dem datenschutz: alle nutzer unterschreiben eine nutzerordnung # die private nutzung nicht erlaubt. echo "con # $nutzer # $gruppe # $datum # $zeit # $home # $maschine # $maschinendomain" >>/var/log/samba/$maschine.con.log # in ldap nach dem nutzersuchen, batchbefehle erzeugen und die daten in die mkset.bat datei in home schreiben. /usr/bin/ldapsearch -LLL -x -b "uid=$nutzer, dc=sts, dc=da; dc=schule, dc=hessen, dc=de" sn cn mail description |sed "s/dn: /set dn=/g; s/sn: /set sn=/g; s/cn: /set cn=/g; s/mail: /set mail=/g; s/description: /set description=/g" > $home/mkset.bat # wenn die daten schon da sind, kann man sie auch windows geben :-) darum: echo "set nutzer=$nutzer" >> $home/mkset.bat echo "set logondatum=$datum" >> $home/mkset.bat echo "set logonzeit=$zeit" >> $home/mkset.bat echo "set gruppe=$gruppe" >> $home/mkset.bat echo "set maschine=$maschine" >> $home/mkset.bat #exit 0