Blog - Title

July, 2010

  • 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
    http://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 (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.
    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 - http://support.microsoft.com/kb/963036.
    2. 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).
    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

  • Reminder: Windows 2000 Support ends July 13 (and other lifecycle stuff for 2003, XP, SfU)

    Ned here again. If you’ve been under a rock for the past year, here it is one more time:

    Windows 2000 support ends on July 13, 2010

    That is just a week from now. For more info on how to upgrade, migrate, and otherwise remove the last traces of Win2000 from your environment, make sure you head here immediately:

    http://support.microsoft.com/win2000

    Other major milestones on July 13th include:

    • Windows Server 2003 enters extended support
    • Windows XP SP2 (i.e. without SP3 installed) support ends
    • Windows Services for UNIX 2.0 support ends

    For more info on what mainstream, extended, and end of support policies mean, make sure you review:

    This is your final warning. The next time I post on this it’s to say goodbye to the venerable operating system that launched Active Directory more than a decade ago.

    - Ned “lonesome trail” Pyle