Was soll erreicht werden:
Der User soll ein Skript ausführen, welches ihm eine Outlook-Signatur (firmeneinheitlich) erstellt. Dabei soll (im Gegensatz zu meinem alten Skript) keine User-Aktion notwendig sein, jede Information kann dynamisch aus dem Active Directory bzw. dem LDAP geholt werden (Name, Telefon, Standort, Position usw.). Vorausgesetzt ist selbstverständlich, dass sämtliche benötigten Felder im AD auch für den Benutzer gepflegt sind. Für das Auslesen der Daten verwende ich LDIFDE, ein Tool, welches bei den Windows-Server-Versionen seit geraumer Zeit mitgeliefert wird. Einem Client steht diese Datei aber i. d. R. nicht zur Verfügung, man muss hier also einen zentralen Share einrichten und hinterlegen, über den LDIFDE.exe angesprochen werden kann. Beim Schreiben dieses Skripts fiel mir aber auf, das LDIFDE seit Windows Server 2008 und höher keine Unicode-Dateien mehr erzeugen kann, was das Verwenden von Umlauten unmöglich macht. Der Parameter "-u" sollte diese Funktion eigentlich erbringen, jedoch sorgt dieser (ab WS2K8) dafür, dass die erzeugte TXT-Datei gänzlich codiert wird (also das Gegenteil von dem, was man eigentlich möchte). Glücklicherweise lässt sich die LDIFDE-Version von Windows Server 2003 noch sehr gut verwenden, diese beherrscht die Unicode-Ausgabe noch. Ich habe die Datei zusammen mit dem Skript hier zum Download bereitgestellt.
Funktionsumfang des Skriptes:
- Prüfung, ob Outlook läuft > vor dem Schließen wird Skript nicht weitergeführt
- Definieren sämtlicher Pfade
- Dynamisch den Domaincontroller ermitteln, der befragt werden soll
- Textbausteine für Klartext und HTML hinterlegbar
- LDAP auslesen inkl. Umlaute via LDIFDE
- Fehlerrückgabe, welche Felder im AD nicht gepflegt sind (nur bei Muss-Feldern)
- Ordnerstruktur für Signatur wird erstellt, wenn nicht vorhanden
- Backup vorhandener Signaturen
- Generierung von HTML und TXT-Signaturen
- Bereinigung von temporär generierten Dateien
ToDo für folgende Versionen:
- Dynamisch bezogene Inhalte mit Umlauten HTML-tauglich bereitstellen
- RTF-Signatur
Hier klicken, um Skript und LDIFDE.EXE herunterzuladen.
So far
Snaker
Zumeist IT-technisches Gedankengut sowie Problemlösungen, für welche ich lange suchen oder welche ich mir selber erarbeiten musste und nun teilen möchte.
Posts mit dem Label Addons werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Addons werden angezeigt. Alle Posts anzeigen
Mittwoch, 18. April 2012
Mittwoch, 1. September 2010
Ladezeiten von Firefox verkürzen -> SQLite komprimieren
Mein Firefox benötigte immer länger zum starten. Zugegebenermaßen: ich bin ein alter Addon-Fuchs, zur Zeit zählt die Addonliste stolze 22 Addons, von denen 8 deaktiviert sind.
Die langen Startzeiten resultieren allerdings nur sekundär aus den Addons, mein Problem ist vielmehr die Konstellation, über welche mein Firefox gestartet wird:
Auf einem Netzlaufwerk liegt mein Cryptocontainer -> dieser wiederum muss erst gemounted werden. Darin enthalten ist der Firefox Portable abgelegt. Das bedeutet also, es müssen alle Dateien, welche zum Start des Firefox benötigt werden, zunächst entschlüsselt (Rechenleistung) und vom Netz bezogen werden. Da fallen die sqlite-Dateien mit Größen bis hin zu 70 MB natürlich schnell ins Gewicht, da sie zu ebendiesen benötigten Dateien gehören.
Nach kurzer Recherche findet man allerdings schnell Tools, welche einem erklären, zu welchem Sinn und Zweck diese Datenbank-Dateien da sind und wie man sie komprimieren kann. Wie man sich denken kann, dienen also die sqlite-Dateien der Datenablage, z. B. für sichere URLs, besuchte Webseiten oder aber, wie bei mir: als Ablage für meinen RSS-Reader namens "Brief". Erst jetzt fiel mir auf, dass ich dem Reader keinerlei Begrenzungen aufgezeigt hatte, sondern hier eine ewig lange History gespeichert wird. Dies habe ich nach dem Bemerken sofort unterbunden und auch von der Möglichkeit im Addon, alte Inhalte zu löschen, Gebrauch gemacht. Die "Brief.sqlite" konnte man somit schon einmal gut verkleinern.
Um jedoch Dateien wie places.sqlite oder urlclassifier3.sqlite etwas zu schmälern benötigt es ein simples Tool, namens sqlite.exe (wer hätts gedacht :D), welches es hier zum Download gibt (Precompiled Binaries For Windows -> erster Punkt -> hier die Version 3.7.2: http://www.sqlite.org/sqlite-3_7_2.zip).
Die zum Download verfügbare .exe nun einfach in den Ordner mit den .sqlite-Dateien kopieren (bei FirefoxPortable ist dies z. B. X:\FirefoxPortable\Data\profile) und anschließend im selbigen Ordner eine Batch erstellen, z. B. "compress_sqlite.bat". Darin enthalten ist eine einzige Anweisung für die sqlite.exe:
@FOR %%G IN (*.sqlite) DO ( sqlite3 %%G "VACUUM" )
Die .bat kann auch hier geladen werden.
Diese nun ausführen und alle .sqlite-Dateien werden so gut es geht komprimiert, was, so der Ersteller der .exe, ohne Datenverlust geschieht.
Nachdem nun mein Profil mal eben über 100 MB geschrumpft ist, lädt das Profil natürlich wieder innerhalb von 5 Sekunden ... Trotz Netzlaufwerk und Verschlüsselung ... ich bin happy ;)
So far
Snaker
Die langen Startzeiten resultieren allerdings nur sekundär aus den Addons, mein Problem ist vielmehr die Konstellation, über welche mein Firefox gestartet wird:
Auf einem Netzlaufwerk liegt mein Cryptocontainer -> dieser wiederum muss erst gemounted werden. Darin enthalten ist der Firefox Portable abgelegt. Das bedeutet also, es müssen alle Dateien, welche zum Start des Firefox benötigt werden, zunächst entschlüsselt (Rechenleistung) und vom Netz bezogen werden. Da fallen die sqlite-Dateien mit Größen bis hin zu 70 MB natürlich schnell ins Gewicht, da sie zu ebendiesen benötigten Dateien gehören.
Nach kurzer Recherche findet man allerdings schnell Tools, welche einem erklären, zu welchem Sinn und Zweck diese Datenbank-Dateien da sind und wie man sie komprimieren kann. Wie man sich denken kann, dienen also die sqlite-Dateien der Datenablage, z. B. für sichere URLs, besuchte Webseiten oder aber, wie bei mir: als Ablage für meinen RSS-Reader namens "Brief". Erst jetzt fiel mir auf, dass ich dem Reader keinerlei Begrenzungen aufgezeigt hatte, sondern hier eine ewig lange History gespeichert wird. Dies habe ich nach dem Bemerken sofort unterbunden und auch von der Möglichkeit im Addon, alte Inhalte zu löschen, Gebrauch gemacht. Die "Brief.sqlite" konnte man somit schon einmal gut verkleinern.
Um jedoch Dateien wie places.sqlite oder urlclassifier3.sqlite etwas zu schmälern benötigt es ein simples Tool, namens sqlite.exe (wer hätts gedacht :D), welches es hier zum Download gibt (Precompiled Binaries For Windows -> erster Punkt -> hier die Version 3.7.2: http://www.sqlite.org/sqlite-3_7_2.zip).
Die zum Download verfügbare .exe nun einfach in den Ordner mit den .sqlite-Dateien kopieren (bei FirefoxPortable ist dies z. B. X:\FirefoxPortable\Data\profile) und anschließend im selbigen Ordner eine Batch erstellen, z. B. "compress_sqlite.bat". Darin enthalten ist eine einzige Anweisung für die sqlite.exe:
@FOR %%G IN (*.sqlite) DO ( sqlite3 %%G "VACUUM" )
Die .bat kann auch hier geladen werden.
Diese nun ausführen und alle .sqlite-Dateien werden so gut es geht komprimiert, was, so der Ersteller der .exe, ohne Datenverlust geschieht.
Nachdem nun mein Profil mal eben über 100 MB geschrumpft ist, lädt das Profil natürlich wieder innerhalb von 5 Sekunden ... Trotz Netzlaufwerk und Verschlüsselung ... ich bin happy ;)
So far
Snaker
Abonnieren
Posts (Atom)