Yesterday I wanted to run the excellent F-Secure Health Check web application on my gaming computer. The health check only runs in Internet Explorer, but I don’t use IE if I can avoid it and apparently I had no Flash Player working with Internet Explorer 7. When I tried to install the Flash Player from Adobe’s web site, it failed no matter how much I fiddled with the IE security settings. I found a stand-alone Flash installer on Adobe’s web site and when I ran that installer it failed at “Registering flash9e.ocx”. Registering means OLE/COM/ActiveX stuff, wonderful!
The flash9e.ocx file was nowhere to be found after I closed the installer, but when I ran it again and the error message above was shown the file was available in the directory c:windowssystem32macromed. I ran regsvr32 c:windowssystem32macromedflash9e.ocx and got error code 80070005, meaning “access denied”. Access to what? The registry maybe?
I downloaded and started RegMon with the string regsvr32 and errors only as log filters, ran the installer again and discovered a couple of registry entries that caused access denied errors. The first one was HKEY_CLASSES_ROOTFlashFactory.FlashFactory and that led me to a helpful message in a thread called cannot install flash ActiveX in the Flash Player forums. A number of registry keys for Flash were obviously owned by a different user account and with the instructions from the message I could start the tedious job of removing the registry keys. After going through all clicks for removing a few keys I tried to think of a simpler way.
My gaming computer has two user accounts apart from the Administrator, one for myself and one for my wife. All of these accounts are members of the Administrators group. I was logged in as my own user so I tried to run the registry editor with the Administrator user account instead, but got access denied too. I had probably installed Flash for my wife at some point, so maybe she owned the registry keys? When I started the registry editor as her user, I could remove the registry keys fine! Wonderful! I had to do another sweep with RegMon before I found all the keys I needed to remove.
I ran the installer as the Administator user so that the registry keys will be owned by that user account and now it installed fine. I ran Internet Explorer as the Administrator user too, but the F-Secure Health Check web site still said it couldn’t find the Flash Player. A after some fiddling with the web installation of the Flash Player I got the health check running! I was too tired to check if Flash worked properly for me and my wife in IE and Firefox after all of this so that might be an exercise for another day.
If I would install or upgrade Flash Player on a multiuser Windows XP machine again, I’ll do it as the Administrator user.
If I had too much time on my hands I would make a program that changed owner of all the relevant registry keys to the Administrators group. Others would have use for it.