ADMT 3.2: Common Installation Issues

Hello folks, Ned here again. ADMT 3.2 was released a few weeks ago and we have a decent understanding of common installation issues that you might run into. Hopefully this helps you unblock or prevents you from blocking in the first place someday. One of these is headed to a KB near you as it’s too tricky to figure out and people are likely to hit it even when doing everything “right” otherwise.

Onward.

SQL Server 2008 SP1 install returns error "Invoke or BeginInvoke cannot be called on a control unit until the window handle has been created.."

Symptoms

 

ADMT 3.2 requires SQL Server 2005 Express with SP3 or SQL Server Express 2008 with SP1, and when attempting to install ADMT you are given a link to the 2008 version. However, when attempting to install this download on Windows Server 2008 R2, the installation fails with:

"SQL Server Setup Failure.
SQL Server Setup has encountered the following error:
Invoke or BeginInvoke cannot be called on a control unit until the window handle has been created.." image

Cause

 

This error is purely within SQL Express 2008 and is not really to do with ADMT 3.2. The issue is fixed in "Cumulative update package 4 for SQL Server 2008".

Unhelpfully, this error is identified in KB975055 as being only for Windows 7 and that it was fixed by SP1 - both incorrect. The issue does affect Win2008 R2 and is only fixed by the cumulative update.

Resolution

 

Before installing SQL Server Express 2008 with SP1 (which will fail), first install:

Cumulative update package 4 for SQL Server 2008
https://support.microsoft.com/kb/963036

Once this is installed (can even be installed without SQL being installed at all) then you can install SQL Server Express 2008 with SP1 without errors, and then you can install ADMT 3.2 and point to this instance.

More Information

 

It's perfectly alright to instead use SQL Express 2005 SP3 instead of SQL Express 2008 SP1. It will install and run fine on Win2008 R2, and since you are using SQL Express anyway, it's not like you were customizing anything or trying to use existing infrastructure.

ADMT 3.2 install error "admtinst.exe is not a valid Win32 application"

Symptoms

 

When attempting to install ADMT 3.2, you receive error:

“Admtinst.exe is not a valid Win32 application" image

Cause

 

You are attempting to install ADMT 3.2 anywhere but on Windows Server 2008 R2.

Resolution

 

ADMT 3.2 can only be installed on Windows Server 2008 R2. Don’t fight it!

More Information

 

This is by design behavior.

 

ADMT 3.2 install error "The Active Directory Migration Tool v3.1 must be installed on Windows Server 2008."

Symptoms

 

When installing ADMT 3.2, you get error:

“The Active Directory Migration Tool v3.1 must be installed on Windows Server 2008.”

image

Cause

 

You are installing ADMT 3.2 on a Windows 7 computer.

Resolution

 

ADMT 3.2 can only be installed on Windows Server 2008 R2. I really mean it!

More Information

 

Sigh… an old error string got referenced here by mistake. The block is intentional and expected, however. If you try to install on a Windows Server 2008 R2 core server, it will also say “v3.1” incorrectly.

 

ADMT 3.2 error "Unable to connect" when connecting to a remote SQL instance

Symptoms

 

When installing ADMT 3.2 you are prompted with the Database Selection screen:

image

If you enter a remote “server\instance”, the following error is always returned:

"Unable to connect to 'server\instance', please ensure the SQL Server hosting this instance is running and connections can be made to this instance. [DBNETLIB][ConnectionOpen (Connect().]SQL Server does not exist or access denied." image

If you use a local instance of SQL running on the computer, no issues.

Cause

 

The remote instance is running SQL Server Express edition (2005 SP3 or 2008 SP1, it doesn't matter). ADMT is not allowed to connect to remote SQL Express instances. Even if configuration work is done on the Express instance to allow remote connections, the error will then change to:

"The specified instance is hosted on a SQL Server version that is not supported. Use SQL Server 2005 or SQL Server 2008. We recommend you install the latest SQL Server service packs. If you are using SQL Server 2005 Express Edition, you must install SP3 or later. If you are using SQL Server 2008 Express Edition, you must install SP1 or later. Only local installations are supported for SQL Server Express Editions." image

Note: this is the same error you would get trying to use an unsupported version of SQL, such as SQL 2008 R2 or SQL 2000.

Resolution

 

If you want to use multiple ADMT 3.2 consoles to connect to a single remote SQL instance, that instance must be running SQL Server 2005 or 2008, and not an Express edition.

More Information

 

This behavior is by design. The requirement is also documented in the ADMT 3.2 migration guide (https://www.microsoft.com/downloads/details.aspx?familyid=6D710919-1BA5-41CA-B2F3-C11BCB4857AF&displaylang=en), in section "Installing ADMT v3.2":

ADMT v3.2 requires a preconfigured instance of SQL Server for its underlying data store. You should use SQL Server Express. When you use one of the following versions of SQL Server Express, ADMT installation enforces the following service pack requirements:
SQL Server 2005 Express must be installed with Service Pack 3 (SP3) or later.
SQL Server 2008 Express must be installed with Service Pack 1 (SP1) or later.
Note
If you use SQL Server Express, the ADMT console must be installed and run locally on the server that hosts the SQL Server Express database instance.
As an option, you can use full versions of SQL Server 2005 or SQL Server 2008. In this case, you can install and run the ADMT console on a remote computer, and you can run multiple ADMT consoles on different remote computers. If you use a full version of SQL Server, ADMT installation does not enforce any service pack requirements.

 

ADMT 3.2 installation incomplete, console error "cannot open database "ADMT" requested by the login"

Symptoms

 

When installing ADMT 3.2 on a Windows Server 2008 R2 domain controller and using a SQL Express 2008 with SP1 instance, the installation completes without errors.

However, the “Active Directory Migration tool Installation Wizard” completion screen (like below) is not shown:

image

Instead, the completion screen is blank (like below):

image

When then attempting to run the ADMT console, you receive error:

"Active Directory Migration Tool
Unable to check for failed actions. :DBManager.IManageDB.1 : Cannot open database "ADMT" requested by the login. The logon failed."

image

The MMC console then displays:

"MMC could not create the snap-in.
MMC could not create the snap-in. The snap-in might not have been installed correctly.
Name: Active Directory Migration Tool
CLSID: {E1975D70-3F8E-11D3-99EE-00C04F39BD92}"

image

On Windows Server 2008 R2 member servers there are no issues. When using SQL Express 2005 SP3 there are no issues on DC's or member servers.

Cause

A code defect in ADMT's interoperability with SQL Express 2008 SP1 on DC's where the expected "SQLServerMSSQLUser$ComputerName$InstanceName" group is not created. This is required by ADMT to configure specific permissions during the ADMT install and allows the ADMT database to be created in the SQL instance. ADMT does not expect the group to be missing, which leads to the blank dialog and an incomplete installation.

I also wrote a KB on this and it’s coming soon.

Resolutions

Workaround 1:

The standard practice is to install ADMT on a member computer in the target domain. Install SQL Express 2008 SP1 on a Windows 2008 R2 member server in the target domain and then install ADMT 3.2 onto that same member server.

Workaround 2:

If you have a requirement to install ADMT 3.2 on a domain controller in order to use command-line or scripted user migrations with SID History, install SQL 2008 SP1 (non-Express edition) on a Windows Server 2008 R2 member server in the target domain and select that remote instance when installing ADMT 3.2 on the DC. Alternatively, you can install SQL Express 2005 SP3 on the DC.

Workaround 3:

If you have a requirement to install ADMT 3.2 and SQL Express 2008 SP1 on the same DC, use the following steps on target domain DC:

  1. Install Cumulative Update Package 4 for SQL Server 2008 on the DC - https://support.microsoft.com/kb/963036.
  2. Install SQL Express 2008 SP1 on the DC - https://www.microsoft.com/downloads/details.aspx?FamilyID=01af61e6-2f63-4291-bcad-fd500f6027ff&displaylang=en. Note the SQL Instance name created during the install (default is SQLEXPRESS).
  3. Create a domain local group with the format of "SQLServerMSSQLUser$ <DCComputerName> $ <InstanceName>". For example, if the DC is named "DC1" and the SQL instance was "SQLEXPRESS" you would run the following command in an admin-elevated CMD prompt:NET LOCALGROUP SQLServerMSSQLUser$DC1$SQLEXPRESS /ADD
  4. Retrieve the SQL service SID by using the SC.EXE command with the name of the SQL service instance. For example, if the SQL instance was "SQLEXPRESS" you would run the following command in an admin-elevated CMD prompt and note the returned SERVICE SID value:SC SHOWSID MSSQL$SQLEXPRESS
  5. In the Windows directory, create the "ADMT" subfolderfolder and a further subfolder of "Data". For example you would run the following command in an admin-elevated CMD prompt:MD %SystemRoot%\ADMT\Data
  6. Using the SID retrieved in Step 4, set FULL CONTROL permissions on the %SystemRoot%\ADMT\Data folder. For example, if the SID returned in Step 4 was "S-1-5-80-3880006512-4290199581-3569869737-363123133" you would run the following command in an admin-elevated CMD prompt:ICACLS %systemroot%\ADMT\Data /grant *S-1-5-80-3880006512-4290199581-3569869737-363123133:F
  7. Install ADMT 3.2 on the DC while selecting the local SQL Express 2008 instance.

Wrap Up

That’s everything we’re aware of currently. Like I said above, I have a KB coming shortly for the last issue mentioned, but it’s basically a copy of the above without pretty pictures. The ADMT migration guide will also be updated and (for the short term) the FWLINK that ADMT 3.2 points to when it sends you to a SQL install is going to be sending people to SQL Express 2005 SP3.

- Ned “admit!” Pyle