Setzen Sie die angehaltene MSI-Installation über die Befehlszeile zurück

9

Wir haben ein Java-Installationsprogramm für eine große Anzahl von Computern bereitgestellt, das bei etwa der Hälfte eingefroren ist. Jetzt schlagen nachfolgende Bereitstellungen aufgrund der folgenden Meldung fehl:

Der Benutzer 'SYSTEM' hat zuvor eine Installation für das Produkt 'Java 7 Update 10' initiiert. Dieser Benutzer muss diese Installation erneut ausführen, bevor er das Produkt verwenden kann. Ihre aktuelle Installation wird nun fortgesetzt.

Gefolgt von:

Fehler 1704. Eine Installation für Java 7 Update 10 wird derzeit angehalten. Sie müssen die von dieser Installation vorgenommenen Änderungen rückgängig machen, um fortzufahren. Möchten Sie diese Änderungen rückgängig machen?

Wenn Sie eine Installation interaktiv ausführen, ist dies in Ordnung. Sie klicken einfach auf "OK" und dann auf "Ja" und es rollt weiter. Wenn Sie jedoch eine Befehlszeileninstallation ausführen, wird diese angehalten. Wie können wir die angehaltene Installation über die Befehlszeile abbrechen?

Kasius
quelle
Wenn Sie also "Interaktiv ausführen" sagen, meinen Sie damit, dass Sie das Skript ausführen oder nur das normale Java-Installationsprogramm ausführen?
Tony Roth
Nun, ich habe ein Skript bereitgestellt, das im Hintergrund ausgeführt wurde, um Java zu installieren. Es hat viele Maschinen blockiert und eine angehaltene Installation hinterlassen. Alle stillen Installationen, die ich ausführe, werden mit Fehler 1704 beendet. Wenn ich die Installation interaktiv ausführe (dh ich melde mich an, doppelklicke auf die MSI und führe die Eingabeaufforderungen aus), kann ich die angehaltene Installation abbrechen. Wie kann ich diese angehaltene Installation über die Befehlszeile abbrechen?
Kasius
ok diese Aussage "Ich habe ein Skript bereitgestellt, das im Hintergrund ausgeführt wurde, um Java zu installieren." Wenn Sie dies tun, führen Sie es im Hintergrund als dieselbe Person wie im Benutzer "SYSTEM" aus?
Tony Roth
Vielleicht versuchen Sie eine stille Deinstallation docs.oracle.com/javase/1.5.0/docs/guide/deployment/…
Tony Roth
SCCM führt die Installation unbeaufsichtigt als SYSTEM aus. Wenn ich die Installation wie jeder andere interaktiv ausführe, kann ich die angehaltene Installation abbrechen.
Kasius

Antworten:

8

Soweit ich weiß, ist es nicht möglich, eine angehaltene MSI-Installation über die Befehlszeile mit MSIEXEC abzubrechen (es gibt keinen Parameter dafür).

Auf jeden Fall können Sie versuchen, den folgenden Befehl auszuführen:

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

Dieser Schlüssel wird erstellt, wenn eine Installation ausgeführt wird. Wenn Sie es löschen, können Sie das Setup erneut ausführen.

Tomas Dabasinskas
quelle
Fügen Sie a / f hinzu, um das Löschen ohne Frage zu erzwingen (dh: für Skripte)
higuita
3

Wenn die Antwort von Tomas das Problem nicht löst, können Sie das Dienstprogramm MsiZap.exe ausprobieren .

Grundsätzlich werden auch die von MSI-Installationen hinterlassenen Metadaten entfernt, Sie müssen jedoch nicht alle Speicherorte herausfinden, an denen die Informationen gespeichert sind.

ZB Löschen der inProgress-Informationen:

msizap.exe p

oder Rollback-Informationen löschen:

msizap.exe s
weberik
quelle
msizap.exe hat Probleme mit späteren Windows-Versionen. Es sollte nicht wahllos verwendet werden. Hier ist ein alternatives Tool (von mir nicht getestet).
Stein Åsmul
0

Ich habe herausgefunden, dass Sie in Windows 10 (x64) versuchen können, den Schlüssel nicht in HKLM, sondern im aktuellen Benutzerregistrierungszweig HKEY_USERS \ SXX-XX -... \ Software \ Microsoft \ Windows \ CurrentVersion \ Installer \ InProgress zu löschen

Profi
quelle