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.
Microsoft repair/support: Still generous with resources and advice, still largely useless
As usual when I manage to dig myself a big hole I figured a way to get out of it, mostly, though with a lot of lost time, effort and physical danger (editors at three different publications are ready to strangle me right now, which is only fair considering how I feel about Windows. Luckily we all work remotely so it's hard for them to get here. I told them I live in Ohio, Iowa/Idaho. To East Coasters for whom Central Pennsylvania is The West, Ohio, Iowa and Idaho not only all sound like the same state, but can be mistaken for the proper name of a town if you say them fast enough. It's a stupid trick but has kept me unchoked up to this point.)
Also as usual I depended heavily on tools and directions from Microsoft and the generous actual expertise in advice from MSPs and other Microsoft product experts on Technet and Microsoft.com support forums. I almost never have to talk to one. All the problems I run into have shown up and (mostly) been solved before.
What those solutions are and how to make sure the solutions fix the problem you have without creating a new one, however, is just as hard as it ever was.
Windows 7 is a lot easier to run and maintain than anything else Microsoft has ever built, but it's just as full of nooks and crannies as any of its other operating systems and, because it's designed to keep more of the nuts and bolts behind the scenes, more complicated to fix once you do get behind the scenes.
With Windows XP if you uninstall a service and scrub it out of the Registry, it's gone. Reinstall and you're golden. With Win7, something of it is left that raises itself like a rotting corpse to create the same problem anew.
"Backward Compatibility" = "not killing off the virus, in case we need it again."
Microsoft has run often enough into the problems I had that it released to the public – not just the certified MSPs and techs who know what they're doing – apps specifically designed to scrub (not just uninstall) each of the different layers of .NET from a PC and do the same for Outlook or Exchange. Everything goes except the mail files, which you can scrub or fix on your own before importing clean versions into a new profile.
The result shouldn't even remember it ever had a problem.
The actual result is a karmic full circle – all the way out on a long, painful journey that, because of your incessant swearing and threats of violence against the inanimate (holding a big magnet in your hand makes those more effective) , the journey eventually returns you to your starting place. Barely functional, crashing every few minutes and forced to go back to Microsoft.com for more advice when you get far enough away from deadline to make sure you stay unchoked when the editors eventually figure out that Ohio, Iowa and Idaho are not only different states, but that I don't live in any of them.
I'm just hoping they don't know how to trace IP addresses and are too afraid of accounting – as all wise people are – to go ask them what my real address is. You have to tell accounting the truth or you won't get your checks, and, they imply heavily, will eventually go to hell.
I suspect that was the real cause of my computer problems; it wasn't sloppy software design, a slipshod approach by the vendor toward frequent patches and updates or the unimaginably complex mesh of interactions among services, apps, drivers, data, executables, large pictures and small rodents that inhabit our miracles of modern computing.
The real cause is that I pissed off the people that cut my checks, who used the direct line all accounting departments have to the karmic backplane of the universe to send me a recurring, humbling little kick in the pants.
Doesn't matter, though. Once I'm done here, this laptop is still going to get it.
Read more of Kevin Fogarty's CoreIT blog and follow the latest IT news at ITworld. Follow Kevin on Twitter at @KevinFogarty. For the latest IT news, analysis and how-tos, follow ITworld on Twitter and Facebook.