The fine art of updating MOSS 2007 and WSS 3.0

Let's face it, updating Sharepoint is not an easy task. It is true for both Microsoft Office Sharepoint Server (MOSS) 2007 and Windows Sharepoint Services 3.0. Let's highlight some points:

  1. MOST IMPORTANT: MOSS is built on top of WSS and you have to apply WSS and MOSS updates on MOSS installation
  2. You have to install localized versions of the updates even if you only uses English
  3. If you have MOSS, you have to install localized version of the updates even if you use English only
  4. VERY IMPORTANT: A later update patch DOES NOT include previous patches, so you may have to install a series of patches to get to a specific version. For example, August CU requires you to install SP1, Infrastructure Updates and other patches to be installed before.
  5. The only reliable information about current and past update paths can be found at https://blogs.msdn.com/sharepoint
  6. Before December Cumulative Update (CU) Uber Package, you were supposed to download a patch for each additional language you have installed in your farm.

 

How to update:

First, know where you are now. The way to know your version is going to Central Administration | Operations | Servers in Farm. The version will be shown in the page. This version will not tell you all as you have other components besides the server version. Some people, including me, prefer to check the version in the files. To get the version of the files, we use SPSReports.

SPSReports will generate a large amount of captured files. The file version will be available at <SERVERNAME>_WSEVer.TXT. This is an excerpt of such file (showing SP1 files):

    c:\program files\common files\microsoft shared\web server extensions\12\bin\*.*
--a-- W32i DLL ENU 6.6.7.5 shp 1,030,144 02-21-2007 dbghelp.dll
--a-- W32i APP - 12.0.4518.1016 shp 23,824 11-08-2006 hcinstal.exe
--a-- W32i DLL - 12.0.4518.1014 shp 123,232 10-26-2006 microsoft.office.irm.formprotector.dll
--a-- W32i DLL - 12.0.4518.1014 shp 38,736 10-26-2006 microsoft.office.irm.msoprotector.dll
--a-- W32i DLL - 12.0.4518.1014 shp 34,640 10-26-2006 microsoft.office.irm.ofcprotector.dll
--a-- W32i DLL - 12.0.6211.1000 shp 92,000 08-24-2007 msscntrs.dll
--a-- W32i APP - 12.0.6211.1000 shp 282,496 08-24-2007 mssdmn.exe
--a-- W32i APP - 12.0.6211.1000 shp 159,648 08-24-2007 mssearch.exe
--a-- W32i DLL - 12.0.6211.1000 shp 694,104 08-24-2007 mssph.dll
--a-- W32i DLL - 12.0.6211.1000 shp 2,059,104 08-24-2007 mssrch.dll
--a-- W32i DLL - 12.0.6212.1000 shp 1,079,200 09-02-2007 offparser.dll
--a-- W32i DLL - 12.0.6219.1000 shp 3,012,136 11-15-2007 owssvr.dll
--a-- W32i DLL - 12.0.6211.1000 shp 26,496 08-25-2007 oisimg.dll
--a-- W32i DLL - 12.0.4518.1016 shp 26,456 11-08-2006 oleparser.dll
--a-- W32i DLL - 12.0.6211.1000 shp 357,264 08-25-2007 onetnative.dll
--a-- W32i DLL - 12.0.6219.1000 shp 1,983,528 11-16-2007 onetutil.dll
--a-- W32i DLL - 12.0.4518.1014 shp 100,144 10-27-2006 osafehtm.dll
--a-- W32i APP - 12.0.6211.1000 shp 58,232 08-25-2007 owstimer.exe
--a-- W32i DLL - 12.0.4518.1014 shp 400,200 10-26-2006 microsoft.office.policy.dll
--a-- W32i DLL - 12.0.4518.1014 shp 52,040 10-26-2006 microsoft.office.workflow.tasks.dll
--a-- W32i DLL - 12.0.6211.1000 shp 6,407,584 08-24-2007 microsoft.sharepoint.portal.dll
(....)

 

Depending on the product, there will be files with more significance than others and be aware that not all files will be updated to the latest build. In the excerpt above oleparser.dll is still in version 12.0.4518 (RTM version) while owssrv.dll is in SP1 (12.0.6219).

 

Checking your version:

  • For WSS Global: Check OWSSVR.dll
  • For WSS Local: normally by checking the localized javascript version and comparing with the global javascript files and by mssmsg.dll (it may vary - see Knowledge Base method later in this post)
  • For MOSS Local: normally by checking the localized javascript version and comparing withe the global javascript files and by Htmlchkr.dll (it may vary - see knowledge Base method later in this post)
  • For MOSS Global: Check Microsoft.Sharepoint.Portal.dll (also make sure all other updates as WSS and DLC are compatible with the build, I will talk about it later)
  • For Document Lifecycle Management (DLC) aka Workflow: highest version between microsoft.office.policy.dll and microsoft.office.workflow.tasks.dll
  • For Infrastructure Updates (IU): It varies (see Knowledge Base method later in this post)

Checking what takes to get up-to-date

As I told you before, the Sharepoint Team blog is the most reliable source of update path. If you want to update to the latest recommended version or just fix a previous update not working so well because you did not know that WSS updates was also mandatory, you better check the blog. Other reason to fix a previous update is when your javascript yields an error every time you try to edit a rich edit field or it only yields an error when you are not editing in English.

One of the problems I see occasionally in my work at Microsoft is clients who were not aware they had to install the language patch update for every language they have in addition to the local English patch. One symptom of the problem is the Javascript errors I mentioned. Sometimes they prefer to wait for SP2 and avoid to update in all Cumulative Updates released. Before December CU, all other patches required a long list of prerequisites. My colleague Robert Gullick put together a list for all paths up to December CU.

The new updates make things easier. For example, October CU required at least 4 patches (if you don't have other languages installed) while December CU only requires two patches no matter how many languages you have installed.

Let's take a look at the requirements for having October CU in MOSS (i.e. update path):

  • KB936988 - WSS SP1 + LanguagePack SP1 - 6219
  • KB957109 - WSS August CU Local - 6327
  • KB957691 - WSS October CU Global - 6332
  • KB936984 - MOSS SP1 + Language Pack SP1 - 6219
  • KB955586 - MOSS DLC Component Update Local - 6324
  • KB955937 - MOSS Excel Services security update - 6324 *
  • KB958569 - MOSS DLC Component Update Global - 6331
  • KB958567 - MOSS October CU Local - 6331
  • KB957693 -MOSS October CU Global - 6331

If you had installed any of the KBs in the path you don't have to install the KB again. And now we finally will talk about how to use the KB method.

How to identify if the KB is already installed (Knowledge Base method)

Unfortunately the KBs are not visible in Add/Remove Programs in Control Panel. But the information is in the registry. Let's say I want to check if KB958569 is installed or not.

  • Open Registry Editor (Start | Run | Regedit.exe)
  • Go to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
  • Press Ctrl+F to start a search
  • Look for the KB number by entering only the number without the prefix (eg. 958569)
  • If you find it under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall it is because it is installed.
  • This method is not so reliable because it does not keep track of past KB installed but it can be a good start
  • You can issue the command "reg export HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall uninst.txt" to dump the registry info in the text file.

How to download a specific KB hotfix (don't forget the local patches also)

Some hotfixes do not have an immediate public download place. You have to request. Please see the sample below for KB 958567 which is local update (and must be installed for each language you have in your environment).

The KB is located here:

https://support.microsoft.com/kb/958567

for other KBs, just change the number in the url.

The hotfix can be download here:

https://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=958567

Notice that you will be offered only the English version initially. Click on “Show hotfixes for all platforms and languages” and it will show for all languages and architectures (x86 and x64).

clip_image002

Choose all languages and architectures that apply. You will receive an e-mail with instructions on how to download the patch.

Please follow these for all patches.