使用Powershell DSC挂起安装JRE

时间:2015-07-22 11:58:10

标签: powershell dsc

我正试图在Windows 2012 R2的盒子上使用Powershell DSC远程安装Java Runtime(实际上是8个),但它似乎悬而未决。

我最初尝试使用Chocolatey DSC提供程序安装它,但这给了我一个错误的成功(choco声称它已安装,但没有实际文件被解压缩)。我将这个事实归结为:http://powershell.org/wp/forums/topic/issue-installing-java-32-bit-using-package-resource/#post-23187

所以我解压缩了exe并解压缩了两个java MSI,我的DSC配置如下:

    Package java8x86
    {
        Ensure = 'Present'
        Name = 'Java 8 Update 45'
        Path = (Join-Path $localDscFileDir "Java\jre1.8.0_45\jre1.8.0_45.msi")
        Arguments = '/s'
        ProductId = '26A24AE4-039D-4CA4-87B4-2F83218045F0'
        DependsOn = @("[File]javaMsi")
    }

([File] javaMsi将.msi文件复制到远程计算机上。)

当我生成MOF和Start-DscConfiguration时,输出会挂起:

VERBOSE: [DEVTEST-3U2LN5Q]:                            [[Package]java8x86]  Parsing 26A24AE4-039D-4CA4-87B4-2F83218045F0 as an identifyingNumber
VERBOSE: [DEVTEST-3U2LN5Q]:                            [[Package]java8x86] Parsed 26A24AE4-039D-4CA4-87B4-2F83218045F0 as {26A24AE4-039D-4CA4-87B4-2F83218045F0}
VERBOSE: [DEVTEST-3U2LN5Q]:                            [[Package]java8x86] Package configuration starting
VERBOSE: [DEVTEST-3U2LN5Q]:                            [[Package]java8x86] Starting C:\Windows\system32\msiexec.exe with /i "C:\DscFiles\Java\jre1.8.0_45\jre1.8.0_45.msi" /quiet /s
VERBOSE: [DEVTEST-3U2LN5Q]:                            [[Package]java8x86] Starting process C:\Windows\system32\msiexec.exe with arguments /i "C:\DscFiles\Java\jre1.8.0_45\jre1.8.0_45.msi" /quiet /s

我甚至无法使用CTRL-C并且必须转到远程计算机并终止Windows Installer进程以导致Star​​t-DscConfiguration失败

我的斗智斗勇......这是2015年,我无法远程设置Windows机箱!这些技术承诺了这么多......

4 个答案:

答案 0 :(得分:1)

删除行

参数='/ s'

或者添加

参数='/ q'

答案 1 :(得分:1)

一年后,我似乎有了一个解决方案。不确定原始问题是否与我正在安装的安装程序版本有关..但这似乎对我有用 - 现在:

    xRemoteFile javaInstaller {
        DestinationPath = (Join-Path $localDscFileDir "Java\jreInstaller.exe")
        Uri = "http://javadl.oracle.com/webapps/download/AutoDL?BundleId=211999"
    }
    Package java8
    {
        Ensure = 'Present'
        Name = 'Java 8'
        Path = (Join-Path $localDscFileDir "Java\jreInstaller.exe")
        Arguments = '/s REBOOT=0 SPONSORS=0 REMOVEOUTOFDATEJRES=1 INSTALL_SILENT=1 AUTO_UPDATE=0 EULA=0 /l*v "C:\DscFiles\Java\jreInstaller.exe.log"' #From https://powershell.org/forums/topic/issue-installing-java-32-bit-using-package-resource/#post-39206
        ProductId = '26A24AE4-039D-4CA4-87B4-2F64180101F0'
        DependsOn = @("[xRemoteFile]javaInstaller")         
    }

BTW,该下载URL对应于jre-8u101-windows-x64.exe

答案 2 :(得分:0)

为了它的价值,我成功地安装了JDK 7:

=REPT("Meat",MAX(IFERROR(MATCH({"*beef*","*chicken*","*fish*"},A2,),)))    &    REPT("Vegetable",MAX(IFERROR(MATCH({"*tomato*","*lettuce*","*onion*"},A2,),)))

干杯, 安德鲁

答案 3 :(得分:0)

除上述内容外。

过去经历过这一点。通过DSC安装MSI / EXE时,如果没有传递正确的[参数],它会挂起,直到所有线程都在远程盒子上被杀死。

杀死所有线程,然后当你运行conf时,强制配置!
  start-dscConf -force