Issue installing Java 32-bit using Package Resource

I’m having an issue getting the 32-bit version of Java to install using the Package DSC resource. Here is the configuration I am using:

    Package Java8x86
    {
        Ensure   = 'Present'
        Name     = 'Java 8 Update 20'
        Path     = 'c:\temp\jre-8u20-windows-i586.exe'
        Arguments = '/s'
        ProductId = '26A24AE4-039D-4CA4-87B4-2F83218020F0'
    }

Here is what shows up in the event log:

Job {33B874F7-C1C0-11E4-80C9-F2AAAA00005E} :
This event indicates that failure happens when LCM is processing the configuration. ErrorId is 0x1. ErrorDetail is The SendConfigurationApply function did not succeed… ResourceId is [Package]Java8x86 and SourceInfo is ::33::9::Package. ErrorMessage is PowerShell DSC resource MSFT_PackageResource failed to execute Set-TargetResource functionality with error message: The return code -80 was not expected. Configuration is likely not correct .

Any ideas? I’ve also tried using the argument below but no luck either. The 64-bit version installs just fine.

Arguments = ‘/b"C:\Windows\Temp\Java32" /s’

It’s probably that the installer is doing something that requires an active user profile, which isn’t present when the LCM runs. Either that, or the 32-bit installer doesn’t like being run in a 64-bit process space. There’s not really a way to change either of those things.

Hi Don,

Thanks for the reply. I was actually able to finally get this working by extracting the .msi from the executable. If you run the .exe, the msi file is extracted into the AppData\LocalLow\Sun folder. I then used the msi in the DSC configuration and it installed without issues.

Nick

And that folder wouldn’t necessarily exist under the LCM, which is why it wasn’t working. You run into that a lot with installers, unfortunately. It’s one reason DSC is a little dicey on client workloads - that comes up a lot more often than on servers. Glad you got it working!

FYI. For anyone that finds this thread. This works with the current JRE installer for me.

The trick is you have to use both /s and the SILENT_MODE=1 flag. My arguments looks like this:

/s /L C:\temp\jre_setup.log INSTALL_SILENT=1 AUTO_UPDATE=0 EULA=0 REBOOT=0 REMOVEOUTOFDATEJRES=1

You can of course remove the /L if you want.