Lately I've heard a lot of odd noise from tech-industry analysts. Not the kind you tell with one hand hiding your mouth, in the bar after the conference, to strangers you trust completely (worse luck).
The kind that involve normally well-involved, almost too-enthusiastic former engineers and tech marketing people asking why putting a hypervisor designed for a server into a desktop operating system would make any sense at all – let alone make enough sense to someone that Microsoft is pitching it as one of the big selling points for Windows 8.
You don't virtualize desktop or laptop machines, much. You could do it so you could recover your data if you somehow, against all the odds, did something innocuous that caused all your applications to crash every couple of minutes, not usually losing data, but costing you a few minutes of cursing-and-restarting time several times a day.
It turns out, from my own hands-on research, that the best reason to put a hypervisor in Windows 8 is that you could use it to create your "home" PC account a virtual machine.
Then, when, inevitably, a series of routine updates from Microsoft, a couple of patches that fix security holes or improve interoperability within the middleware give all your applications narcolepsy, so they drop off one at a time – so you can't deal with them all at once like when a mob descends in person on the help desk rather than phoning in and waiting their turn – you can beat your laptop to death, then move the "computer" to a different machine, relaunch it, and beat it to death all over again.
I've never been violent toward anyone or anything that didn't try crawl up my leg and bite me (and even those, when they were vaguely human and mostly babies I just picked off like burrs and returned to their cages), but I regularly get almost uncontrollable urges to express my opinion of Microsoft's modular, multilayered operating system and applications – with their maddeningly almost-helpful troubleshooting tools, knowledgebase advice and dismissively banal how-to-fix-an-obvious-user-error advice – with a baseball bat and the remains of hardware I paid for myself.
Normally I wouldn't bother you with my idiot PC problems. You almost certainly have to deal with more than enough of those from your own end users, relatives, friends and (if you play around with as much software and odd experiments as I do to research something you're looking into) your own personal machine.
Routine updates break Win7 middleware connections in ways that are hard to identify
For the last few weeks, my version of Outlook 2007, which was remarkably stable and no more irritating than it ever is for six months or more, started crashing unpredictably, throwing off error messages that said only that it had crashed (thanks!) and that the problem was that it couldn't talk to the module NTDLL.DLL or, sometimes the .NET Framework.
Well, NTDLL.DLL is one of, if not the only, mechanism apps can use to send commands and requests to the core part of the operating system itself. It's the gatekeeper that makes Windows 7 more stable than previous versions of Windows because it rejects obviously stupid requests from applications rather than taking them to heart and suffering itself, rather than letting the apps suffer on their own (Mark that as a life lesson, by the way. As soon as I can get a binary readout of the NTDLL.DLL's version of "talk to the hand" I'm putting it on a T-shirt and wearing it every day. Or maybe a tattoo.")
The reason I thought this was worth bringing up is that Microsoft has been answering questions about this particularly problem – which has affected, variously, Outlook, SQL Server, connections to Exchange servers and various other applications – since 2007.
The good thing about dealing with the same problem for four years without fixing it is that you build up a good case file of solutions.
Earlier answers were just advice on reconfiguring Outlook or Windows to avoid the conflict – though the ones users reported had actually worked were things like turning off the "Ding" sound on reminders about appointments, or telling versions of Outlook that didn't connect to Exchange servers to not automatically try to generate views that are specific to Exchange.
If it were rocket science we'd never have gotten to the moon
There was a solid period through late '07 and '08 when the advice was to uninstall everything, one at a time, starting with add-ins before moving on to Office, the .NET Framework, Windows modules and all the recent updates, using a special tool built for the purpose, then, eventually, your clothing and sanity.
Lots of these things worked for some people on the forums(except the clothing; if you work in IT, look around you and imagine how badly you'd want that not to happen in your office). None worked consistently.
Except, rather than wait for Windows Update, which often wasn't working, the advice was to manually download everything from .NET (versions 1, 1.1, 1.1 SP1, 2.0, 2.0 SP2, 3.0, 3.5, 3.5 SP1 and 4 – be sure you get the right version of each, x86 or 64-bit and whether it's the standalone or Web installer) a new version of the Windows Installation Service and anything else remotely involved with making one bit of Windows talk to another.
The Microsoft FixIT Solutions Center, which I've praised in earlier posts, stood ready to help. Standing was about all it did, though. Lots of scripts seemed perfect for the problems I saw; most said they completed successfully, but didn't make any difference – a very Microsoft result.
Eventually Microsoft apparently figured out that there was a consistent set of errors and put together some automated scripts to deal with them, which it put in its FixIT Center Online.
Theoretically you could download the FixIt appropriate to your machine, run it, and Bob's your uncle (or Bill, or Steve, depending on who was CEO at the time and if Microsoft was still addled enough to name an operating system Bob).
(Ever since I heard it in the very few bits of "comedy" on the late, lamented Benny Hill show, the phrase "Bob's your uncle" never made sense to me, which is why I figured it was appropriate in this description.)
The errors, by the way, showed up under Event IDs 1000, 7000, 7003, 7013 and 643, nearly all of which had to do with starting Microsoft system services that refused to do what they were supposed to when they were supposed to, even when they said they were doing it. They were mainly the services you wouldn't think were that important – TrustedInstaller, Security, Windows Messaging Subsystem, Windows Update – that kind of thing.
Windows isn't a traffic cop for your PC; it's a mob, with communication problems
The problem (as far as I can tell; it's still not clear) turned out to be backward compatibility.
Windows isn't a single operating system any more, it's a series of modules all designed to do different things.
Underlying all or most of them is the .NET Framework, an object-oriented middleware that separates the application layer from the operating system layer.
The increasingly important role of .NET and Metro as middleware were part of my reason for theorizing that, a couple of OS generations from now, Microsoft will be selling an "operating system" that goes with you to whatever machine you're using and is almost completely separated from the portion that actually has to talk to the hardware.
I got part of that theory working; most of the parts of the OS and apps I used were completely separated from the hardware, but not in a useful way.
.NET comes in several layers, all of which are critical to some things, none of which are all coordinated or integrated clearly so that when you have a problem with one version you can identify it quickly and get the rest of the framework to help fix it.
Versions 1 and 1.1 aren't used by Win7 at all. Versions 3 and 3.5 still have some use, but not much and even those don't get along well with the most recent versions.
.NET Framework 4 is the newest, most powerful version, and the one you'd expect to integrate, control or rude herd on the others by making sure they're updated and that the updates don't break anything.
Unfortunately, .NET 4 is a little standoffish toward its more primitive relatives, so Microsoft still updates them (mostly) one at a time and both the code and the updates often conflict, leading to special installation procedures if you're replacing them (in order: 4, 3.5 SP1, 1.1, unless you need version 1.0, in which case you have to go 3.5 SP1, 1.1, 1.0 and then 4. The amount of pain, trial-and-error and persistence needed to figure out and confirm all this are beyond my ken, but apparently are within that of actual Microsoft employee Aaron Stebner, who filed some of the more comprehensive advice, but not all the non-standard solutions that seemed to work for a lot of people.)
Most of the advice had more to do with running Outlook in Safe mode or cleaning out corrupted Views or Rules, which were perfectly valid, but rarely worked for others and certainly didn't for me.
Configuration errors or corrupt files on personal computers weren't causing most of the problems anyway; most appeared to come from conflicts among existing versions of .NET, or updates to one version or another that the rest didn't like.
That's apparently what happened to me.
Simple, comprehensive solutions that make the problem worse
Since it was an update that the OS identifies separately enough that it can be uninstalled later rather than mushing it all into the same code base, the problems should have been fixable by reinstalling a newer version of the framework or uninstalling an update.
Microsoft's advice was all over the place, however, making it hard to identify the problem, find the scripts that should have automated the fixes and, when I did find and run the right FixIt modules, they often refused to believe they were running on the right version of the operating system, or just launched, made their changes, expressed satisfaction at the result, then crashed, leaving me with more of a mess than I started with.
At various times, and through varying eras of advice on how to fix the problems, I reinstalled Office, reinstalled the Windows Installer, reinstalled .NET 4, systematically and singly, with reboots between each, uninstalled and cleaned the registry of .NET 4, 3.5, 3.0, 1.1 and 1.
I also ran chkdsk, sft scannow, replaced the registry Microsoft's troubleshooters said was corrupted by the last clean install of Office with the backup of a directory from before the problem started (which should have fixed everything, but had no effect) uninstalled and reinstalled half a dozen other services, every add-in for any Windows app whether I was using it or not, all the security software, did a repair re-install of Windows itself, reinstalled all the other apps, Windows modules, coffee machines, electric griddles and every other damn thing the laptop had ever run or come in contact with.
I used backups I real-time sync'd onto another partition, onto an external drive and backed up using Acronis backup software with a feature that would launch after the BIOS and before the OS, so you could recover your operating system before it launched with its errors intact to annoy me again.
By late last night, my laptop was a brick.
Acronis mostly did what it was supposed to, but helped brick my laptop by keeping me from booting from the Windows 7 disk, scrubbing the partition and starting over. I had to use a Linux Mint distro I keep on a USB drive to help fix other people's machines without having to learn all the junk that's on them – like opening a bathroom stall by sliding under the door and unlocking it from the inside, rather than trying to pick the lock.
Eventually I did a system restore and a Registry restore separately to get the thing working to the same dysfunctional level it had been before my marathon effort at repairs.
I may beat it to death over the weekend, in which case my blog entries on Monday will be harder to read because they'll be in pencil, scrawled by hand on your monitor screen.