Error: The Service Pack cannot be integrated into a destination that also has integrated Software Updates

System Requirements:

  • Windows 2000
  • Windows XP
  • Windows Server 2003

The Problem:

When you attempt to slipstream a service pack into your Windows installation media you receive the following error message:

The Service Pack cannot be integrated into a destination that also has integrated Software Updates.
Consult the Service Pack documentation for more details about supported integration scenarios.

Integration Error

The slipstream integration process subsequently terminates without making changes to your deployment share.

 

More Information:

The redistributable media that you are using has been slipstreamed using QFE updates (not just Service Pack updates but regular patches as well). The Windows Service Pack integrator is unable to adapt to having updates in the install process which would clearly conflict with the new Service Pack version itself (for example you could not apply a RTM or SP1 update to an SP2 install).

To fix the problem, ideally you should attempt to locate a clean installation medium, however if all you have is the QFE integrated disc – such as the ones that Dell ship with many of their own systems.- the following steps will get you around the error.

  1. Open your Deployment share
  2. Open the i386 folder
  3. Delete the directory called:
    SVCPACK
  4. Locate and open the .inf file called:
    SVCPACK.INF
  5. For every .exe referenced in the [SetupHotfixesToRun] section, perform a file search of the i386 directory for the file name (minus the .exe) e.g. Q306676.EXE search for Q306676
  6. Delete any files that come back as a result of the search
  7. Close SVCPACK.INF
  8. Delete SVCPACK.INF

You will now be able to slipstream integrate the Service Pack update.

ADODB.Connection error ‘800a0e7a’ – Provider cannot be found. It may not be properly installed

System Requirements:

  • Windows NT 4.0
  • Windows 2000
  • Windows XP (x86)
  • Windows Server 2003 (x86)
  • Windows Server 2008 (x86)
  • Windows 7 (x86)
  • Windows Server 2003 (x64)
  • Windows Vista (x64)
  • Windows 7 (x64)
  • Windows Server 2008 (x64)
  • Windows Server 2008 R2 (x64)
  • Windows Server 2012 (x64)

The Problem:

When you attempt to connect to a Microsoft Access database using the ODBC provider Microsoft.Jet.OLEDB.4.0 you receive the error message:

ADODB.Connection error ‘800a0e7a’
Provider cannot be found. It may not be properly installed./path/file.asp, line ##

 

More Information:

For x64 Systems:

The Microsoft.Jet.OLEDB.4.0 is only available as a 32-bit (x86) module. In order to use it via IIS you must change the web site to run in a 32-bit application pool.

Under IIS 7.0, 7.5 or 8.0:

  • Assuming that you will not want to use ASP .net, in the IIS console in the Application Pools section, create a no managed code, integrated application pool. If you do want to maintain access to ASP .net, select the framework version you require.
  • Once created, in its advanced settings set “Enable 32-bit Applications” to true
  • In the Basic Settings… for the web site entry you are experiencing the error on, change the Application Pool to the newly created 32-bit pool.
  • Restart the web site

In most cases where the system is running under an x64 architecture, this should fix the problem.

For x86 and x64 Systems:

We had a server down for an entire day because of this one. It was either an attempt to fix a security database fault, or an update from Microsoft Update delivered in the April 2008 patch cycle, but after the reboot for the patches, none of the JET (Access) databases on the particular server, in any IIS web would operate.

I will simply cut to the fix for you in the beginning, to expedite your likely finding of a resolution to this problem. Something had caused the service provider for the Microsoft.Jet.OLEDB.4.0 provider to become unregistered. To fix the problem issue the following command from a Command Prompt or Run:

regsvr32.exe msjetoledb40.dll

You shouldn’t need to reboot to solve the problem, it didn’t in my case. However, if nothing happens do restart before progressing to the next step.

 

Additional Steps: Step 1

Reregister the components from MDAC, JET and ADO in their entirety. Simply copy the below into a BAT file and run it.

:: ADODB.Connection error '800a0e7a'

:: Provider cannot be found. It may not be properly installed.regsvr32.exe cfgmgr32.dll -s

regsvr32.exe cliconfg.dll -s

regsvr32.exe dasetupr.dll -s

regsvr32.exe dbmsgnet.dll -s

regsvr32.exe dbmsrpcn.dll -s

regsvr32.exe dbnetlib.dll -s

regsvr32.exe dbnmpntw.dll -s

regsvr32.exe expsrv.dll -s

regsvr32.exe msadce.dll -s

regsvr32.exe msadcer.dll -s

regsvr32.exe msadcf.dll -s

regsvr32.exe msadcfr.dll -s

regsvr32.exe msadco.dll -s

regsvr32.exe msadcor.dll -s

regsvr32.exe msadcs.dll -s

regsvr32.exe msadds.dll -s

regsvr32.exe msaddsr.dll -s

regsvr32.exe msader15.dll -s

regsvr32.exe msado15.dll -s

regsvr32.exe msadomd.dll -s

regsvr32.exe msador15.dll -s

regsvr32.exe msADOX.dll -s

regsvr32.exe msadrh15.dll -s

regsvr32.exe mscpxl32.dll -s

regsvr32.exe msdadc.dll -s

regsvr32.exe msdadiag.dll -s

regsvr32.exe msdaenum.dll -s

regsvr32.exe msdaer.dll -s

regsvr32.exe msdaora.dll -s

regsvr32.exe msdaorar.dll -s

regsvr32.exe MSDAOSP.dll -s

regsvr32.exe msdaprsr.dll -s

regsvr32.exe msdaprst.dll -s

regsvr32.exe msdaps.dll -s

regsvr32.exe msdarem.dll -s

regsvr32.exe msdaremr.dll -s

regsvr32.exe msdart.dll -s

regsvr32.exe msdasc.dll -s

regsvr32.exe msdasql.dll -s

regsvr32.exe msdasqlr.dll -s

regsvr32.exe msdatl3.dll -s

regsvr32.exe msdatt.dll -s

regsvr32.exe msdaurl.dll -s

regsvr32.exe msdfmap.dll -s

regsvr32.exe msjro.dll -s

regsvr32.exe msjtes40.dll -s

regsvr32.exe msorc32r.dll -s

regsvr32.exe msorcl32.dll -s

regsvr32.exe msvcirt.dll -s

regsvr32.exe msvcrt.dll -s

regsvr32.exe mswdat10.dll -s

regsvr32.exe mswstr10.dll -s

regsvr32.exe msxactps.dll -s

regsvr32.exe msxml3.dll -s

regsvr32.exe msxml3a.dll -s

regsvr32.exe msxml3r.dll -s

regsvr32.exe mtxdm.dll -s

regsvr32.exe mtxoci.dll -s

regsvr32.exe odbc16gt.dll -s

regsvr32.exe ODBC32.dll -s

regsvr32.exe ODBC32GT.dll -s

regsvr32.exe odbcbcp.dll -s

regsvr32.exe odbcconf.dll -s

regsvr32.exe ODBCCP32.dll -s

regsvr32.exe ODBCCR32.dll -s

regsvr32.exe ODBCCU32.dll -s

regsvr32.exe ODBCINT.dll -s

regsvr32.exe ODBCTRAC.dll -s

regsvr32.exe oledb32.dll -s

regsvr32.exe oledb32a.dll -s

regsvr32.exe oledb32r.dll -s

regsvr32.exe setupapi.dll -s

regsvr32.exe sqloledb.dll -s

regsvr32.exe sqlsrv32.dll -s

regsvr32.exe sqlunirl.dll -s

regsvr32.exe sqlxmlx.dll -s

regsvr32.exe vbajet32.dll -s:: OLEdB

regsvr32.exe %SystemRoot%\System32\msjetoledb40.dll:: Jet

regsvr32.exe %SystemDrive%\Program Files\Common Files\Microsoft Shared\DAOdao360.dll -s

regsvr32.exe %SystemRoot%\System32\expsrv.dll -s

regsvr32.exe %SystemRoot%\System32\msexch40.dll -s

regsvr32.exe %SystemRoot%\System32\msexcl40.dll -s

regsvr32.exe %SystemRoot%\System32\jet500.dll -s

regsvr32.exe %SystemRoot%\System32\msjet35.dll -s

regsvr32.exe %SystemRoot%\System32\msjet40.dll -s

regsvr32.exe %SystemRoot%\System32\msjetol1.dll -s

regsvr32.exe %SystemRoot%\System32\msjint40.dll -s

regsvr32.exe %SystemRoot%\System32\msjter40.dll -s

regsvr32.exe %SystemRoot%\System32\msjtes40.dll -s

regsvr32.exe %SystemRoot%\System32\msltus40.dll -s

regsvr32.exe %SystemRoot%\System32\mspbde40.dll -s

regsvr32.exe %SystemRoot%\System32\msrd2x40.dll -s

regsvr32.exe %SystemRoot%\System32\msrd3x40.dll -s

regsvr32.exe %SystemRoot%\System32\msrepl40.dll -s

regsvr32.exe %SystemRoot%\System32\mstext40.dll -s

regsvr32.exe %SystemRoot%\System32\mswdat10.dll -s

regsvr32.exe %SystemRoot%\System32\mswstr10.dll -s

regsvr32.exe %SystemRoot%\System32\msxbde40.dll -s

regsvr32.exe %SystemRoot%\System32\spmsg.dll -s

regsvr32.exe %SystemRoot%\System32\vbajet32.dll -s

:: ADO
regsvr32.exe %SystemDrive%\Program Files\Common Files\System\ado\msader15.dll -s
regsvr32.exe %SystemDrive%\Program Files\Common Files\System\ado\msado15.dll -s
regsvr32.exe %SystemDrive%\Program Files\Common Files\System\ado\msadomd.dll -s
regsvr32.exe %SystemDrive%\Program Files\Common Files\System\ado\msador15.dll -s
regsvr32.exe %SystemDrive%\Program Files\Common Files\System\ado\msadox.dll -s
regsvr32.exe %SystemDrive%\Program Files\Common Files\System\ado\msadrh15.dll -s
regsvr32.exe %SystemDrive%\Program Files\Common Files\System\ado\msjro.dll -s

Additional Steps: Step 2

Reinstall MDAC 2.8 SP1 (Windows XP SP1 or below only). You will need to perform some registry modifications before you can reinstall MDAC as it is a protected system module.

  1. Open Regedit
  2. Navigate to:
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\ExceptionComponents
  3. Look through each class ID for the following friendly name values. Delete the Class ID containing the matching friendly names:
    Microsoft MDAC Response Files
    Microsoft MDAC Setup Files
    Microsoft SQL Server ODBC Drivers
    Microsoft SQL Server Net Libs
    Microsoft SQL Server OLEDB Provider
    WebData Setup Exception Package
    Mdac 2.8 Exception Package
  4. Download and reinstall MDAC 2.8 SP1 from Microsoft which should reinstall in full.

Cannot unhide systems files under Windows 2000, XP, 2003 or Vista

System Requirements:

  • Windows 2000, XP, 2003, Vista

The Problem:

When attempting to show hidden files in the Windows Folder Options settings window, the bivariate “So not show hidden files and folders” / “Show hidden files and folders” radio buttons do not have a pre-selected value.

Optionless Radio Buttons

No matter which of the options you chose your system will not display hidden files through Windows Explorer, and will not save the “Show hidden files and folders” setting.

More Info:

This is invariably caused by a virus infection or spyware such as (but by no means exclusive to) W32/DKR.worm.

You need to ensure that you have fully disinfected your system using AntiVirus and AntiSpyware software before making the changes to restore the functionality of the Folder Options applet. Otherwise you are frankly wasting your time by troubleshooting the problem.

 

Step 1: Why does it do it?

The virus will have modified the default property value of the registry flag responsible for specifying your preference. While Windows Explorer expects to be able to set a DWORD type for the value, the Virus will have changed the registry type to a Reg_SZ, meaning that the system is unable to read to or write to the value – hence you are unable to save your preference change after you have removed the virus from your system.

Note: If you have not removed the virus from your system then there is good reason to believe that the virus itself is preventing you from making any such that so as to prevent its own demise.

Open regedit and navigate to:

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced

Incorrect (Left) : Correct (Right)

Delete the REG_SZ named Hidden, you do not need to manually recreate the DWORD. Don’t celebrate yet, follow step 2 BEFORE you succumb to the spleen bursting need that you now have to view your hidden files. Otherwise you will be doing step 1 again.

 

Step 2: Repairing the Explorer Default Flag Associations

The virus really did not want you to view hidden files on the PC, so in addition to preventing you from changing the setting, it also ensured that should you attempt to fix the problem, Explorer would simply break the setting itself – thus ensuring that there is no way that Windows Explorer is going to show you hidden files.

Navigate to:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL

Fix Explorer

Note the presence of the REG_SZ Checked value, this should be a DWORD value. Its job is to tell the Explorer form what to do when someone selects the Show hidden files and folders option, and currently it is being told to write a string value, not a DWORD.

Delete the CheckedValue REG_SZ, create a similarly named DWORD and set its value to equal 1 as shown in the image below.

Fixed Values

You can now view your hidden files and folders.

Installing Capita’s SIMS FMS on a Citrix Metaframe server (and having it work)

System Requirements:

  • Citrix
  • Capita’s SIMS
  • FMS for SIMS
  • Windows Server 2003 / Windows Server 2003 R2

The Problem:

Capita’s SIMS, or ‘Schools Information Management System’ is a widely used UK school management application made by the masters of conglomerate outsourcing the Capita group. The propaganda states that it is used by over 22,000 schools here in the UK…

FMS (Financial Management System) is a bursary module for SIMS providing financial support backed by the wider SIMS database sub-system. FMS makes use of its own database environment, separated from the main SIMS data store: should you attempt to install FMS (version less than 6.91) on a Citrix server you are going to run into a no longer working version of FMS.

FMS installation on the Citrix terminal server system renders a mal-configured users session, resulting in a DSN error.

SIMS configuration requires the presence of a User level DSN on the system (At the NTLM SAM level) in order for the client application to make a connection to the database server.

The problem has been diagnosed as three fold:

  1. The FMS installation process is not MSTSC/Citrix compatible and is unable to correctly configure the client system at run-time. The current assumption is that this is due to the use of a pre-windows/very early windows 2000 driver which is certified for NT4 (non-TSE) and not enterprise TS environments (Dated 1999).
  2. The user DSN database setting are not being registered into the default profile on the server and as such no user accounts are receiving the user configuration settings.
  3. The legacy database connectivity driver is unable to automatically register on the system, relying upon the installation process to perform all required integration into the ODBC environment. As the installer is failing, so is the driver registration. This means that the User DSN cannot be created on the TS without intervention.

Lovely problem, terrible system

As you all know, I like a challenge.

FMS makes use of the Borland Desktop Engine, or more accurately the Sybase SQL Anywhere 5.0 DBMS. The version compiled for use by SIMS FMS was compiled way back in 1999 when men were men, terminal server were never used and Windows 2000 was not exactly being used by anyone other than… me.

Here we are in 2007 and trying to push the FMS configuration data off of a standalone workstation and onto a dedicated Citrix server; it wasn’t going to play nicely was it!

FMS will install, but it will never enable you to connect to the database citing connectivity issues.

The Fix:

This problem is squarely due to Capita having never evolved their database components, it isn’t FMS causing the issue, it isn’t Citrix, Windows Server 2003 or SIMS. It’s SQL Anywhere 5.0.

I really would urge you as a School’s administrator to head to Capita at this point and perform a cost / benefit analysis on obtaining FMS 6.91 or higher, which will port your old databases across to a new MS SQL 2005 environment. I guess even Capita realised that they were on borrowed time!

There are two distinct problems that must be solved before you will be able to use FMS over Citrix:

  1. The installation of the SQL Anywhere 5.0 driver set is not designed to run across the Terminal Server Installation Mode. As a direct consequence, once the installation is complete you will be left with the FMS database binary data scattered around your servers hard drive, but it will not be in a state where it is able to do anything! Windows is left oblivious to its presence.
  2. FMS makes use of a Mandatory DNS connection hosted at the user level to initiate connections between the client (on the Citrix server) and the SIMS / FMS database (hopefully stored somewhere other than the Citrix server). The user level DNS is not installed as part of the Citrix install and must be constructed by hand in the required user accounts.

 

Fixing the Sybase SQL Anywhere 5.0 Driver

The failure here is down to the age of the database components being used. Sybase’s developers must have been using legacy design standards and/or cut some corners in the construction of their ODBC driver set because there is not a single component in version 5.0 which is capable of performing and self registration functions under Win32.

The long and short of it is that the entire system had to be pulled to pieces, analysed and a manual driver registration system generated.

You will be pleased to hear that I served my penance, did my good deed for society and the future generation and am offering it up to you here to download.

Download: FMS-Terminal-Server-Hack.zip (2KB)

 

The following steps require that the FMS installation be performed on the TS as far as is permissible before failure.

The steps assume that the default installation paths are used on all components of the database client system.

The following documentation assumes that future connection attempts are being made to the FMS database server using the same database name, conventions and settings as found at the time of writing.

Prerequisites

  1. Ensure that FMS is installed
  2. Ensure that the Sybase SQL Anywhere 5.0 driver components are located on the client at the following location:
    c:\SQLANY50\WIN32
    Note: The default installation for the client software is C:\SQLANY50\win32\. If you have installed the client applications to another location, you must edit the path in the hack file you downloaded above before registering it.
  3. Ensure that you have the DBclient.exe in the above path
  4. Ensure that you have FMS-Terminal-Server-Hack.reg from the zip file accompanying this document
  5. Make any edits to the fie that are required to tailor it to your system (see note above)
  6. Log into the terminal server with Administrative permissions to begin the process

Server configuration

Enter FMS-Terminal-Server-Hack.reg into the Windows registry.
This should be all that is required to configure the server. A reboot should not be necessary.

To validate the reconfiguration

  1. Start > Run > obdcad32.exe > ok
  2. User DSN tab
  3. Add
  4. Scroll to the bottom of the list and verify the presence of: Sybase SQL Anywhere 5.0 version 5.05.04.1980 date 10/08/1999

Client Configuration

The use of a mandatory User DSN means that the DSN must be configured on the client account, not the administrator account as it is not a global configuration setting.

The settings will be replicated to the user account profile.

 

Note: I cannot/will not provide screen shots of the process that follows in the interest of preserving client security. You will need to source the information from a working FMS client system from within your organisation.

 

To add the User DSN by hand:

  1. Start > Run > odbcad32.exe
  2. User DSN tab
  3. Add
  4. Select Sybase SQL Anywhere 5.0 from the bottom of the list, click Finish

Configure the Sybase DSN as follows

  • DSN: SIMS32
  • Description: General
  • User ID: <blank>
  • Password: <blank>
  • Server Name: <YOUR FMS INFO FROM A WORKING CLIENT>
  • Database Name: <YOUR FMS INFO FROM A WORKING CLIENT>
  • Database File: <YOUR FMS INFO FROM A WORKING CLIENT>
    Type: Custom
  • Translator Name: <No Translator>
  • Enable: Microsoft Applications (Keys in SQLStatistics)

Click on the OPTIONS button

  • Start Command: c:\sqlany50\win32\dbclient.exe -ta 600 -x NamedPipes,TCPIP
    Note: Modify the path above to match your Sybase SQL Anywhere 5.0 drive path
  • Database Switches: <blank>
  • Agent: Client
  • Autostop Database: Ticked
  • Isolation Level: <blank>
  • Describe Cursor Behaviour: If Required

Click Ok twice to save the DSN

Run FMS to prove that it works and and publish it into your Citrix environment as to your specific organisational needs.