April 10, 2012 Internet Explorer 9 Windows Update Issues

Around April 10, 2012 Microsoft updated the Internet Explorer 9 installers with a broken version. Until this issue is fixed, your safest bet is to use the older installer here, then update with Windows Update (just do not perform an initial install from Windows Update).


See the Microsoft Answers thread here: http://answers.microsoft.com/en-us/windows/forum/windows_other-windows_update/windows-server-2008-r2-sp-1-internet-explorer-9/ac2ed42f-7faf-4731-8af9-7a50d946138a
Jonathan Sahagun found a direct link to the previous, working version of IE9 here: http://www.microsoft.com/download/en/confirmation.aspx?id=23332


There are two solutions – probably the safest solution is to uninstall then reinstall an older version. The alternate solution is to make a couple registry changes.



After this bad version of IE9 is installed, you will be continuously prompted by Windows Update to install Internet Explorer 9 – it appears as though it cannot tell you already installed it.


If you attempt to install it again, the update will fail (with Error “Code 9C48  Windows Update Encountered an unknown error”), but it will continue to repeatedly offer the update:



Additionally, there is a conflict between the version embedded in the files, and the version reported by IE:

To see the version conflict, browse to C:\Program Files (x86)\Internet Explorer\iexplore.exe, view the properties, then the details tab, and note the Product version number:


In my case, it is 9.00.8112.16443 (file version is 9.0.8112.16443)


Now, within Internet Explorer, got to Tools –> About Internet Explorer


The version doesn’t match – 9.0.8112.16421
(Note: On my other system where IE9 was installed before April 10, this is the version number on both the files and in the program)


Solution #1 – Confirmed, Probably supported

If you haven’t already installed IE9, use the following link to install it: http://www.microsoft.com/download/en/confirmation.aspx?id=23332

If you already installed it: uninstall it, then reinstall using the linked version.

If you have installed other applications since installing IE9, this may break things. I have also seen the uninstall leave IE in an inconsistent state… so naturally I sought out an alternative.


Solution #2 – Quicker, safer, riskier

It looks like this version conflict is a registry setting:


In HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer  (and also HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer), svcVersion should match Version and W2kVersion. Change it to 9.0.8112.16443


And Viola, IE9 reports the correct version, and Windows Update stops offering the Installer.



Hopefully Microsoft will figure out the mistake soon (as of this writing it has nearly been a week) fix the installer, and fix Windows Update to recognize and remedy the broken installs.

How to uninstall MSDAIPP (Web Folders) from Windows 7

We had a Windows 7 workstation that was exhibiting “wonky” behavior when opening SharePoint folders in Office 2010 Word (and explorer in general). When it was supposed to open the save-as dialog to a SharePoint folder, it would instead show the default “My Document” folder. You could still enter a SharePoint url, and it would load correctly, but the initial dialog refused to open SharePoint.

Using Fiddler2 I was able see that the problem computer was using a different WebDAV client than the working workstations from the User-Agent in the requests. The first request is identical:

OPTIONS http://sharepointserver/doclib/ HTTP/1.1
User-Agent: Microsoft Office Protocol Discovery
Host: sharepointserver
Content-Length: 0
Connection: Keep-Alive
Pragma: no-cache


But the second request is all kinds of different.

Normal Workstation:

OPTIONS http://sharepointserver/ HTTP/1.1
User-Agent: Microsoft-WebDAV-MiniRedir/6.1.7601
translate: f
Connection: Keep-Alive
Host: sharepointserver


Problem Workstation:

OPTIONS http://sharepointserver/ HTTP/1.1
Microsoft Data Access Internet Publishing Provider Cache Manager
Host: sharepointserver
Content-Length: 0
Connection: Keep-Alive
Pragma: no-cache
Cookie: WSS_KeepSessionAuthenticated={164a5252-50a4-4112-9e22-ae36dfsdddc}


The next request gets even weirder:

Continue reading “How to uninstall MSDAIPP (Web Folders) from Windows 7”

Client Hyper-V Issues in Windows 8 Consumer Preview–Release Preview Update

Update: After having all kinds of stability and performance issues with VirtualBox on the Win8 Release Preview, I decided to try Client Hyper-V again. Guess What? They fixed the networking issues!! Your clients can now use bridged networking without MAC address conflicts. There is still no graphic acceleration, having it installed breaks other virtualiztion software (although a quick bcdedit can fix that temporarily). I have modified things below accordingly.


If you were considering ditching VirtualBox for Client Hyper-V in Windows 8, well don’t do it just yet (unless you are having problems with VirtualBox). Enabling the Hyper-V hypervisor has performance and stability issues with host applications, there are all kinds of issues with the networking, it just doesn’t perform all that well, and there is absolutely zero graphics acceleration. And if you enable it, other Virtualization software will not work right.

If you remote desktop into your VM you can at least get sound, but on my relatively well endowed machine, the remote desktop was sluggish – more sluggish than RDP over the internet.

Despite Hyper-V being a low-level hypervisor, VirtualBox is blowing it out of the water in all respects. The networking is rock solid, performance is screaming(something changed from CP to RP, or some updated in VBox, cause the performance hasn’t been so hot), and you get sound and 2d / 3d acceleration(This doesn’t work at all on my machine) (Oh, and you don’t have to boot to an IDE drive)

Hopefully some of this gets worked out in future releases

Windows 7, UEFI vs BIOS, GPT vs MBR notes

I’ve been digging and experimenting quite a bit with the boot processes in Windows 7 (64-bit only), trying to accomplish completely unsupported things.

Here’s a couple things I have learned that you might find helpful

  • 32-bit Windows cannot boot uefi, nor can it be booted from a (microsoft) efi bootloader. This includes Thin PC.
  • The actual windows partition and installation doesn’t seem to care how it is booted – and it doesn’t matter how it was installed:
    • For UEFI, \Windows\system32\winload.efi is used to boot
    • For BIOS, \Windows\system32\winload.exe is used instead
    • Both sets of files exist regardless the type of system windows is installed on, and can be used interchangeably – I have taken a windows folder installed on a UEFI machine and booted in on a BIOS machine, and vice versa
  • Windows Image Backups are always MBR, even if the source drive was GPT. (at least for the partition containing windows)
  • Windows Image Backup’s recovery tool will not allow you to restore from a UEFI machine to a BIOS machine but…
  • Because the image is MBR, you can boot it on a BIOS machine with a little work

Using three monitors with Windows 8 CP

Windows 8 gets rid of the Start button for a “hot corner” approach – peg your mouse cursor to the lower-left corner of the screen and you get access to the “Start screen.” It actually works pretty well, and is easier / quicker to reliably “hit” than the old start button. Likewise, the lower corner provides access to search and other options.



But say you have more than one monitor?

If you have two – it’s not really so bad. As long as the main display is the one to the left, and your second display is to the right – the right-side corners are easier to hit (Especially since there is actually a button on the right side)



But suppose you have three? And suppose you want your primary display to be in the middle. Suddenly the hot corners become unusable. Presently there is no solution that makes all corners work well, but you can at least get your lower-left “start” corner working better with a little “nudge”:


In your monitor setup, bump the side monitors up just a tad (you can click and drag to reposition them). The consequence of this is that windows that span monitors will not line up, but at least you can actually hit the start corner…


I would argue that in many ways the Windows 8 Consumer Preview does a decent job of integrating the touch and mouse input methods… as long as you only use one screen. But seriously, who does that anymore?

Windows 8 File Copy Progress Window


This window alone is about enough to make the Windows 8 Consumer Preview worth the trouble. What you cannot see in the picture is that the line and speed are updated realtime (faster than once per second). The graph makes it very clear when something causes the copy rate to slow down. It’s awesome.

Getting a poorly designed ClickOnce application to Run As Administrator

One of our vendors distributes a couple tools as ClickOnce applications, but these applications perform privileged tasks that do not work with UAC enabled.

Rant: UAC has been around since Windows Vista was released in 2006. As of this writing, that would be 6 years. Windows 7 has been out for 3 years. As much as some people might dislike the extra dialogs, UAC is a very good thing, and should not be disabled. There is no excuse for applications that do not handle UAC correctly. Adding the appropriate application manifest is not difficult, and when using ClickOnce it is practically trivial.

Add the Application Manifest to require elevation; or better yet modify your app to not require elevation at all, but do not just pretend it doesn’t exist. 6 years… come on!

Ok, now that my rant is out of the way, if you are in a similar situation – a ClickOnce app that needs elevation to run, but doesn’t request it is a real pain in the butt.


“Run as Administrator” is conspicuously missing from the context menu:

Continue reading “Getting a poorly designed ClickOnce application to Run As Administrator”

Fast way to get a Server 2008 R2 machine updated

Lately I’ve been building and dropping dev / test virtual machines at an alarming rate. I prefer not to use images for purity reasons, so I end up installing the OS from scratch then installing all the updates usually before I even join it to the domain.

The single most time consuming process is getting updates installed – both for the time it takes to complete, and the interaction required to see it through to completion. For example, Windows Update offers and enabled IE9 on first update. For some reason, they decided that the IE9 installer must be interactive. Windows update installs the first 80% of the updates, gets to IE9 and sits there waiting for you to click “OK”. Lame.

Another annoyance is that in order to enable Microsoft Update you must first select an update option, which kicks off an update search. Then when you enable MS update, it forces a rescan.

So, here is my procedure for getting a server up to date in as few step as I have found.

  1. After first boot: install your VM tools / drivers. Reboot.
  2. On second boot: Set your timezone, adjust network settings (i.e. disable ipv6 if so desired), enable remote desktop, disable IE ESC, adjust screen resolution. Then:
    1. Install the .NET Framework 3.5.1 under .NET Framework 3.5.1 Features in Server Manager (Note – not the whole feature – this installs IIS and such)
    2. Open IE and download the .NET Framework 4 full web installer (I just search for “.net framework 4 web full” – it is the first result) and run it
    3. Install IE9 (again, search for IE9; make sure you uncheck the box to include Bing)
      Note: these first three are installed first because you will probably need them, and it avoids unnecessary IE8 updates from being installed when you are about to replace it. It also lets you kick off the update and walk away for a while knowing that when you get back they will just be done (instead of waiting for your confirmation)
    4. Open windows update (type “update” in start box), click Change Settings, select Never install updates.
    5. Now you can click the link to enable Microsoft Update – it should go nice and quick and probably will kick off your first update scan
    6. Might as well make sure all the updates are selected (server 2008 r2 doesn’t include the Activation Hardening update that Windows 7 gets, and I usually hide)
    7. Install updates. Will take at least 20 minutes. Reboot
  3. On third boot: Don’t trust windows update, force an update check. It will find more, including some .NET 4 updates that take FOREVER to install. If the updates do not demand a reboot, run another update check, install. reboot as necessary, repeat until it finds no more updates.

It still takes way too long, but it shaves a few minutes / reboots off the update process.


Yes, I know this could be done once, the install sysprepped then imaged. Trouble is, I don’t have a decent disk imager other than Windows Server Backup, and you cannot sysprep before running WSB. Also, I don’t always use the same size drive.

Disable Java Update using Group Policy

The Java Updater is horrible.

  1. It throws up a UAC prompt without warning / explanation / asking first
  2. It doesn’t work half the time
  3. It installs the Ask toolbar if your aren’t careful to opt out

Even though Java needs to be kept up to date, we simply cannot have users being harassed by a utility that doesn’t work, then installs crapware when it does.

Turning off the Updater is as simple as setting a registry value – the catch is that most instructions online do not account for 64-bit windows.

The registry item on a 32-bit machine is a DWORD in the key HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Java Update\Policy called EnableJavaUpdate. Set it to 0.
On a 64-bit machine, it could be in the previous location, and/or it could be in HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\JavaSoft\Java Update\Policy


The way I chose to do it was with Machine Group Policy Preferences – Registry items. I use Item-level targeting to make sure the values exist before updating them.

This is a screenshot of the Registry items – showing where to place the Item-level targeting, and what settings to use

(The main reason for the targeting is to prevent it from creating the Wow6432Node on 32-bit machines)