2

I am trying to use cChoco module to provision a few packages with Azure Automation DSC on Windows Server 2016 virtual machines (SKU: 2016-Datacenter).

  • Some packages (e.g. vcredist2008, vcredist2010)

    • Chocolatey (called from DSC) installs them successfully
    • Chocolatey (called from CustomScriptExtension) installs them successfully
    • Chocolatey (called from an interactive command prompt) installs them successfully
  • Other packages (e.g. mssqlserver2014express and mssqlservermanagementstudio2014express)

    • Chocolatey (called from DSC)

      • fails to install them

      • the direct cause seems to be indicated by the error message "The system cannot find the file specified" for C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe;

    • Chocolatey (called from CustomScriptExtension)

      • fails to install them

      • again, the direct cause seems to be indicated by the error message "The system cannot find the file specified" for the same file as above;

    • Chocolatey (called from an interactive command prompt)

      • installs them successfully

The last action suggests a difference between and interactive session and the environment of DSC (or CustomScriptExtension), however the error message itself doesn't clearly indicate the direct reason.


Question:

What exactly could be the reason for these MSSQL Express-related packages (not all packages) to fail?

Is there any way (e.g. parameter, configuration setting) to enable these packages to be installed?


Details:

For the CustomScriptExtension (fail) and interactive command prompt (success), I used the following call (from the PowerShell script):

choco install -y mssqlservermanagementstudio2014express

For Azure Automation DSC, I have the following tasks in the configuration file (an excerpt):

cChocoPackageInstaller installVCRedist201WithChoco
{
    Name                 = 'vcredist2010'
    Ensure               = 'Present'
    DependsOn            = '[cChocoInstaller]installChoco'
}

cChocoPackageInstaller installmssqlservermanagementstudio2014express
{
    Name                 = 'mssqlservermanagementstudio2014express'
    Ensure               = 'Present'
    DependsOn            = '[cChocoInstaller]installChoco'
}

The machine is clean and vcredist2010 installs fine, however mssqlservermanagementstudio2014express fails with the following error:

2016-11-22 08:19:34,256 [INFO ] - Downloading MsSqlServerManagementStudio2014Express 64 bit
  from 'https://download.microsoft.com/download/2/A/5/2A5260C3-4143-47D8-9823-E91BB0121F94/SQLManagementStudio_x64_ENU.exe'
2016-11-22 08:20:43,755 [INFO ] -
2016-11-22 08:20:44,986 [INFO ] - Download of SQLManagementStudio.exe (850.63 MB) completed.
2016-11-22 08:22:54,657 [INFO ] - C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio.exe
2016-11-22 08:22:54,922 [INFO ] - Extracting...
2016-11-22 08:23:01,164 [INFO ] - Installing...
2016-11-22 08:23:01,745 [INFO ] - Installing MsSqlServerManagementStudio2014Express...
2016-11-22 08:23:03,311 [WARN ] - WARNING: Unable to generate 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe.ignore'
2016-11-22 08:23:03,999 [WARN ] - WARNING: May not be able to find 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe'. Please use full path for executables.
2016-11-22 08:23:05,250 [ERROR] - ERROR: Exception calling "Start" with "0" argument(s): "The system cannot find the file specified"
2016-11-22 08:23:07,903 [ERROR] - The install of mssqlservermanagementstudio2014express was NOT successful.
2016-11-22 08:23:07,950 [ERROR] - Error while running 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1'.
 See log for details.
2016-11-22 08:23:10,208 [WARN ] -
Chocolatey installed 1/2 packages. 1 packages failed.
 See the log for details (c:\choco\logs\chocolatey.log).
2016-11-22 08:23:10,275 [INFO ] -
2016-11-22 08:23:10,321 [ERROR] - Failures
2016-11-22 08:23:10,364 [ERROR] -  - mssqlservermanagementstudio2014express (exited -1) - Error while running 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1'.
 See log for details.

The log file contains:

2016-11-22 08:23:01,164 [INFO ] - Installing...
2016-11-22 08:23:01,665 [DEBUG] - Running Install-ChocolateyInstallPackage -validExitCodes '0 3010' -packageName 'MsSqlServerManagementStudio2014Express' -fileType 'EXE' -silentArgs '/IACCEPTSQLSERVERLICENSETERMS /Q /ACTION=install /UPDATEENABLED=FALSE' -file 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe' 
2016-11-22 08:23:01,745 [INFO ] - Installing MsSqlServerManagementStudio2014Express...
2016-11-22 08:23:03,311 [WARN ] - WARNING: Unable to generate 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe.ignore'
2016-11-22 08:23:03,734 [DEBUG] - Running Start-ChocolateyProcessAsAdmin -validExitCodes '0 3010' -workingDirectory 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio' -statements '/IACCEPTSQLSERVERLICENSETERMS /Q /ACTION=install /UPDATEENABLED=FALSE ' -exeToRun 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe' 
2016-11-22 08:23:03,953 [DEBUG] - Elevating Permissions and running ["C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe" /IACCEPTSQLSERVERLICENSETERMS /Q /ACTION=install /UPDATEENABLED=FALSE ]. This may take a while, depending on the statements.
2016-11-22 08:23:03,999 [WARN ] - WARNING: May not be able to find 'C:\Windows\TEMP\chocolatey\chocolatey\MsSqlServerManagementStudio2014Express\SQLManagementStudio\setup.exe'. Please use full path for executables.
2016-11-22 08:23:04,781 [DEBUG] - Setting RunAs for elevation
2016-11-22 08:23:05,250 [ERROR] - ERROR: Exception calling "Start" with "0" argument(s): "The system cannot find the file specified"
2016-11-22 08:23:05,509 [DEBUG] - Built-in PowerShell host called with ['[System.Threading.Thread]::CurrentThread.CurrentCulture = '';[System.Threading.Thread]::CurrentThread.CurrentUICulture = ''; & import-module -name 'c:\choco\helpers\chocolateyInstaller.psm1'; & 'c:\choco\helpers\chocolateyScriptRunner.ps1' -packageScript 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1' -installArguments '' -packageParameters '''] exited with '-1'.
2016-11-22 08:23:05,557 [DEBUG] - Calling command ['"C:\Windows\System32\shutdown.exe" /a']
2016-11-22 08:23:07,369 [DEBUG] - Command ['"C:\Windows\System32\shutdown.exe" /a'] exited with '1116'
2016-11-22 08:23:07,385 [DEBUG] - Capturing package files in 'c:\choco\lib\MsSqlServerManagementStudio2014Express'
2016-11-22 08:23:07,432 [DEBUG] -  Found 'c:\choco\lib\MsSqlServerManagementStudio2014Express\MsSqlServerManagementStudio2014Express.nupkg'
  with checksum 'AD996F040E8828374737D274BC5EF15D'
2016-11-22 08:23:07,573 [DEBUG] -  Found 'c:\choco\lib\MsSqlServerManagementStudio2014Express\MsSqlServerManagementStudio2014Express.nuspec'
  with checksum 'D7BE143BDF795902EAEE640DFCE85D15'
2016-11-22 08:23:07,619 [DEBUG] -  Found 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1'
  with checksum 'E60A57F683AB9A3A4D9C28ED78E09081'
2016-11-22 08:23:07,650 [DEBUG] -  Found 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyUninstall.ps1'
  with checksum '4F30E08CD2C8D4E13C3AE84AA94FBE00'
2016-11-22 08:23:07,682 [DEBUG] - Attempting to create directory "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110".
2016-11-22 08:23:07,749 [DEBUG] - Attempting to copy "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110\.files.update"
 to "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110\.files".
2016-11-22 08:23:07,838 [DEBUG] - Attempting to delete file "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110\.files.update".
2016-11-22 08:23:07,854 [DEBUG] - Attempting to delete file "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110\.sxs".
2016-11-22 08:23:07,871 [DEBUG] - Attempting to delete file "c:\choco\.chocolatey\MsSqlServerManagementStudio2014Express.12.2.5000.20161110\.pin".
2016-11-22 08:23:07,885 [DEBUG] - Sending message 'HandlePackageResultCompletedMessage' out if there are subscribers...
2016-11-22 08:23:07,903 [ERROR] - The install of mssqlservermanagementstudio2014express was NOT successful.
2016-11-22 08:23:07,950 [ERROR] - Error while running 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1'.
 See log for details.
2016-11-22 08:23:07,994 [DEBUG] - Moving 'c:\choco\lib\MsSqlServerManagementStudio2014Express'
 to 'c:\choco\lib-bad\MsSqlServerManagementStudio2014Express'
2016-11-22 08:23:10,053 [DEBUG] - Attempting to delete file "C:\Windows\system32\config\systemprofile\AppData\Local\NuGet\Cache\MsSqlServerManagementStudio2014Express.12.2.5000.20161110.nupkg".
2016-11-22 08:23:10,208 [WARN ] - 
Chocolatey installed 1/2 packages. 1 packages failed.
 See the log for details (c:\choco\logs\chocolatey.log).
2016-11-22 08:23:10,275 [INFO ] - 
2016-11-22 08:23:10,321 [ERROR] - Failures
2016-11-22 08:23:10,364 [ERROR] -  - mssqlservermanagementstudio2014express (exited -1) - Error while running 'c:\choco\lib\MsSqlServerManagementStudio2014Express\tools\ChocolateyInstall.ps1'.
 See log for details.
2016-11-22 08:23:10,396 [DEBUG] - Sending message 'PostRunMessage' out if there are subscribers...
2016-11-22 08:23:10,431 [DEBUG] - Exiting with -1
techraf
  • 4,243
  • 8
  • 29
  • 44

1 Answers1

0

Late to the party but because I experienced this issue (albeit in a newer version of SQL Server Express), I found (with procmon) that there was an additional logfile created in C:\Windows\temp\chocolatey, in my case called SQLEXPR_decompression_log.txt. The SQLEXPR installer refuses to expand the installer from a system folder:

[2020-01-30T10:27:15.014+10:00]: === Logging started: 2020/01/30 10:27:15 ===
[2020-01-30T10:27:15.014+10:00]: Executable: C:\Windows\TEMP\chocolatey\sql-server-express\2017.20190916\SQLEXPR.exe v14.0.1000.169
[2020-01-30T10:27:15.014+10:00]: Computer  : BA-MD-2
[2020-01-30T10:27:15.014+10:00]: --- logging level: standard ---
[2020-01-30T10:27:15.030+10:00]: Successfully bound to the ClusApi.dll
[2020-01-30T10:27:15.030+10:00]: Cannot open the current cluster
[2020-01-30T10:27:15.030+10:00]: Cluster drive map: ''
[2020-01-30T10:27:15.030+10:00]: Error 0x80070150: The application cannot be decompressed to a system directory.
[2020-01-30T10:27:15.030+10:00]: Error 0x80070150: Unsupported directory 
[2020-01-30T10:27:15.030+10:00]: Error 0x80070150: Failed to validate directory for extraction
[2020-01-30T10:27:15.030+10:00]: Error 0x80070150: Failed to select the directory to extract to
[2020-01-30T10:27:15.030+10:00]: Error 0x80070150: Failed to select and/or prepare the directory for extraction
[2020-01-30T10:27:15.030+10:00]: The application cannot be decompressed to a system directory. Please select a different location.
[2020-01-30T10:27:15.030+10:00]: Exiting with result code: 0x80070150
[2020-01-30T10:27:15.030+10:00]: === Logging stopped: 2020/01/30 10:27:15 ===

To resolve this, I used an Administrator account credential for my chocolatey install and chocolatey DSC resources, so then it ran from that account's temp instead of system temp:

        User localadminUser {
            Ensure                   = "Present"
            UserName                 = "localadmin"
            Password                 = $localadmin_credential
            PasswordChangeNotAllowed = $true
            PasswordChangeRequired   = $false
            PasswordNeverExpires     = $true
        }

        Group localadminUserAsAdmin {
            GroupName        = 'Administrators'
            Ensure           = 'Present'
            MembersToInclude = "localadmin"
            DependsOn        = "[User]localadminUser"
        }
        cChocoInstaller installChoco
        {
            InstallDir           = 'C:\choco'
            PsDscRunAsCredential = $localadmin_credential
            DependsOn            = "[Group]localadminUserAsAdmin"
        }

        cChocoPackageInstaller installSqlExpress
        {
            Ensure               = "Present"
            Name                 = "sql-server-express"
            Version              = "2017.20190916"
            PsDscRunAsCredential = $localadmin_credential
            DependsOn            = "[cChocoInstaller]installChoco"
        }
Marc Durdin
  • 121
  • 4