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.
SQL Server 2008 SP1 install returns error “Invoke or BeginInvoke cannot be called on a control unit until the window handle has been created..”
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..”
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.
Before installing SQL Server Express 2008 with SP1 (which will fail), first install:
Cumulative update package 4 for SQL Server 2008
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.
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”
When attempting to install ADMT 3.2, you receive error:
“Admtinst.exe is not a valid Win32 application”
You are attempting to install ADMT 3.2 anywhere but on Windows Server 2008 R2.
ADMT 3.2 can only be installed on Windows Server 2008 R2. Don’t fight it!
This is by design behavior.
ADMT 3.2 install error “The Active Directory Migration Tool v3.1 must be installed on Windows Server 2008.”
When installing ADMT 3.2, you get error:
“The Active Directory Migration Tool v3.1 must be installed on Windows Server 2008.”
You are installing ADMT 3.2 on a Windows 7 computer.
ADMT 3.2 can only be installed on Windows Server 2008 R2. I really mean it!
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
When installing ADMT 3.2 you are prompted with the Database Selection screen:
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.”
If you use a local instance of SQL running on the computer, no issues.
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.”
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.
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.
This behavior is by design. The requirement is also documented in the ADMT 3.2 migration guide (http://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.
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”
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:
Instead, the completion screen is blank (like below):
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.”
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
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.
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.
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.
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.
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:
- Install Cumulative Update Package 4 for SQL Server 2008 on the DC – http://support.microsoft.com/kb/963036.
- Install SQL Express 2008 SP1 on the DC – http://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).
- 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
- 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
- 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
- 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
- Install ADMT 3.2 on the DC while selecting the local SQL Express 2008 instance.
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