none
Managed installation of SQL Server 2008 R2 Native Client

    Question

  • (Due to the unusual constellation of products involved here, and the fact that the last Windows 7 problem I posted about that peripherally involved SQL server was quickly moved to a SQL Server forum, I've chosen this forum to ask my question).

    I'm required to install the SQL Server 2008 R2 Native Client on several Windows 7 machines in order to support a third-party application (ArcGIS).

    I downloaded the MSI, and can do manual installations without any problem, but I'm running into a problem trying to create a managed install package using Group Policy.   I've done this for all sort of other programs like this.  When the system is rebooted, the group policy applies and the package is assigned to the machine, but the installation fails with the following error message in the Application event log:

    Product: Microsoft SQL Server 2008 R2 Native Client -- The required IACCEPTSQLNCLILICENSETERMS=YES command-line parameter is missing.

    So I opened the MSI in Orca and created a transform adding a string property named IACCEPTSQLNCLILICENSETERMS wth a value of YES to the Proprerty table.   AFAICT, there isn't a way to modify the msiexec command line in the Group Policy Editor, and this is the only way to add properties to a GP package.  

    Unfortunately, deploying the new package with the transform doesn't solve the issue -- the same error message results.

    (In case anyone else is trying this, in order to unassign the package and get it to attempt a reinstall on the next reboot, you need to run the Microsoft Fix It MS provides for this purpose.

    The only thing I can think of at the moment is to create an administrative install point rather than ty to deploy the downloaded MSI directly.


    • Edited by Spencer Simpson Friday, January 11, 2013 4:35 PM remove small tags
    Friday, January 11, 2013 4:34 PM

Answers

  • Hi Spencer,

    Couple of suggestions,

    1) About creation of administrative installation for sqlncli.msi, you are partially right, you will not be prompted for the destination, this is by design.

    However, to create an admin msi all you need to do is, start a command prompt (admin priv), and then the command:

    msiexec /a sqlncli.msi TARGETDIR="C:\admin_sqlncli" /qb!

    This works, I had done this before. But how will an admin msi help you with the installation? You will still have to pass the parameter if you want to install from admin msi as well, isn't it?

    2) I doubt if the transform created will get properly applied, that too by design. I had observed that for many microsoft MSIs, transform wont get applied. To pass the property you must explicitly mention it in the command line along with the msiexec.

    Why dont you edit the MSI file using ORCA, add the property and then save the MSI, rather than creating a transform for it. See if this new msi works.

    Let us know the results! Hope this helps you.

    Cheers!

    Rahul

    Thursday, January 17, 2013 5:38 AM

All replies

  • Hello,

    What about using PowerShell? Use the following two articles to set the installation.

    http://technet.microsoft.com/en-us/library/ee431705(v=WS.10).aspx

    http://sirsql.net/blog/2011/7/18/creating-a-clustered-sql-install-ini-file-using-powershellpa.html

    Regards,

    Alberto Morillo
    SQLCoffee.com

    Friday, January 11, 2013 7:32 PM
    Moderator
  • It looks like I might be able to engineer someting along the lines of that as a workaround, but for goodness' sake, why can't that parameter be specified in a transform file? 
    Friday, January 11, 2013 8:56 PM
  • Just so everyone knows this door is closed, this particular msi doesn't appear to have the ability to create an administrative install point. After typing:

    msiexec.exe /a sqlncli.msi  (don't try it doesn't do anything)

    I received only a "completing the installation" dialog, and was never prompted for the destination location.  This appears to be by design.

    Monday, January 14, 2013 2:44 PM
  • This only means that MS intended that the client be installed directly fom the MSI.   The real question is, of course, why doesn't the transform work, why was the MSI set up so that it wouldn't ever work?   Was it just an oversight?

    Moving on, I'm glad I only had to install this on about 20 computers.  A manual installation on each computer, although inconvenient (especially to my users), wasn't as onerous as it would have been if I'd had to install this on 6,000 computers.



    Tuesday, January 15, 2013 1:28 PM
  • Hi Spencer,

    Couple of suggestions,

    1) About creation of administrative installation for sqlncli.msi, you are partially right, you will not be prompted for the destination, this is by design.

    However, to create an admin msi all you need to do is, start a command prompt (admin priv), and then the command:

    msiexec /a sqlncli.msi TARGETDIR="C:\admin_sqlncli" /qb!

    This works, I had done this before. But how will an admin msi help you with the installation? You will still have to pass the parameter if you want to install from admin msi as well, isn't it?

    2) I doubt if the transform created will get properly applied, that too by design. I had observed that for many microsoft MSIs, transform wont get applied. To pass the property you must explicitly mention it in the command line along with the msiexec.

    Why dont you edit the MSI file using ORCA, add the property and then save the MSI, rather than creating a transform for it. See if this new msi works.

    Let us know the results! Hope this helps you.

    Cheers!

    Rahul

    Thursday, January 17, 2013 5:38 AM
  • Baking the property into the MSI did the trick -- an admin install point was not necessary.  

    FWIW, saving the property into the source MSI and creating an admin install point (which I did as an experiment) carried the property over into the AIP.

    It's still unfortunate that the transform didn't apply the property.  I had been hoping to use a transform as a clear line between the MSI as supplied by the software vendor and the changes I need to make to get the install to work in my company.  

    But now things are murkier -- How does someone down the line tell what's "original" and what's something I customized? What's an "acceptable" change to an install package like this?   I might have used Orca to remove the check entirely -- but this might have caused unforseen consequences and I suspect MS would have viewed that in a dim light.

    And it leaves a more general question open -- why use transforms at all?   Why are properties set in transforms handled differently from properties baked into the MSI?



    Friday, January 18, 2013 1:36 PM
  • I know this is an old post, but I just went through the same process and it took me a while to figure the exact solution for my environment, as there are allot of references and options out there m, but here is what I did:

    Opened the sqlclixxx.msi in ORCA

    scrolled down the left row to table "InstallExecuteSequence" 

    Then found the action: SNAC_IAcceptSQLNCLILicenseTerms

    Changed what ever was in the condition column (a bunch of options, delete them all) to YES

    saved the msi

    from there GPO would deploy with no errors

    Hope this saves some people some time


    Tuesday, April 08, 2014 4:14 AM
  • Did you try setting this in a transform, as opposed to baking it into the MSI?
    Friday, May 30, 2014 2:57 PM