Difference between revisions of "Thunderbird Push Install"

From SME Server
Jump to navigationJump to search
(How to push an install of Thunderbird out to clients.)
 
(Added Synchronization section)
Line 10: Line 10:
 
*This has been used in production and tested on Windows XP Professional only.
 
*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.
 
*This requires downloading executable files from the MS Windows XP Resource Kit.
 +
  
 
== Instructions ==
 
== Instructions ==
Line 32: Line 33:
 
***Search the internet and download “munge.exe” (part of the MS Windows XP Resource Kit) and place it in your “Utilities” folder.
 
***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:
 
*Create an Install Thunderbird batch file:
**Create a batch file in the “Utilites” folder (“\\<server>\<share>\Utilities\Thunderbird_Install.bat”).
+
**Create a batch file in the “Utilities” folder (“\\<server>\<share>\Utilities\Thunderbird_Install.bat”).
**Edit this file with notepad and add the following:
+
**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
 
  title DO NOT CLOSE THIS WINDOW! - Installing Thunderbird
Line 45: Line 46:
 
   
 
   
 
  echo. Copy Links to Desktop
 
  echo. Copy Links to Desktop
xcopy "%SOURCE%\Installations\Desktop Files\*" "%userprofile%\Desktop\"  /v /c /i /h /r /y /z
+
  xcopy "%SOURCE%\Installations\Desktop Files\*" "%userprofile%\Desktop\"  /v /c /i /h /r /y /z
 
  echo. End Copy Links to Desktop
 
  echo. End Copy Links to Desktop
 
   
 
   
 
  echo.
 
  echo.
  echo. Begin Thunderbird install
+
  echo. Begin Thunderbird install
set ThunderbirdLocal=%AppsLocal%\Thunderbird
+
  set ThunderbirdLocal=%AppsLocal%\Thunderbird
set ThunderbirdRemote=%AppsRemote%\Thunderbird
+
  set ThunderbirdRemote=%AppsRemote%\Thunderbird
set ThunderbirdLocalVersion=1
+
  set ThunderbirdLocalVersion=1
set ThunderbirdRemoteVersion=1
+
  set ThunderbirdRemoteVersion=1
for /F "usebackq tokens=1,2 delims=:" %%A in ("%ThunderbirdLocal%\install.log") do (
+
  for /F "usebackq tokens=1,2 delims=:" %%A in ("%ThunderbirdLocal%\install.log") do (
if /i "%%A"=="  App Version" (
+
  if /i "%%A"=="  App Version" (
set ThunderbirdLocalVersion=%%B
+
    set ThunderbirdLocalVersion=%%B
goto :TBLDone
+
    goto :TBLDone
)
+
  )
)
+
  )
:TBLDone
+
  :TBLDone
for /F "usebackq tokens=1,2 delims=:" %%A in ("%ThunderbirdRemote%\install.log") do (
+
  for /F "usebackq tokens=1,2 delims=:" %%A in ("%ThunderbirdRemote%\install.log") do (
if /i "%%A"=="  App Version" (
+
  if /i "%%A"=="  App Version" (
set ThunderbirdRemoteVersion=%%B
+
    set ThunderbirdRemoteVersion=%%B
goto :TBRDone
+
    goto :TBRDone
)
+
  )
)
+
  )
:TBRDone
+
  :TBRDone
if not %ThunderbirdLocalVersion%==%ThunderbirdRemoteVersion% (
+
  if not %ThunderbirdLocalVersion%==%ThunderbirdRemoteVersion% (
If exist "%ThunderbirdLocal%" rd /s /q "%ThunderbirdLocal%"
+
  If exist "%ThunderbirdLocal%" rd /s /q "%ThunderbirdLocal%"
xcopy "%ThunderbirdRemote%" "%ThunderbirdLocal%" /e /c /i /y
+
  xcopy "%ThunderbirdRemote%" "%ThunderbirdLocal%" /e /c /i /y
)
+
  )
  echo. End Thunderbird install
+
  echo. End Thunderbird install
 
  echo.
 
  echo.
 
  echo.
 
  echo.
  echo. Begin Thunderbird profile install or update
+
  echo. Begin Thunderbird profile install or update
 
   
 
   
rem TBInstallFlag is used force an update of a profile.  
+
  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 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.
+
  rem To force a global update just change the value of the this variable.
 
   
 
   
set TBInstalFlag=2009-05-03.txt
+
  set TBInstalFlag=2009-05-03.txt
if not exist "%USERPROFILE%\Application Data\Thunderbird\%TBInstalFlag%" (
+
  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.
+
  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"
+
  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
+
    xcopy "%SOURCE%\Installations\Thunderbird" "%USERPROFILE%\Application Data\Thunderbird" /e /c /i /y
echo."admin" "%username%">"%USERPROFILE%\Application Data\Thunderbird\ReplaceName.txt"
+
  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 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>
+
  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>\prefs.js"
"%SOURCE%\Utilities\Munge.exe" "%USERPROFILE%\Application Data\Thunderbird\ReplaceName.txt" -l "%USERPROFILE%\Application Data\Thunderbird\Profiles\<your profile name>\extensions.ini"
+
  "%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%"
+
  move /y "%USERPROFILE%\Application Data\Thunderbird\ReplaceName.txt" "%USERPROFILE%\Application Data\Thunderbird\%TBInstalFlag%"
)
+
  )
  echo. End Thunderbird profile install or update
+
  echo. End Thunderbird profile install or update
 
  echo.
 
  echo.
 +
  
 
*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.
 
*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
 
  call "\\<server>\<share>\Utilities\Thunderbird_Install.bat" >"c:\Applications\Thunderbird_Install-%username%.log" 2>&1
  
--[[User:Kevinb|Kevinb]] 06:18, 4 June 2009 (UTC)
+
 
 +
== 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.
 +
 
 +
 
 +
 
 +
--[[User:Kevinb|Kevinb]] 22:18, 4 June 2009 (UTC)
 
[[Category:Howto]]
 
[[Category:Howto]]

Revision as of 23:18, 4 June 2009

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 too 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:
    • Log into a client computer as “admin”.
    • Download and install Thunderbird to a local folder that is writable by all users. This example uses “c:\Applications\Thunderbird”
    • 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.
    • 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.
    • Configure any shared address books and calendars (using https addresses to keep the user’s credentials secure).
  • Setup SME server:
    • Create and ibay with Write access “admin” and read access “everyone”.
    • Applications:
      • Copy the local install folder (“c:\Applications”) of to this new share (“\\<server>\<share>\Applications”).
    • Installs:
      • Create a “Installs” folder on the server share (“\\<server>\<share>\Installs”).
      • Create a folder for your desktop shortcuts (“\\<server>\<share>\Installs\Desktop Shortcuts”).
      • Copy the Thunderbird Desktop Shortcut to the server shortcuts folder.
      • 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.
      • Uninstall Thunderbird from the client computer.
    • Utilities:
      • Create a “Utilities” folder on the server share (“\\<server>\<share>\Utilities”).
      • 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:
    • Create a batch file in the “Utilities” folder (“\\<server>\<share>\Utilities\Thunderbird_Install.bat”).
    • 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 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.


--Kevinb 22:18, 4 June 2009 (UTC)