使用 Powershell DSC 安装 JRE 挂起
Installing JRE using Powershell DSC hangs
我正在尝试在 Windows 2012 R2 机器上使用 Powershell DSC 远程安装 Java 运行时(碰巧是 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")
}
([文件]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 安装程序进程,导致 Start-DscConfiguration 失败
我快没戏了....现在是 2015 年,我无法远程设置 Windows 盒子!这些技术承诺如此之多....
删除行
参数 = '/s'
或者添加
参数 = '/q'
为了它的价值,我成功安装了 JDK 7:
Package Java
{
Ensure = 'Present'
Name = "Java 7 Update 72 (64-bit)"
Path = "${InstallerPath}\jdk-7u72-windows-x64.exe"
ProductId = '64A3A4F4-B792-11D6-A78A-00B0D0170720'
Arguments = "/s STATIC=1 WEB_JAVA=0"
}
干杯,
安德鲁
除上述之外。
过去曾经历过这种情况。通过 DSC 安装 MSI/EXE,如果您没有传递正确的 [arguments],它会挂起,直到远程机器上的所有线程都被杀死。
杀死所有线程,下次 运行 conf 时,强制配置!
start-dscConf -force
一年后,我似乎找到了解决办法。不确定最初的问题是否与我正在安装的安装程序版本有关..但这似乎对我有用 - 目前:
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
我正在尝试在 Windows 2012 R2 机器上使用 Powershell DSC 远程安装 Java 运行时(碰巧是 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")
}
([文件]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 安装程序进程,导致 Start-DscConfiguration 失败
我快没戏了....现在是 2015 年,我无法远程设置 Windows 盒子!这些技术承诺如此之多....
删除行
参数 = '/s'
或者添加
参数 = '/q'
为了它的价值,我成功安装了 JDK 7:
Package Java
{
Ensure = 'Present'
Name = "Java 7 Update 72 (64-bit)"
Path = "${InstallerPath}\jdk-7u72-windows-x64.exe"
ProductId = '64A3A4F4-B792-11D6-A78A-00B0D0170720'
Arguments = "/s STATIC=1 WEB_JAVA=0"
}
干杯, 安德鲁
除上述之外。
过去曾经历过这种情况。通过 DSC 安装 MSI/EXE,如果您没有传递正确的 [arguments],它会挂起,直到远程机器上的所有线程都被杀死。
杀死所有线程,下次 运行 conf 时,强制配置!
start-dscConf -force
一年后,我似乎找到了解决办法。不确定最初的问题是否与我正在安装的安装程序版本有关..但这似乎对我有用 - 目前:
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