2013-03-13 260 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