Putar kembali. MSI instal dari command-line

9

Kami menyebarkan installer Java ke sejumlah besar mesin, dan membeku di sekitar setengah dari mereka. Sekarang, penyebaran berikutnya gagal karena pesan berikut:

Pengguna 'SYSTEM' sebelumnya telah memulai pemasangan untuk produk 'Java 7 Update 10'. Pengguna itu perlu menjalankan instalasi itu lagi sebelum mereka dapat menggunakan produk itu. Instalasi Anda saat ini sekarang akan dilanjutkan.

Diikuti oleh:

Kesalahan 1704. Instalasi untuk Java 7 Pembaruan 10 saat ini ditangguhkan. Anda harus membatalkan perubahan yang dibuat oleh instalasi itu untuk melanjutkan. Apakah Anda ingin membatalkan perubahan itu?

Jika Anda menjalankan instalasi secara interaktif, ini tidak masalah. Anda cukup mengklik "OK" dan kemudian "Ya", dan itu bergulir. Tetapi jika Anda menjalankan instalasi command-line, itu terhenti. Bagaimana kita bisa membatalkan instalasi yang ditangguhkan dari baris perintah?

Kasius
sumber
jadi ketika Anda mengatakan "jalankan secara interaktif" maksud Anda menjalankan skrip atau hanya menjalankan installer java normal?
tony roth
Yah, saya menggunakan skrip yang berjalan di latar belakang untuk menginstal Java. Itu terkunci pada banyak mesin dan meninggalkan instalasi yang ditangguhkan. Sekarang, setiap pemasangan diam yang saya jalankan keluar dengan Kesalahan 1704. Jika saya menjalankan pemasangan secara interaktif (artinya saya masuk, klik dua kali .MSI, dan jalankan melalui petunjuknya), itu memungkinkan saya membatalkan pemasangan yang ditangguhkan. Bagaimana saya bisa membatalkan instalasi yang ditangguhkan dari baris perintah?
Kasius
ok pernyataan ini "Saya menggunakan skrip yang berjalan di latar belakang untuk menginstal Java." jadi ketika Anda melakukan ini, apakah Anda menjalankannya di latar belakang sebagai orang yang sama seperti pada pengguna "SISTEM"?
tony roth
mungkin coba hapus instalan docs.oracle.com/javase/1.5.0/docs/guide/deployment/…
tony roth
SCCM menjalankan instalasi secara diam-diam sebagai SISTEM. Jika saya menjalankan instalasi secara interaktif, seperti orang lain, ini memungkinkan saya untuk membatalkan instalasi yang ditangguhkan.
Kasius

Jawaban:

8

Sejauh yang saya tahu, tidak mungkin untuk membatalkan instalasi MSI yang ditangguhkan dari baris perintah menggunakan MSIEXEC (tidak memiliki parameter untuk itu).

Bagaimanapun, Anda dapat mencoba menjalankan perintah berikut:

REG DELETE HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress

Kunci ini dibuat ketika ada instalasi yang sedang berlangsung. Menghapusnya akan memungkinkan Anda untuk menjalankan kembali pengaturan.

Tomas Dabasinskas
sumber
tambahkan a / f untuk memaksa penghapusan tanpa pertanyaan (yaitu: untuk skrip)
higuita
3

Jika Tomas menjawab tidak menyelesaikan masalah Anda bisa mencoba Utilitas MsiZap.exe .

Ini pada dasarnya juga menghapus metadata yang ditinggalkan oleh instalasi MSI, tetapi tidak mengharuskan Anda untuk mengetahui semua lokasi di mana informasi disimpan.

Misalnya menghapus informasi dalam Kemajuan:

msizap.exe p

atau hapus informasi rollback:

msizap.exe s
weberik
sumber
msizap.exe memiliki masalah dengan versi Windows yang lebih baru. Seharusnya tidak digunakan tanpa pandang bulu. Ini adalah alat alternatif (belum diuji oleh saya).
Stein Åsmul
0

Saya menemukan bahwa di Windows 10 (x64) Anda dapat mencoba untuk menghapus kunci bukan di HKLM tetapi di cabang registri pengguna saat ini HKEY_USERS \ SXX-XX -... \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer \ InProgress

Pro
sumber