Thunderbird Push Install

From SME Server
Revision as of 19:46, 17 December 2013 by Stephdl (talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Overview

This push install of Thunderbird is not unique to SME but it is very useful in the SME environment. This method uses the netlogon.bat file to automatically:

  • Check to see if a local install of Thunderbird is the same as the server install. If not it will copy over the server install.
  • Check to see if a local user Thunderbird profile exists. If not it will copy over a default, pre-configured profile.
  • The installed application is run locally.

Notes:

  • This method manually modifies the Thunderbird configuration files and may break the Thunderbird application. There are no guarantees.
  • This has been used in production and tested on Windows XP Professional only.
  • This requires downloading executable files from the MS Windows XP Resource Kit.

Instructions

Install Thunderbird:

  1. Log into a client computer as “admin”.
  2. Download and install Thunderbird to a local folder that is writable by all users. This example uses “c:\Applications\Thunderbird”
  3. Start Thunderbird and configure it using the “admin” email account (Using IMAPS or POPS, SMTPS and the full external SME server name is recommended so this configuration will work outside the network). Do not subscribe to IMAP folders or save your password at this time.
  4. Install and configure any Thunderbird Extensions. Note: This method will replace any instance of "admin" with the user's login. Do not use any other name than "admin" in settings where you want the user's information to appear. For example in Thunderbird the user's name should be "admin" and not "SME Administrator". User's can change these configurations later if desired.
  5. Configure any shared address books and calendars (using https addresses to keep the user’s credentials secure).

Setup SME server:

Create and ibay

  1. Create and ibay and give Write access “admin” and read access “everyone”.

Applications:

  1. Copy the local install folder (“c:\Applications”) of to this new share (“\\<server>\<share>\Applications”).

Installs:

  1. Create a “Installs” folder on the server share (“\\<server>\<share>\Installs”).
  2. Create a folder for your desktop shortcuts (“\\<server>\<share>\Installs\Desktop Shortcuts”).
  3. Copy the Thunderbird Desktop Shortcut to the server shortcuts folder.
  4. Copy “C:\Documents and Settings\admin\Application Data\Thunderbird” to this new folder. There will now be a folder “\\<server>\<share>\Installs\Thunderbird”. Note: the “Application Data” folder is a hidden folder.
  5. Uninstall Thunderbird from the client computer.

Utilities:

  1. Create a “Utilities” folder on the server share (“\\<server>\<share>\Utilities”).
  2. Search the internet and download “munge.exe” (part of the MS Windows XP Resource Kit) and place it in your “Utilities” folder.

Create an Install Thunderbird batch file:

  1. Create a batch file in the “Utilities” folder (“\\<server>\<share>\Utilities\Thunderbird_Install.bat”).
  2. Edit this file with notepad and add the following (make sure to enter your data where there are "<>"):
title DO NOT CLOSE THIS WINDOW! - Installing Thunderbird

echo.
echo.
set SOURCE=\\<server>\<share>
set AppsLocal=c:\Applications
set AppsRemote=%SOURCE%\Applications
if not exist "%AppsLocal%" md "%AppsLocal%"

echo. Copy Links to Desktop
 xcopy "%SOURCE%\Installations\Desktop Files\*" "%userprofile%\Desktop\"  /v /c /i /h /r /y /z
echo. End Copy Links to Desktop

echo.
echo. Begin Thunderbird install
 set ThunderbirdLocal=%AppsLocal%\Thunderbird
 set ThunderbirdRemote=%AppsRemote%\Thunderbird
 set ThunderbirdLocalVersion=1
 set ThunderbirdRemoteVersion=1
 for /F "usebackq tokens=1,2 delims=:" %%A in ("%ThunderbirdLocal%\install.log") do (
  if /i "%%A"=="  App Version" (
   set ThunderbirdLocalVersion=%%B
   goto :TBLDone
  )
 )
 :TBLDone
 for /F "usebackq tokens=1,2 delims=:" %%A in ("%ThunderbirdRemote%\install.log") do (
  if /i "%%A"=="  App Version" (
   set ThunderbirdRemoteVersion=%%B
   goto :TBRDone
  )
 )
 :TBRDone
 if not %ThunderbirdLocalVersion%==%ThunderbirdRemoteVersion% (
  If exist "%ThunderbirdLocal%" rd /s /q "%ThunderbirdLocal%"
  xcopy "%ThunderbirdRemote%" "%ThunderbirdLocal%" /e /c /i /y
 )
echo. End Thunderbird install
echo.
echo.
echo. Begin Thunderbird profile install or update

 rem TBInstallFlag is used force an update of a profile. 
 rem If a new profile is copied over from the server the user’s customizations and personal contacts and calendar will be removed. 
 rem To force a global update just change the value of the this variable.

 set TBInstalFlag=2009-05-03.txt
 if not exist "%USERPROFILE%\Application Data\Thunderbird\%TBInstalFlag%" (

  rem The next line moves an existing profile to the user’s desktop to be deleted manually later.

  if exist "%USERPROFILE%\Application Data\Thunderbird" move /y "%USERPROFILE%\Application Data\Thunderbird" "%USERPROFILE%\Desktop\Old Thunderbird Settings - You Can Delete"
   xcopy "%SOURCE%\Installations\Thunderbird" "%USERPROFILE%\Application Data\Thunderbird" /e /c /i /y
  echo."admin" "%username%">"%USERPROFILE%\Application Data\Thunderbird\ReplaceName.txt"

  rem The next two lines update the Thunderbird profile and replace “admin” with the user’s login.
  rem You must enter the profile name that Thunderbird created for <your profile name>

  "%SOURCE%\Utilities\Munge.exe" "%USERPROFILE%\Application Data\Thunderbird\ReplaceName.txt" -l "%USERPROFILE%\Application Data\Thunderbird\Profiles\<your profile name>\prefs.js"
  "%SOURCE%\Utilities\Munge.exe" "%USERPROFILE%\Application Data\Thunderbird\ReplaceName.txt" -l "%USERPROFILE%\Application Data\Thunderbird\Profiles\<your profile name>\extensions.ini"
  move /y "%USERPROFILE%\Application Data\Thunderbird\ReplaceName.txt" "%USERPROFILE%\Application Data\Thunderbird\%TBInstalFlag%"
 )
echo. End Thunderbird profile install or update
echo.


Modify the netlogin.bat

Modify the netlogin.bat file on the SME server to call the Thunderbird install batch file just created and redirect the output to a log file either locally or on the server.

call "\\<server>\<share>\Utilities\Thunderbird_Install.bat" >"c:\Applications\Thunderbird_Install-%username%.log" 2>&1

Contacts and Calendar Synchronization

Here are some comments on my experiences:

Funambol in General

  • Pros:
    • Fast.
    • True synchronization of data records and not global file copy.
  • Cons:
    • Unstable? Often duplicates records. Server time out error renders client permanently "un-syncable".
    • Configuration stored in Windows Registry. Different Funambol settings for each Thunderbird profile not possible.
    • Only a single address book and calendar can be synced.
    • Windows only.
    • Plug-in needs to be rewritten to be more "compliant" to the Thunderbird methodology.

Funambol with eGroupware 1.4

  • Pros:
    • Syncs with webmail.
  • Cons:
    • Must have PHP 5 installed.
    • Users must login to eGroupware at least once to create their account.
    • Complicated install with SME 7.

Funambol with Horde 3.3

  • Pros:
    • Syncs with webmail.
  • Cons:
    • Users must first create a contact in Horde before they are able to see the synchronized entries in Horde (Horde bug?).

SyncKolab

  • Pros:
    • Reliable to date.
    • True synchronization of data records and not global file copy.
    • Can have several shared address books and calendars.
  • Cons:
    • Slow.
    • Data store is in an IMAP folder that users have direct access to.
    • Somewhat complicated setup.
    • Dovecot IMAP does not support ACLs or shared IMAP folders. Group shares must be on another account.

Groupdav with eGroupware 1.6

  • Pros:
    • Reliable.
    • True synchronization of data records and not global file copy (I believe).
    • Can have several shared address books and calendars.
    • Simple client setup.
  • Cons:
    • Slow.
    • Requires PHP 5 and Mysql 5. Not supported on SME 7.

WebDAV

  • Pros:
    • Reliable.
    • Can have several shared calendars.
    • Good for sharing a group calendar read only.
  • Cons:
    • Slow.
    • Full ics file sync not individual events.
    • Can only share calendars.
    • Need DAV contrib installed.