-1

誰かがこれが機能する理由を説明できますか:

$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
4

1 に答える 1

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
于 2013-03-13T18:14:25.117 に答える