[GELÖST] TB-Autoconfig - Profil lädt nicht an anderem PC

  • Thunderbird-Version: 24.5.0
    Betriebssystem + Version: Windows 7 x64
    Kontenart (POP / IMAP): IMAP
    Postfachanbieter (z.B. GMX): Eigener Mailserver


    Liebe TB-Community,
    ich bin mir nicht sicher, ob ich die richtige Kategorie getroffen habe, sonst bitte Thema verschieben, Danke.


    Ich habe mich in den letzten Tagen mit der Thunderbird Autoconfig Funktion beschäftigt.
    Dabei ist es mir soweit gelungen alle möglichen Einstellungen beim ersten Thunderbirdstart korrekt zu übergeben.
    Die Funktionsweise sollte ja eigentlich jeden bekannt sein, der sich damit bereits beschäftigt hat. Einfach eine .js Datei in den "defaults/pref" Unterordner vom Installationsverzeichnis und dort die Angaben

    Code
    1. pref("general.config.obscure_value", 0);
    2. pref("general.config.filename", "TBconfig.js");


    setzen. Die TBconfig.js Datei befindet sich dann im Rootverzeichnis der Installationspfades (sprich z.B. C:\Program Files (x86)\Mozilla Thunderbird) und beinhaltet das folgende

    Code
    1. lockPref("autoadmin.global_config_url","file://///NETZWERKPFAD ZUR SETTINGSDATEI.js");
    2. lockPref("autoadmin.refresh_interval", 60);


    So ... das klappt auch alles wunderbar.
    Nur jetzt habe ich genau ein Problem - Und zwar, wenn sich ein Benutzer, dessen TB-Profil auf diese Weise eingerichtet wurde an einem Computer setzt, wo diese "Autoconfig-Funktion" noch nicht aktiv ist, sprich wenn es keine .js Datei im "default/pref" Ordner existiert. Dann kann Thunderbird ja keine globale Settingsdatei vom Netzwerkpfad laden und würde wie üblich arbeiten, sprich alle Einstellungen müssen per Hand eingestellt werden. Doch dieser Benutzer besitzt ja nun bereits einen Profilordner, somit auch ein funktionierendes Profil... Doch TB möchte dieses nicht laden, solange die .js Datei fehlt!


    Aber wieso? Wieso klappt das dann nicht? Auch wenn ein Benutzer, dessen Profil zuvor per Hand eingerichtet wurde, sich dann an einem Rechner setzt, wo diese "Autoconfig-Funktion" aktiv ist funktioniert noch alles. Doch meldet er sich wieder ab und an einem anderen wieder an, so wird danach wieder kein Profil geladen, obwohl es im Roaming Ordner vorhanden ist. Die profiles.ini sieht komplett identisch aus, auch innerhalb der Prefs.js konnte ich keine Einstellung finden, die darauf verweist, in welcher Form das Profil eingerichtet wurde.


    Wie also unterscheidet TB in welcher Form das Profil eingerichtet bzw. genutzt wird? Kann mir da irgendjemand mit weiterhelfen?


    Liebe Grüße
    Nico

    2 Mal editiert, zuletzt von s1n88 ()

  • Hallo Nico,


    ich bin keine Expertin, was MCD angeht, habe aber gerade die [url=https://developer.mozilla.org/en-US/docs/MCD,_Mission_Control_Desktop_AKA_AutoConfig]Anleitung[/url] dazu überflogen. Einige Deiner Punkte sind mir nicht ganz klar.


    Soweit ich verstanden habe, funktioniert es folgendermaßen: Wenn TB im normalen Modus zum ersten mal gestartet wird, dann überprüft er, ob bereits ein lokales Profil bzw. eine profiles.ini existiert. Falls nicht, legt er beides entsprechend im lokalen Benutzerverzeichnis an.
    Über die *.js-Datei im Installationsverzeichnis (/defaults/pref) teilst Du dem TB mit, dass dieser "normale" Modus nun nicht mehr gelten soll, sondern dass stattdessen das Config-File abgearbeitet werden soll. Damit wird aber letztendlich wieder ein lokales Profil angelegt.
    Nun hat jeder Anwender stets auch seine spezifischen Daten, wie den Usernamen oder das Homeverzeichnis. Diese benutzerspezifischen Informationen musst Du entweder per LDAP oder aus Umgebungsvariablen auslesen.
    Findet der TB beim Start kein js-Script unter /defaults/pref, startet er ganz normal und legt ggf. ein neues Profil an. Das erklärt dieses Verhalten:


    Zitat von "s1n88"

    [...] wenn sich ein Benutzer, dessen TB-Profil auf diese Weise eingerichtet wurde an einem Computer setzt, wo diese "Autoconfig-Funktion" noch nicht aktiv ist, [...] Dann kann Thunderbird ja keine globale Settingsdatei vom Netzwerkpfad laden und [...] alle Einstellungen müssen per Hand eingestellt werden.


    Du musst den MCD schon auf jedem Rechner einrichten. Insofern habe ich Dein Problem nicht wirklich verstanden.


    Doch selbst wenn der MCD nicht aktiv ist, sollte TB zumindest ein neues Profil anlegen bzw. ein bestehendes nutzen. Daher verstehe ich diese Aussage


    Zitat von "s1n88"

    Doch dieser Benutzer besitzt ja nun bereits einen Profilordner, somit auch ein funktionierendes Profil... . Doch TB möchte dieses nicht laden


    nicht ganz. Woher kommt dieses Profil? Wurde es von Hand eingerichtet? Woher weißt Du, dass es funktioniert, wenn es doch nicht geladen wird? Oder meinst Du, dass der TB ein funktionierendes lokales Profil verwendet und lediglich die von Dir gesetzten Einstellungen über den MCD ignoriert? Dazu unten ein Hinweis.


    Zitat von "s1n88"

    Doch meldet er sich wieder ab und an einem anderen wieder an, so wird danach wieder kein Profil geladen, obwohl es im Roaming Ordner vorhanden ist.


    Ist an diesem Rechner der MCD aktiv, sprich ist die *.js unter /defaults/pref vorhanden?


    Dann ist mir noch etwas zum Refresh-Intervall aufgefallen. Ich erwähne es, weil ich nicht weiß, wie der TB sich bezüglich dieses Refreshs verhält. Beginnt die Zeit bei jedem Start des TB von vorn oder speichert er die Zeit irgendwo? Mit anderen Worten, wenn bereits ein lokales Profil vorhanden ist, führt er dann gleich einen Refresh aus, oder wartet er noch bis die Zeit abgelaufen ist und verwendet in der Zwischenzeit das vorhandene Profil? In Deinem Fall könnte das heißen, dass er zunächst das vorhandene Profil nimmt und erst nach einer Stunde aktualisiert.


    Ich würde deshalb folgendes vorschlagen: Richte den MCD auf jeden Rechner ein. Sorge zuvor dafür, dass der TB beim Start kein lokales Profil vorfindet.


    Gruß


    Susanne

  • Hey Susanne,
    vielen Dank für deine Nachricht.


    Also ich habe ja nun schon diverse Internetseiten durchsucht und verschiedene Anleitungen gelesen. Aber es wird dort wohl überall von ausgegangen, dass das MCD auf jeden Rechner aktiv ist.
    Bei mir ist es aber derzeit so, dass wir das Ganze noch "testen" - Allerdings mit zwei, drei Testbenutzern. Wir können ja nicht gleich alle Rechner damit ausliefern (wären so um die 110) und dann am Ende klappt die Hälfte nicht und dann rufen alle zeitgleich an - Daher erst einmal der minimale Testbetrieb, weswegen nicht jeder Rechner das aktivierte MCD besitzt.


    So, kommen wir zu deinen Fragen:


    Zitat von "SusiTux"

    Wenn TB im normalen Modus zum ersten mal gestartet wird, dann überprüft er, ob bereits ein lokales Profil bzw. eine profiles.ini existiert. Falls nicht, legt er beides entsprechend im lokalen Benutzerverzeichnis an.
    Über die *.js-Datei im Installationsverzeichnis (/defaults/pref) teilst Du dem TB mit, dass dieser "normale" Modus nun nicht mehr gelten soll, sondern dass stattdessen das Config-File abgearbeitet werden soll. Damit wird aber letztendlich wieder ein lokales Profil angelegt.


    Das ist richtig - Startet man TB ohne MCD wird ja das lokale Profil angelegt und ich muss TB einrichten, alle Einstellungen setzen die bei uns relevant sind, die E-Mail Konten usw.
    Vorteil vom aktivierten MCD ist eben, dass ein neuer Mitarbeiter sein TB zum ersten Mal startet und ALLE diesen sonst von Hand eingerichteten Einstellungen bereits beim ersten Programmstart durch die Config-File gesetzt werden. Wie bereits erwähnt, klappt das auch soweit ;)


    Zitat von "SusiTux"

    Nun hat jeder Anwender stets auch seine spezifischen Daten, wie den Usernamen oder das Homeverzeichnis. Diese benutzerspezifischen Informationen musst Du entweder per LDAP oder aus Umgebungsvariablen auslesen.
    Findet der TB beim Start kein js-Script unter /defaults/pref, startet er ganz normal und legt ggf. ein neues Profil an. Das erklärt dieses Verhalten:


    Wie so üblich werden diese Einstellungen ja in der prefs.js Datei im Profil gespeichert.
    Stimmt, den Benutzernamen lese ich aus der Umgebungsvariable aus und suche im LDAP dann die passende E-Mail Adresse raus, wodurch TB nur noch nachdem zugehörigen E-Mail Passwort fragt.
    Wenn TB beim Start keine js-Datei findet (deaktiviertes MCD), dann öffnet er sich zwar, legt aber auch kein neues Profil an, denn es existiert ja bereits eins, aber TB verhält sich, als wenn es ein neues Profil wäre. Es sind weder E-Mail Konten zu sehen noch sind unsere Firmenrelevante Einstellungen gesetzt.
    Ein weiteres lokales Profil wird unter "Roaming\Thunderbird\Profiles\" nicht angelegt. Er öffnet einfach das schon vorhandene, nutzt aber anscheinend nicht die prefs.js, in der ja alle Einstellungen stehen, weswegen das oben beschriebene Verhalten auftritt.


    Zitat von "SusiTux"

    Woher kommt dieses Profil? Wurde es von Hand eingerichtet? Woher weißt Du, dass es funktioniert, wenn es doch nicht geladen wird? Oder meinst Du, dass der TB ein funktionierendes lokales Profil verwendet und lediglich die von Dir gesetzten Einstellungen über den MCD ignoriert?


    Ist an diesem Rechner der MCD aktiv, sprich ist die *.js unter /defaults/pref vorhanden?


    Wenn ich das Profil eines Benutzers per Hand (ohne MCD) eingerichtet habe und dieser sich von seinem Rechner abmeldet (innerhalb einer Domain), so kann er sich an jeden x-beliebigen Rechner innerhalb der Firma ja anmelden. Tut er dies nun und setzt sich an einen der drei Testrechner mit aktivierten MCD, so wird sein Profil auch geladen und er kann ganz normal weiterarbeiten. Meldet er sich nun von diesem Rechner wieder ab, so wird sein Profil ja wieder mit den Server synchronisiert. Am nächsten Arbeitstag meldet er sich wieder an einem Rechner ohne MCD an und dann taucht das Problem auf - Sein TB startet, es sind weder E-Mail Konten eingerichtet, noch unsere Firmenrelevanten Einstellungen eingerichtet. Also das oben beschriebene Verhalten taucht wieder auf.
    Er kann dann nur noch an Computern mit aktivierten MCD arbeiten. Also muss TB ja irgendwo innerhalb des Profils abspeichern, ob das Profil MCD benutzt oder nicht?! Und genau das versuche ich raus zu finden, wo TB sich das merkt, damit ich dieses Fehlverhalten evtl. durch ein Script oder eben eine TB-Einstellung deaktivieren kann.


    Klar soll am Ende jeder Rechner MCD erhalten und das Problem dürfte dann nie wieder auftauchen, nur derzeit benötige ich eine Übergangslösung.


    Zitat von "SusiTux"

    Dann ist mir noch etwas zum Refresh-Intervall aufgefallen. Ich erwähne es, weil ich nicht weiß, wie der TB sich bezüglich dieses Refreshs verhält. Beginnt die Zeit bei jedem Start des TB von vorn oder speichert er die Zeit irgendwo? Mit anderen Worten, wenn bereits ein lokales Profil vorhanden ist, führt er dann gleich einen Refresh aus, oder wartet er noch bis die Zeit abgelaufen ist und verwendet in der Zwischenzeit das vorhandene Profil? In Deinem Fall könnte das heißen, dass er zunächst das vorhandene Profil nimmt und erst nach einer Stunde aktualisiert.


    Leider habe ich zur Refreshtime auch kaum was brauchbares gefunden. Wie das Ganze funktioniert, weiß ich auch nicht genau. Aber es ist eine interessante Theorie, die du da erwähnst. Vielleicht sollte ich einfach mal testweise die Refreshtime runtersetzen und prüfen, ob sich das Profil dann zeitverzögert lädt. Wobei ich aber auch sagen muss, dass nur bei aktivierten MCD diese Refreshtime ausgelesen werden kann, es sei denn TB speichert sich diese, wie du schon sagst, irgendwo zwischen ...


    Ich finde es leider schade, dass Mozilla zu diesem Thema wenig Informationen raus gibt. Innerhalb eines Unternehmens finde ich diese Funktion sehr brauchbar und nützlich. Außerdem erleichtert es die Arbeit, da man nur noch eine Datei bearbeiten muss und bei jedem Benutzer sind diese Einstellung nach einem TB-Neustart bereits aktiv. So muss man nicht mehr von Rechner zu Rechner laufen :)


    Lieben Gruß
    Nico

  • Hallo Nico,


    Zitat von "s1n88"

    Bei mir ist es aber derzeit so, dass wir das Ganze noch "testen"


    Davon bin ich mal ausgegangen. Alles andere wäre recht "unvernünftig". Nun testest Du aber auch mit Rechner, bei denen MCD nicht aktiv ist. Dieses Scenario würde es in einem echten Betrieb ja nicht mehr geben. Die Frage ist also, ob dieser Test relevant ist.


    Zitat von "s1n88"

    Wenn TB beim Start keine js-Datei findet (deaktiviertes MCD), dann öffnet er sich zwar, legt aber auch kein neues Profil an, denn es existiert ja bereits eins, aber TB verhält sich, als wenn es ein neues Profil wäre.


    Das ist merkwürdig, hat aber wohl nichts mit dem MCD zu tun. Der ist ja gar nicht aktiv. Das scheint mir eher ein Thema rund um die profiles.ini und das Profil zu sein.


    Zitat von "s1n88"

    Ein weiteres lokales Profil wird unter "Roaming\Thunderbird\Profiles\" nicht angelegt. Er öffnet einfach das schon vorhandene, [...] Ein weiteres lokales Profil wird unter "Roaming\Thunderbird\Profiles\" nicht angelegt.[


    Woran erkennst, dass er das vorhandene öffnet? Ist dieses Profil jemals fertig eingerichtet worden? Oder öffnet der TB ein Profil, das zwar vorhanden, dessen Erstellung aber zuvor nie ganz abgeschlossen wurde?
    Du solltest nochmal überprüfen, ob die profiles.ini wirklich am richtigen Ort vorhanden ist und ob der darin gespeicherte Pfad zum Profil korrekt ist. Ich weiß,


    Zitat von "s1n88"

    Die profiles.ini sieht komplett identisch aus


    aber vielleicht gibt es ja mehrere und Du hast die falschen verglichen?


    Zitat von "s1n88"

    Meldet er sich nun von diesem Rechner wieder ab, so wird sein Profil ja wieder mit den Server synchronisiert. Am nächsten Arbeitstag meldet er sich wieder an einem Rechner ohne MCD an und dann taucht das Problem auf


    Vielleicht hängt das Problem damit zusammen und hat gar nichts mit dem MCD zu tun. Kannst Du erläutern, wie diese Synchronisation bei euch aufgesetzt ist? Werden, unabhängig vom MCD, sämtliche lokalen Benutzerverzeichnisse mit einem Server synchronisiert? Werden beim An- und Abmelden Dateien kopiert oder sind das nur Verlinkungen?


    Da fällt mir noch etwas ein. Wie wird der TB denn gestartet? Benutzt ihr Aufrufparameter (z.B. ein bestimmtes Profil)?


    Zitat von "s1n88"

    Ich finde es leider schade, dass Mozilla zu diesem Thema wenig Informationen raus gibt.


    Ja, die Anleitungen, die ich gefunden habe, sind nicht wirklich gut. Offenbar für Mozilla-Experten geschrieben.


    Gruß


    Susanne

  • So, da bin ich wieder und habe Neuigkeiten!


    Zitat von "SusiTux"

    Woran erkennst, dass er das vorhandene öffnet? Ist dieses Profil jemals fertig eingerichtet worden? Oder öffnet der TB ein Profil, das zwar vorhanden, dessen Erstellung aber zuvor nie ganz abgeschlossen wurde?


    Es gibt nur ein Profil in der profiles.ini und nur ein Profilordner. Thunderbird mit Parameter /p zu starten zeigt auch nur ein Profil, außerdem sind noch die Plugins vorhanden, die bei der Ersteinrichtung installiert worden sind. Somit wird nur das eine Profil geladen.


    Ich weiß allerdings nun, wieso die E-Mail Konten fehlen - TB bearbeitet nach Start ohne MCD die prefs.js Datei:


    prefs.js nachdem ersten Start mit aktivierter MCD:

    Code
    1. user_pref("mail.account.account2.identities", "id1");
    2. user_pref("mail.account.account2.server", "server2");
    3. user_pref("mail.account.account3.server", "server1");
    4. user_pref("mail.account.lastKey", 3);
    5. user_pref("mail.accountmanager.accounts", "account2,account3");
    6. user_pref("mail.accountmanager.defaultaccount", "account2");
    7. user_pref("mail.accountmanager.localfoldersserver", "server1");


    prefs.js nach zweiten Start, allerdings ohne MCD:

    Code
    1. user_pref("mail.account.account3.server", "server1");
    2. user_pref("mail.account.lastKey", 3);
    3. user_pref("mail.accountmanager.accounts", "account3");
    4. user_pref("mail.accountmanager.defaultaccount", "account2");
    5. user_pref("mail.accountmanager.localfoldersserver", "server1");


    Man sieht, dass TB das automatisiert eingerichtete E-Mail Konto aus der prefs.js Datei entfernt.
    Deswegen ist das Konto auch nicht mehr sichtbar.


    Desweiteren habe ich festgestellt, dass "lockPref" Einstellungen in der globalen Settings Datei, die bei aktivierten MCD ausgelesen wird und die TB-Einstellungen einrichtet, nicht in der prefs.js gespeichert werden. Diese werden anscheinend nur temporär geladen aber innerhalb der prefs.js nicht gespeichert, sodass in der prefs.js trotzdem die eigentlichen Standardeinstellungen drin stehen.
    Ein Beispiel: Bei uns müssen E-Mails mit Verdana Schriftart bei 10pt (13px) geschrieben werden.
    Standard bei Thunderbird ist aber Calibri oder Cambria mit 17px.
    Stelle ich nun in meiner Settingsdatei die Schriftgröße auf 13px per "lockPref", so kann der Benutzer innerhalb von TB diese Einstellung nicht ändern, in der prefs.js wird aber trotzdem wieder 17px geschrieben.
    Wende ich nur "pref" an, so wird auch in der prefs.js 13px gespeichert, aber die Einstellung wäre vom Benutzer änderbar, wie ich es gerade im Test festgestellt habe.


    Da ich noch weitere "lockPref" Einstellungen habe, gerade für die Servereinstellungen, muss ich dies wohl alles auf "pref" anpassen, damit TB sich ohne MCD richtig verhält, hoffe ich jedenfalls. Ich werde also weitertesten und dann berichten.
    Jedenfalls bin ich nun schon einen Schritt näher - Rauszufinden, wieso TB die prefs.js bearbeitet, wenn kein MCD vorhanden ist.


    Lieben Gruß
    Nico

  • Soooo ... das war wirklich - Test bestanden! Alles klappt nun wie gewollt! :D


    Also noch einmal für andere, die evtl. mal das Problem haben könnten:
    Alle TB-Einstellungen, die innerhalb der globalen Settingsdatei mit "lockPref" erfolgen, werden nicht in die prefs.js Datei des jeweiligen Profils gespeichert! Fällt die globale Settingsdatei mal weg oder ein Computer besitzt z.B. kein MCD, so werden die Standardeinstellungen von TB genutzt. Da ich alle Servereinstellungen per "lockPref" eingerichtet hatte, damit der Benutzer diese Einstellungen nicht ändern kann, wurden diese Einstellungen bei nicht vorhandenen MCD ignoriert und Standard gewählt. Allerdings gibt es bei TB Standardgemäß ja noch keine eingerichteten Servereinstellungen, weswegen dieses E-Mail Konten dann auch entfernt und keins angezeigt wurde.


    Ich habe nun alle "lockPref" Einstellungen auf "pref" geändert (Hat den derzeitigen Nachteil, dass der Benutzer nun die Einstellungen innerhalb von TB ändern kann), ABER alle Einstellungen sind in der prefs.js hinterlegt und der Benutzer kann seelenruhig innerhalb der Domain von Computer zu Computer wechseln, ohne das irgendwann sein Profil nicht richtig geladen wird, auch wenn er an einem Computer sitzt, der z.B. kein MCD besitzt.


    Na klar sollte in einem Live-Betrieb, wie Susanne es schon erwähnte, sowas nicht der Fall sein, aber in meinem speziellen Fall werden die neuen Rechner beispielsweise bereits damit ausgeliefert, aber die alten haben es noch nicht erhalten, da wir uns derzeit im Testbetrieb befinden.


    Liebe Grüße
    Nico


    PS: Thread kann auf gelöst gestellt werden :)

  • Zitat von "s1n88"

    Alles klappt nun wie gewollt! :D


    Fein.


    Zitat von "s1n88"

    Alle TB-Einstellungen, die innerhalb der globalen Settingsdatei mit "lockPref" erfolgen, werden nicht in die prefs.js Datei des jeweiligen Profils gespeichert!


    Good Catch! Da muss man mal erstmal drauf kommen.



    Gruß


    Susanne