为什么OpenSSL安装使用Chocolate/PowerShell DSC挂起?

为什么OpenSSL安装使用Chocolate/PowerShell DSC挂起?,powershell,azure,openssl,dsc,chocolatey,Powershell,Azure,Openssl,Dsc,Chocolatey,我正在尝试使用以下Powershell DSC脚本从Chocolate安装OpenSSL: cChocoInstaller installChoco { InstallDir = "c:\choco" } cChocoPackageInstaller installOpenSSL { Name = "openssl.light" DependsOn = "[cChocoInstaller]installChoco" } 此DSC通过ARM模板中的

我正在尝试使用以下Powershell DSC脚本从Chocolate安装OpenSSL:

cChocoInstaller installChoco
{
    InstallDir = "c:\choco"
}           

cChocoPackageInstaller installOpenSSL
{
    Name = "openssl.light"
    DependsOn = "[cChocoInstaller]installChoco"
}
此DSC通过ARM模板中的Powershell DSC扩展推送到Azure中的新VM。 问题是OpenSSL静默安装程序挂起,不允许DSC完成。以下是巧克力公司的日志:

2016-05-04 19:15:22,254 [INFO ] - Installing the following packages:
2016-05-04 19:15:22,270 [INFO ] - openssl.light
2016-05-04 19:15:22,270 [INFO ] - By installing you accept licenses for the packages.
2016-05-04 19:15:29,067 [INFO ] - 
OpenSSL.Light v1.0.2.20160504 (forced)
2016-05-04 19:15:29,130 [DEBUG] - Contents of 'c:\choco\lib\OpenSSL.Light\tools\chocolateyInstall.ps1':
2016-05-04 19:15:29,161 [DEBUG] - $packageId = 'OpenSSL.Light'

#default is to plop in c:\ -- yuck!
$installDir = Join-Path $Env:ProgramFiles 'OpenSSL'

$params = @{
  packageName = $packageId;
  fileType = 'exe';
  #InnoSetup - http://unattended.sourceforge.net/InnoSetup_Switches_ExitCodes.html
  silentArgs = '/silent', '/verysilent', '/sp-', '/suppressmsgboxes',
    "/DIR=`"$installDir`"";
  url = 'https://slproweb.com/download/Win32OpenSSL_Light-1_0_2h.exe'
  url64bit = 'https://slproweb.com/download/Win64OpenSSL_Light-1_0_2h.exe'
}

Install-ChocolateyPackage @params

if (!$Env:OPENSSL_CONF)
{
  $configPath = Join-Path $installDir 'bin\openssl.cfg'

  if (Test-Path $configPath)
  {
    [Environment]::SetEnvironmentVariable(
      'OPENSSL_CONF', $configPath, 'User')

    Write-Output "Configured OPENSSL_CONF variable as $configPath"
  }
}

2016-05-04 19:15:29,177 [DEBUG] - Calling command ['"C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -NoLogo -ExecutionPolicy Bypass -Command "[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\OpenSSL.Light\tools\chocolateyInstall.ps1' -installArguments '' -packageParameters ''"']
2016-05-04 19:15:31,404 [INFO ] -  Downloading OpenSSL.Light 64 bit
2016-05-04 19:15:31,404 [INFO ] -    from 'https://slproweb.com/download/Win64OpenSSL_Light-1_0_2h.exe'
2016-05-04 19:15:40,526 [INFO ] -  Installing OpenSSL.Light...
我试图对OpenSSL Light设置过程进行内存转储。以下是DebugDiag分析的结果:

Error    

Description Recommendation 

The following threads in OpenSSL.LightInstall.DMP are displaying a message box. The call to display the message box originated from OpenSSL_LightInstall+9745.

The text of the message being displayed is:
The system cannot find the path specified.


( 0 )

100.00% of threads blocked (1 threads)

 Server-side applications should not have any UI elements since they are supposed to run without any user intervention. Moreover, service applications run in non-interactive desktops, so no one can actually see the message box and dismiss it. This causes the application to hang.

Please follow up with vendor OpenSSL Win64 Installer Team  for problem resolution concerning the following file: C:\Windows\SysWOW64\config\systemprofile\AppData\Local\Temp\chocolatey\OpenSSL.Light\1.0.2.20160504\OpenSSL.LightInstall.exe. 
你知道这是什么原因吗?我能够在VM上本地运行DSC,但不能通过Powershell DSC扩展。 是否有一种解决方法或更好的方法使用DSC静默安装OpenSSL


提前感谢。

您是否可能遇到内存问题?此调用是否通过WinRM和/或PowerShell远程处理进行?

由于PowerShell DSC是由本地配置管理器在系统帐户下运行的,因此默认choco缓存目录访问存在问题。我可以通过设置一个定制的choco缓存路径来解决这个问题。更多信息请点击此处: