Exchange upgrade fails due to missing language files

Just to help anyone out there that might be facing this issue. I’ve helped troubleshoot an Exchange 2010 RTM upgrade to Exchange 2010 SP3 which kept failing due to missing language files…

Event ID 1603 was also thrown as per to the KB 2784788 – “1635” or “1603” error code when you install update rollups or service packs for Exchange Server 2007 or Exchange Server 2010

The MSILOG indeed showed that the setup was looking for the RTM language files in the original location where the setup files were, but they are long gone… with the RTM DVD no where to be-found (RTM trial files + the oldest Language Pack bundle are in a non compatible version) this situation was doomed to failure.

So, I’ve turned to manually remove any references to the Client / Server language packs on the server, this included removing a whole bunch of registry keys:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\ExchangeServer\v14\Language Packs\ <-- the whole KEY
HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Installer\Products\  <-- Whatever "Microsoft Exchange ** Language Pack" I found
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\  <-- Whatever "Microsoft Exchange ** Language Pack" I found
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products  <-- Whatever "Microsoft Exchange ** Language Pack" I found

Following this brutal way, I’ve stumbled upon a way to Applying Small Updates by Reinstalling the Product this actually achieves what the installer wants:

msiexec /i Server<or>ClientLanguagePack.msi REINSTALLMODE=vomus

And it works ! Now, I guess that with a script this would have been much quicker then the registry method, but at least now I’m (and you are) aware of this workaround , and here’s the script for your usage:

** edit the $setuplocation variable for your directory of the servicepack.

$setupLocation = "c:\sp3"
$allDirs = dir $setupLocation -Directory
foreach ($dir in $allDirs)
if (Test-Path ($dir.FullName + "\clientlanguagepack.msi")) {Write-Host "Installing" $ ; Start-Process -FilePath msiexec -ArgumentList /i, ($dir.FullName + "\clientlanguagepack.msi"), "REINSTALLMODE=vomus" -Wait }
if (Test-Path ($dir.FullName + "\serverlanguagepack.msi")) {Write-Host "Installing" $ ; Start-Process -FilePath msiexec -ArgumentList /i, ($dir.FullName + "\serverlanguagepack.msi"), "REINSTALLMODE=vomus" -Wait }


Additional references:

Upgrading Service pack – keep asking for language pack – credit for the REINSTALLMODE=vomus trick

How to restore the missing Windows Installer cache files and resolve problems that occur during a SQL Server update – kb 969052

Don’t forget to modify your Windows Server Power Options

Following a troubleshooting session I’ve had lately, I wanted to share with you an important recommended settings that most folks (myself included) often overlook.

With more and more virtual servers and less and less physical servers being deployed, capabilities like SpeedStep of a CPU were forgotten. Take for example the following “modest” specifications of Intel Xeon E5-2690 v2, with 10 cores @ 3.0 GHz this is a “fare” spec for a high load / CPU intensive profile server.

BUT ! if you forget to select the “High Performance” power option in Windows Server for example, you could end up with:

e5-2690v2 at half speed

Notice that the speed of the CPU is less the half the speed it can run at. now to make things better, just make sure to select the “preferred” settings for your busy server:

e5-2690v2 at full speed

Just a heads up for all you folks out there, the default “Balanced” option caused a performance issue with an Exchange 2013 server that was running on this physical hardware and once the option was changed – all was back to normal 🙂


Windows 8 Wakes Up From Sleep or Hibernation Unexpectedly

Hi Again,

I’ve upgraded my desktop to windows 8 lately and since the upgrade I’ve noticed that each time the computer enters sleep mode or hibernation it keeps turning on my itself mysteriously and no apparent reason.

Well…no more!! Here’s the actual line of events that led me to the solution:

  1. Went through some event viewer entries, specifically looking at Power-Troubleshooter and Kerner-General source that did not provide me with anything…
    Event ID 1 Source Power-Troubleshooter Wake Source Unknown
  2. Double checked that no one is touching the mouse or keyboard… 🙂
  3. Made sure that the “Allow wake timers” option is not enabled for the active power scheme
    Allow Wake Timers Set To Disabled
  4. Disabled the “Allow this device to wake up the computer” option on the network card adapter Power Management settings tab – you can query all devices that are allowed using the following command (cmd not PowerShell):
    powercfg -devicequery wake_armedAllow This Device To Wake The Computer Disabled

Only after being frustrated again from the computer still waking up with no apparent reason I’ve noticed that it keeps waking up at around specific times, which led me to the conclusion that it’s probably a schedule task that was waking the computer up !
Seems like there is a Media Center task names mcupdate_scheduled that was causing all the trouble !

Wake The Computer To Run This Task Enabled

So, I’ve written a small PowerShell script to disable the “wake the computer to run this task” option from all scheduled tasks at once, and that did the trick!
This script should work fine with Windows 8 or Server 2012 and might serve as an example for manipulating scheduled tasks with PowerShell.

Get-ScheduledTask | ? { $_.Settings.WakeToRun -eq $true -and $_.State -ne "Disabled"} | % { $_.Settings.WakeToRun = $false; Set-ScheduledTask $_ }

Now my computer sleeps and hibernates without waking up ! ZzzzzzzZzzzzZzzzz


Additional Links:

Mind blowing features coming with Windows Server 2012 Hyper-v

Hey Again,
It seems like next year will keep me busy with visualization projects based on Hyper-V 🙂
Many promising features are coming up with the next Windows Server version and I’m already excited !

Just take a look at tables below for a comparison between 2008 R2 and 2012 RC Hyper-V:

Processor and Memory Support

Processor/Memory Feature Windows Server 2008 R2 Windows Server  2012 Release Candidate
Logical processors on hardware 64 320
Physical memory 1 TB 4 TB
Virtual processors per host 512 2,048
Virtual processors per virtual machine 4 64
Memory per virtual machine 64 GB 1 TB
Active virtual machines 384 1,024
Maximum Cluster Nodes 16 64
Maximum Cluster Virtual machines 1,000 4,000


Network Feature Windows Server 2008 R2 Windows Server  2012 Release Candidate
NIC Teaming Yes, through partners Yes, Windows NIC teaming in box
VLAN Tagging Yes Yes
MAC Spoofing Protection Yes, with R2 SP1 Yes
ARP Spoofing Protection Yes, with R2 SP1 Yes
SR-IOV Networking No Yes
Network QoS No Yes
Network Metering No Yes
Network Monitor Modes No Yes
Ipsec Task Offload No Yes
VM Trunk Mode No Yes


Storage Feature Windows Server 2008 R2 Windows Server  2012 Release Candidate
Live storage migration No, quick storage migration through System

Center Virtual Machine Manager

Yes, with no limits (as many as the hardware will allow)
Virtual machines on file storage No Yes, Server Message Block 3.0 (SMB3)
Guest Fibre Channel No Yes
Virtual disk format VHD up to 2 TB VHD up to 2 TB VHDX up to 64 TB
Virtual machine guest clustering Yes, through iSCSI Yes, through iSCSI, Fibre Channel, or Fibre

Channel over Ethernet (FCoE)

Native 4 KB disk support No Yes
Live virtual hard disk merge No, offline Yes
Live new parent No Yes
Secure offloaded data transfer No Yes


Manageability Feature Windows Server 2008 R2 Windows Server  2012 Release Candidate
Hyper-V PowerShell No Yes
Network PowerShell No Yes
Storage PowerShell No Yes
Enable/Disable shell No, server core at operating system setup Yes
VMConnect support for RemoteFX No Yes

Additional links for your reading:

Hyper-V Comparison Guide

Competitive Advantages of Windows Server 2012 RC Hyper-V

Windows Server 2012 Release Candidate Server Virtualization

Windows Server 2012 Release Candidate