I was helping a customer with a software package installation. The installer package is created by the SageKey Access 2003 packager product. The installer installs the MS Access 2003 runtime, the Access 2003 SP3 update and several other files. It then runs an additional patch to install the latest version of MSCOMCTL.ocx. Microsoft initially released a broken update for MSCOMCTL.ocx. Then subsequently rereleased the update but the rerelease doesn’t fix the broken update, if it was already installed. Fixing the broken update is performed by a .Net 2 process. It’s essentailly a script of a manual process outlined by Microsoft to repair a broken MSCOMCTL.ocx patch.
Upon launching the application, if the broken MSCOMCTL.ocx installation is detected, the same .Net utility that was run in the installer package is run again. This is for situations where an update was performed, instead of the full installation.
I remoted into the user’s computers so I didn’t physically see them and time was of the essence so I wasn’t able to check the specs. There were two computers with the problem and the customer said that they were identical computers. They both ran Windows 7. I saw that one of them was an HP but I don’t know the model. As stated earlier, the application that I’m working on is a Microsoft Access 2003 runtime application. It’s possible that a newer version of MS Office was also installed but this shouldn’t be an issue. Many other computers running this application have another version of MS Office installed and have no issues.
Other machines for other customers are working without issue. This particular customer is an administrator. I don’t know what the state the computer was in when she ran the installer but I found that the correct version of the ocx file existed but it was improperly registered. Upon trying to fix the registry, both manually and by using the .Net utility to fix it, the UAC prompt for an administrator popped up (the prompt didn’t ask for a user name/password because it detected that the user was an administrator). Clicking OK to continue made it appear like everything was running correctly but the end result was that the user didn’t have elevated privileges so the issue was not resolved. Manually attempting to do the same thing didn’t work. Logged in as my customer, I was unable to rename MSCOMCTL.ocx.
The way I worked around this was to turn UAC off. Upon doing so, it was just a matter of running the .Net utility that fixes the errant registry keys. After doing that, I enabled UAC again and everything proceeded to work, like it should.
Has anyone ever seen a situation where an administrative user would receive the correct UAC prompt for an administrative user, no Windows errors are generated (I need to add some additional error handling to my utility) but UAC is not allowing the administrative user to perform administrative tasks, such as renaming files and running regsvr32.exe? Do you know if there is a fix for this situation?