Having installed Exchange 2007 SP1 on to a couple of systems in my home lab, a couple of things have caught me out, which I thought may be beneficial to share.
Remove language packs from UM
The first was that you need to remove any additional language packs from the server. I had the UK English pack installed. This is the TechNet article on how to remove a language pack.
However I found that the command listed in that article didn't work. Instead I used a command prompt in the root of my local copy of the DVD (I copied the files off the original DVD to the machine so that they were always available) and then ran the following command:
The language pack then removed for me successfully.
Reboot Pending Prompt
If you had installed something that asked for a reboot and had not rebooted then the service pack will not install. You will have to reboot and then try again. Fortunately the service pack itself does not seem to ask for a reboot.
You do not have to remove the rollups
If you have been keeping the server up to date and have the rollups installed, then you may recall that if you downloaded them manually you had to remove the previous rollups before installing the new ones. With the service pack you do not have to do that. This service pack effectively removes the installation files and then replaces them. The download is the complete Exchange 2007 installation set. After the installation of the service pack is complete the rollups have gone from the add/remove programs list.
Receive Connector Configuration
This last one caught me out and seems to be catching many others.
If you have modified the receive connector FQDN away from the default then it will stop the installation of the service pack. However this is NOT picked up during the initial check of the server at the beginning, but midway through. The service pack install stops and you are left with a server that is not running 100%. If you do forget to change it then the service pack will pick up from where it has started.
The receive connector should be set to either the server's FQDN, Netbios name or blank.
So for a server called EXCH-Server this would be exch-server.domain.local, exch-server or blank.
Why would you change this? When you telnet to the server it is the receive connector that is answering the call and you may want to change it so that the public name of the server is answered instead.