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 

1 Answer 1

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" } 

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.