7 Stimmen

Stille MSI-Deinstallation von GUIDs, die nicht existieren

Ich versuche, eine stille Deinstallation meiner Anwendung zu implementieren. Das funktioniert gut, wenn die Anwendung tatsächlich installiert ist, aber wenn nicht, erhält der Benutzer eine Fehlermeldung und muss auf OK klicken, um fortzufahren.

Mein Befehl:

MSIEXEC.EXE /qb /L\* "%LOGDIR%\\myuninstaller.log" /x{GUID}

Das Problem ist, dass ich alle alten Versionen der Anwendung in einem Skript bereinigen muss, das ich in AD einsetze. Ich weiß nicht, welche Version auf welchem Computer installiert ist, und es ist schwierig, das Skript dazu zu bringen, dies zuerst zu ermitteln.

Wie kann ich MSIEXEC NICHT sich über die Deinstallation von GUIDs beschweren, die nicht existieren?

3voto

Tedd Hansen Punkte 11515

Die Antwort finden Sie unter http://technet.microsoft.com/en-us/library/cc759262(WS.10).aspx#BKMK_SetUI

Es scheint, dass ich Folgendes verwenden muss /qn anstelle von /qb .

2voto

Flavio Punkte 458

Wenn alle Ihre Anwendungen richtige GUID-Schlüssel in "KEY_LOCAL_MACHINE" haben \SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall "Sie könnten auch so vorgehen:

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID} >NUL 2>NUL || MSIEXEC.EXE /qb /L* "%LOGDIR%\myuninstaller.log" /x{GUID}

Dies würde msiexec.exe nur starten, wenn der Schlüssel vorhanden ist (und wäre etwas effizienter, als msiexec.exe bei nicht vorhandenen GUIDs mit /qn zu starten).

0voto

mithocondria Punkte 91

In meinem Fall funktioniert es mit: (beachten Sie den &&-Operator)

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID} >NUL 2>NUL && MSIEXEC.EXE /qf /L* "%LOGDIR%\myuninstaller.log" /x{GUID}

laut diesem Link http://www.robvanderwoude.com/condexec.php wird der nachfolgende Befehl (msiexec.exe) nur ausgeführt, wenn der erste Befehl erfolgreich (ohne Fehler) ausgeführt wurde. Sie können versuchen, jeden Befehl separat zu testen

reg query HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{GUID} >C:\registrycheck.log

0voto

Stein Åsmul Punkte 37291

Auch wenn Sie eine akzeptierte Antwort haben, sehen Sie sich bitte diesen Beitrag von serverfault.com an: Ist es möglich, die msiexec-Hilfe-GUI zu deaktivieren? . Es gibt viele Möglichkeiten, eine MSI automatisch zu deinstallieren, sodass Sie sich nicht mit msiexec.exe befassen müssen.

Vielleicht ist das Deinstallation einer MSI-Datei von der Befehlszeile aus ohne Verwendung von msiexec ist ebenfalls nützlich.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X