2013-03-13 194 views
-1

有人可以解释为什么这工作:静默安装Java的MSI

$cred = Get-Credential 
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"C:\temp\jre1.7.0_17.msi`"" -Credential $cred -wait 

但这并不:

$cred = Get-Credential 
Start-Process -FilePath "msiexec.exe" -ArgumentList "/i `"C:\temp\jre1.7.0_17.msi`" ""`/qn REBOOT=ReallySuppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0`" ""/log c:\temp\javainst.log" -Credential $cred -wait 

回答

0

我担心的第一件事是你逃跑每一个特殊的方式字符。如果做得对,它会正常工作,但在这里似乎没有必要。如果您需要在字符串中包含双引号,请将您的参数包含在单引号内。

你可以尝试以下方法,看看它是否有帮助吗?

$cred = Get-Credential 
Start-Process -FilePath "msiexec.exe" -ArgumentList '/i "C:\temp\jre1.7.0_17.msi" /qn REBOOT=ReallySuppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0 /log c:\temp\javainst.log' -Credential $cred -wait 

此外,正如我在以前的很类似的帖子评论说,你能解释一下为什么你需要使用msiexec不是Java本身的exe安装的?

编辑试试这个:

$cred = Get-Credential 
Start-Process -FilePath "c:\temp\jre-7u17-windows-i586.exe" -ArgumentList '/S /L c:\temp\javainst.log REBOOT=ReallySuppress JAVAUPDATE=0 WEBSTARTICON=0 SYSTRAY=0' -Credential $cred -wait 
+0

我插你的替代品,但在安装没有运气。如果你正在使用.exe,你将如何运行安装线?我无法做到这一点,但在批处理文件中使用会更容易。 – user2162722 2013-03-13 19:18:37

+0

尝试更新的答案。请注意,我没有测试过它。请阅读http://www.java.com/en/download/help/silent_install.xml并从http://www.java.com/en/download/manual.jsp下载exe安装程序。 – 2013-03-13 19:52:50