The installation process fails when you try to install Microsoft Data Access Components 2.8 by using a Windows Installer package on Windows 2000 (842921)



The information in this article applies to:

  • Microsoft Data Access Components 2.8

SUMMARY

The installation process of Microsoft Data Access Components (MDAC) 2.8 fails when you install MDAC by using a Microsoft Windows Installer package.

The MDAC installer starts the Secedit.exe file that modifies the permission on the registry subkey. Because the Windows Installer service runs under reduced permissions, Secedit.exe cannot modify the registry subkey and the installation fails.

To work around this problem, you have to modify the Windows Installer package by using the Orca database editor.

SYMPTOMS

When you run the MDAC 2.8 installer (Mdac_typ.exe) by using a Windows Installer package, the installation process fails at the end, and then Windows Installer rolls back your computer's configuration. When this behavior occurs, the following error message is logged in the Dasetup log file:
Error: The following error was encountered during setup: *** (null): Unspecified error (Severity: 100, Type: 2, Code: 0x80004005)
Additionally, the following error message is logged in the Bidintrx log file:
Error 1300: Not all privileges referenced are assigned to the caller. Error adjusting privilege SE_SECURITY_PRIVILEGE.
Note The Dasetup log file is located in the %WINDIR% folder. The Bidintrx log file is located in the %WINDIR%\Inf folder.

back to the top

CAUSE

When you install MDAC 2.8 on a computer that is running Microsoft Windows 2000, the MDAC installer runs the Secedit.exe file. The Secedit.exe file modifies the permissions on the following registry subkey:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\BidInterface

The Secedit.exe file runs at the end of the installation process. Because the Windows Installer service runs under reduced user rights, the permissions for the registry subkey cannot be modified, and the Secedit.exe file returns an error. This error causes the MDAC installer to fail.

back to the top

WORKAROUND

To avoid this behavior, modify the Windows Installer package (.msi) file by using the Orca database editor. Add a custom action, and then run the custom action from your Windows Installer package. This workaround prevents the call to the Secedit.exe file.

Additionally, modify the Windows Installer package so that the package will modify the permissions for the BidInterface subkey in the registry.

Important The custom action that you add to the Windows Installer package in this workaround runs a function from a DLL that is available in the Microsoft Download Center.

The following file is available for download from the Microsoft Download Center:
For additional information about how to download Microsoft Support files, click the following article number to view the article in the Microsoft Knowledge Base:

119591 How to obtain Microsoft support files from online services

Microsoft scanned this file for viruses. Microsoft used the most current virus-detection software that was available on the date that the file was posted. The file is stored on security-enhanced servers that help to prevent any unauthorized changes to the file.

back to the top

Install the Orca database editor

  1. Download and then install Microsoft Windows Installer Software Development Kit (SDK) on your computer. To do this, visit the following Microsoft Web site:
  2. In the InstalledPath\bin folder on your computer, double-click the Orca.msi file to install the Orca database editor.

    Note InstalledPath is a placeholder for the path where Windows Installer SDK is installed.
back to the top

Steps to modify the Windows Installer package by using the Orca database editor

Open the Windows Installer file in the Orca database editor

  1. Click Start, point to Programs, and then click Orca.
  2. On the File menu, click Open. The Open dialog box appears.
  3. Locate the Windows Installer file that you want to edit, and then click Open. The tables in the Windows Installer file are listed in the left pane of the Orca database editor.

Modify the Binary table

  1. In the left pane of the Orca database editor, locate and then click the Binary table.
  2. On the Tables menu, click Add Row. The Add Row dialog box appears.
  3. In the Name - String[72], Required box, type MDAC28Win2KFix.
  4. In the Data - Binary (enter filename), Required box, type Path\MDAC28Win2KFix.dll.

    Note Path is a placeholder for the path where the MDAC28Win2KFix.dll file is located on your computer.
  5. Click OK.

Modify the CustomAction table

  1. In the left pane of the Orca database editor, locate and then click the CustomAction table.
  2. Add a row to the CustomAction table. To do this, follow these steps:
    1. On the Tables menu, click Add Row. The Add Row dialog box appears.
    2. In the Action - String[72], Required box, type CA_MDAC28Win2KFix.
    3. In the Type - Short, Required box, type 1.
    4. In the Source - String[72] box, type MDAC28Win2KFix .
    5. In the Target - String[255] box, type MDAC28Win2KInstallerFix .
    6. Click OK.

Save the value for the Component_ column

  1. In the left pane of the Orca database editor, locate and then click the File table.
  2. In the Component_ column, note the value for the row that has MDAC_TYP.EXE in the FileName column. For example, the value may be the following:

    C__61BBEFDF420241EC8989AF0B9BD76A7C)

Modify the InstallExecuteSequence table

  1. In the left pane of the Orca database editor, locate and then click the InstallExecuteSequence table.
  2. In the right pane of the Orca database editor, locate the row that contains the condition that corresponds to the value that you noted in step 2 of the "Save the value for the Component_ column" section. For example, the condition may be the following:

    $C__61BBEFDF420241EC8989AF0B9BD76A7C>2)

    Note the value in the Sequence column for this row. For example, the value may be the following:

    5999

  3. Add a row to the InstallExecuteSequence table. To do this, follow these steps:
    1. On the Tables menu, click Add Row. The Add Row dialog box appears.
    2. In the Action - String[72], Required box, type CA_MDAC28Win2KFix.
    3. In the Condition - String[255] box, type (VersionNT=500) And (Not Installed).
    4. In the Sequence - Short box, type SequenceNumber.

      Note SequenceNumber is a placeholder for the actual sequence number that must be entered in the Sequence box. This sequence number must be just one less than the sequence number that you noted in step 2. For example, type the following:

      5998

    5. Click OK.

Modify the Registry table

  1. In the left pane of the Orca database editor, locate and then click the Registry table.
  2. Add a row to the Registry table. To do this, follow these steps:
    1. On the Tables menu, click Add Row. The Add Row dialog box appears.
    2. In the Registry - String[72], Required box, type BidInterface.
    3. In the Root - Short, Required box, type 2.
    4. In the Key - Localizable String[255], Required box, type SOFTWARE\Microsoft\BidInterface.
    5. In the Name - Localizable String[255] box, type +.
    6. In the Component_ - String[72], Required box, type ComponentID.

      Note ComponentID is a placeholder for the value that you noted in step 2 of the "Save the value for the Component_ column" section. For example, the value may be the following:

      C__61BBEFDF420241EC8989AF0B9BD76A7C)

    7. Click OK.

Modify the LockPermissions table

To modify the LockPermissions table, you must add four rows to the table. To do this, follow these steps:
  1. Add the first row:
    1. In the left pane of the Orca database editor, locate and then click the LockPermissions table.
    2. On the Tables menu, click Add Row. The Add Row dialog box appears.
    3. In the LockObject - String[72], Required box, type BidInterface.
    4. In the Table - String[32], Required box, type Registry.
    5. In the User - String[255], Required box, type Users.
    6. In the Permission - Long box, type 131097.
    7. Click OK.
  2. Add the second row:
    1. On the Tables menu, click Add Row. The Add Row dialog box appears.
    2. In the LockObject - String[72], Required box, type BidInterface.
    3. In the Table - String[32], Required box, type Registry.
    4. In the User - String[255], Required box, type Power Users.
    5. In the Permission - Long box, type 131097.
    6. Click OK.
  3. Add the third row:
    1. On the Tables menu, click Add Row. The Add Row dialog box appears.
    2. In the LockObject - String[72], Required box, type BidInterface.
    3. In the Table - String[32], Required box, type Registry.
    4. In the User - String[255], Required box, type Administrators.
    5. In the Permission - Long box, type 268435456.
    6. Click OK.
  4. Add the fourth row:
    1. On the Tables menu, click Add Row. The Add Row dialog box appears.
    2. In the LockObject - String[72], Required box, type BidInterface.
    3. In the Table - String[32], Required box, type Registry.
    4. In the User - String[255], Required box, type Creator Owner.
    5. In the Permission - Long box, type 268435456.
    6. Click OK.

Save the modifications that you made to the Windows Installer file, and then run the Windows Installer package

  1. On the File menu, click Save.
  2. On the File menu, click Exit.
  3. Run the Windows Installer package to install MDAC 2.8.
back to the top

STATUS

This behavior is by design.

back to the top

MORE INFORMATION

On computers that are running Microsoft Windows XP and later operating systems, the Secedit.exe file is not called during the installation process for MDAC 2.8. This behavior occurs only on computers that are running Windows 2000.

back to the top

REFERENCES

For more information about how to install MDAC, visit the following Microsoft Web sites: For more information, click the following article number to view the article in the Microsoft Knowledge Base:

828396 Release manifest for MDAC 2.8 (2.80.1022.3)

177514 Installing MDAC/ADO/RDS on Windows NT requires Admin privileges

back to the top

Modification Type:MajorLast Reviewed:8/1/2005
Keywords:kbtshoot kbtable kbSDK kbRegistry kbDLL kbwindowsinstaller kbpermissions kbprb KB842921 kbAudDeveloper