eine MSI-Datei von der Befehlszeile zu deinstallieren, ohne msiexec
-
19-08-2019 - |
Frage
ist msiexec
Prompt Software-Befehl, der ein Programm href="http://en.wikipedia.org/wiki/Windows_Installer" rel="noreferrer"> MSI installiert. Aber ich habe festgestellt, dass Sie mit dem nur der Eingabe im Namen der MSI-Datei in der Befehlszeile eine MSI-Datei über die Befehlszeile installieren können.
Aber um die MSI-Datei zu deinstallieren, es scheint, haben Sie die msiexec
Programm aufrufen und eine /x
oder /uninstall
geben.
Wie kann ich eine MSI über die Befehlszeile zu deinstallieren, ohne die msiexec
Routine?
Lösung
Kurze Antwort: Sie können es nicht. Verwenden MSIEXEC / x
Lange Antwort: Wenn Sie die MSI-Datei direkt in der Befehlszeile ausführen, alles, was geschieht, ist, dass es läuft MSIEXEC für Sie. Diese Zuordnung wird in der Registrierung gespeichert. Sie können eine Liste der Verbände sehen (in Windows Explorer) gehen Sie auf Extras / Ordneroptionen / Dateitypen.
Zum Beispiel können Sie eine .doc-Datei von der Befehlszeile ausführen, und WordPad oder WinWord öffnet es für Sie.
Wenn Sie in der Registrierung unter HKEY_CLASSES_ROOT\.msi
anschauen, werden Sie sehen, dass MSI-Dateien mit der Programm-ID „Msi.Package“ zugeordnet sind. Wenn Sie in HKEY_CLASSES_ROOT\Msi.Package\shell\Open\command
anschauen, werden Sie die Befehlszeile sehen, dass Windows tatsächlich verwendet, wenn Sie „run“ eine MSI-Datei.
Andere Tipps
Es gibt viele Möglichkeiten, ein MSI-Paket zu deinstallieren. Dies soll als "Referenz".
Zusammenfassend können Sie deinstallieren über: msiexec.exe , ARP , WMI , Powershell , Deployment-Systeme wie zum Beispiel SCCM , VBScript / COM Automation, DTF oder über versteckten Windows-Cache-Ordner , und ein paar andere Optionen unten dargestellt.
Die ersten paar Absätze liefern wichtige tidbits MSI, dann gibt es 14 Abschnitte mit verschiedenen Möglichkeiten, um eine MSI-Datei zu deinstallieren. Puh.
"Babble, Babble - Over": Sektionen 1 , 2 und 3 sind die normale deinstallation nähert sich (und daher empfohlen).
.Personally I use option 3 or 5 from section 3
(beide Optionen mit Protokollierung, aber Option 5 läuft leise auch). Wenn Sie sind sehr beschäftigt , überspringen alle plappern und gehen für ein davon - es ist die Arbeit erledigt wird erhalten
Wenn Sie haben Probleme bei der Deinstallation insgesamt und suchen nach einer Alternative zu dem veralteten Msizap.exe und / oder Windows Installer CleanUp Utility ( Msicuu2.exe ), können Sie das neue FixIt Tool von Microsoft ( das Unternehmen Vorteile MSI-Dateien mit .
InstallScript- MSI Einstellungen im Allgemeinen in einer Datei setup.exe gewickelt kommt . Um mehr über die Parameter lesen für die Deinstallation solcher Setups verwenden Sie bitte die folgenden Links: Setup. exe pdf Referenzblatt , Setup. exe und Update.exe Befehlszeilenparameter .
Einige MSI-Dateien installiert sind als Teil der Bündel über Mechanismus wie Burn (WiX Toolkit) oder Install Suite Projekte. Dies kann uninstall macht etwas anders aus, was unten zu sehen ist. Hier ist ein Beispiel für Install Suite Projekte .
Bitte beachten Sie, dass die Ausführung der Deinstallation leise oder interaktiv können unterschiedliche Ergebnisse verursachen (!) . Für eine ziemlich lange Beschreibung, warum dies der Fall ist, lesen Sie bitte diesen Beitrag: Deinstallieren von Control Panel unterscheidet sich von entfernen von .msi
Wenn Sie unerwartet für die Original-Installations-Medien gefragt werden, wenn zu deinstallieren versuchen, lesen Sie bitte diese Antwort: Warum benötigt MSI die ursprüngliche MSI-Datei mit einer Deinstallation fortfahren? und vielleicht auch Abschnitt 12 unten für einige wichtige technische Details.
Wenn Sie bekam CCleaner oder ähnliche Bereinigungstools installiert, vielleicht springen auf 11 .
Wenn Deinstallation vollständig (nicht möglich zu laufen) versagt, siehe Abschnitte 12 und 13 unter für eine mögliche Art und Weise zu " Rückgängig " die Installation mit Systemwiederherstellung und / oder Cleanup-Tools.
1. Using the original MSI
- Wenn Sie Zugriff auf die Original-MSI für die Installation verwendet, können Sie einfach Rechtsklick in Windows Explorer und Deinstallieren .
- Sie können auch über die Kommandozeile deinstallieren, wie in Kapitel 3 beschrieben.
2. Using the old ARP Applet OR new Windows 8/10 Settings Interface
-
Wir sind gerade die normale Vorgehensweise (n) zu erwähnen, obwohl es offensichtlich ist,
-
ARP
=Add / Remove Programs Applet
(appwiz.cpl
) -
Windows 10 Settings Interface
=> Neue Schale für gleichen Vorgang
-
-
ARP :
- Go Start → Ausführen → appwiz.cpl → ENTER , um das Add / Remove Programs Applet (oder klicken Sie auf hinzufügen / entfernen von Programmen in der Systemsteuerung) zu öffnen
- Klicken Sie auf " Entfernen " für das Produkt, das Sie deinstallieren möchten
-
Einstellungen Schnittstelle (Windows 8/10):
- Verwenden Sie die neuen Einstellungen GUI in Windows 8/10
- Windows-Taste + Tippen Sie auf I =>
Apps & Features
. Eintrag auswählen und zu deinstallieren. - Einige Berichte von Fehlern, wenn diese Art und Weise Deinstallation aufrufen. Bitte kommentieren unten, wenn gesehen.
- Versuchen Sie, diese Antwort auch
- Allgemeiner Hinweis :. Versuchen zu deaktivieren Anti-Virus und versuchen Sie es erneut
3. Using msiexec.exe command line (directly or via a batch file)
- Sie können über die deinstallieren Eingabeaufforderung ( cmd.exe ), Batch-Datei oder oder sogar innerhalb einer ausführbaren Datei als Shell-Betrieb .
- Sie tun dies, indem Sie die Produkt GUID (überprüfen unten, wie diese hier ist, wie das Produkt GUID finden - gleicher Link wie unten):
msiexec.exe /x {11111111-1111-1111-1111-11111111111X}
-
Option 3: Interaktive Deinstallation mit ausführlicher Protokolldatei :
msiexec.exe /x "c:\filename.msi" /L*V "C:\msilog.log" msiexec.exe /x {11111111-1111-1111-1111-11111111111X} /L*V "C:\msilog.log"
-
Option 4: Interaktive Deinstallation mit geröteten, ausführlicher Protokolldatei ( ausführlich, bündigOption log - schreiben kontinuierlich einzuloggen, kann sehr langsam sein):
msiexec.exe /x "c:\filename.msi" /L*V! "C:\msilog.log" msiexec.exe /x {11111111-1111-1111-1111-11111111111X} /L*V! "C:\msilog.log"
-
Die Spüloption anmelden macht die Deinstallation langsam , da die Protokolldatei in Chargen kontinuierlich statt geschrieben wird. Dadurch wird sichergestellt, kein Log-Puffer, wenn die Setup-Abstürze verloren.
-
Mit anderen Worten: Aktivieren Sie diese Option, wenn Ihr Setup abstürzt und es gibt keine hilfreichen Informationen in Ihrer ausführlichen Protokolldatei . Entfernen Sie das Ausrufezeichen auf den Flush deaktivieren Option anmelden und die Deinstallation wird viel schneller. Sie noch die ausführliche Protokollierung, aber wie einige Protokollpuffer angegeben könnten verloren gehen.
-
-
Option 5 (empfohlen): Unbeaufsichtigte Deinstallation mit ausführlicher Protokolldatei - unterdrücken Neustarts (kein Flush einloggen - vorherige Option sehen Sie, was das bedeutet):
msiexec.exe /x "c:\filename.msi" /QN /L*V "C:\msilog.log" REBOOT=R msiexec.exe /x {11111111-1111-1111-1111-11111111111X} /QN /L*V "C:\msilog.log" REBOOT=R
Schnell Parameter Erläuterung (da ich empfehlen diese Option):
/X = run uninstall sequence /QN = run completely silently /L*V "C:\msilog.log"= verbose logging at path specified {11111111-1111-1111-1111-11111111111X} = product guid of app to uninstall REBOOT=R = prevent unexpected reboot of computer
Auch hier, wie das Produkt guid zu finden: Wie ich das Produkt finden GUID eines installierten MSI-Setup? (deinstallation, wenn Sie in dem Deinstallationsbefehl geben nicht die ursprünglichen MSI müssen).
Tipp: : Wenn Sie eine Protokolldatei für Ihre Deinstallation erstellen, können Sie Probleme im Protokoll von für die Suche" . Dies ist besonders nützlich für die ausführliche Dateien, weil sie so sind, na ja, ausführliche: -).
Wie das Produkt GUID für eine installierte MSI finden
- Es gibt mehrere Möglichkeiten, meine empfohlene Weg mit Powershell: Wie kann ich das Produkt GUID einen installierten MSI-Setup finden?
- Mehrere andere Arten beschrieben hier (Registrierung, lokaler Cache-Ordner, etc ...): Finden Sie GUID von MSI
Weitere Informationen über die Anmeldung von installsite.org : Wie erstelle ich eine Log-Datei von meiner Installation -?. großer Überblick über die verschiedenen Möglichkeiten und auch Besonderheiten der Install Protokollierung
4. Using the cached MSI database in the super hidden cache folder
- MSI abstreift alle Kabinen (ältere Windows-Versionen) und speichert jede MSI in einem super-versteckte Systemordner installiert: % SystemRoot% \ Installer (Sie müssen versteckte Dateien zeigen, um es zu sehen).
- NB : Das Abendessen versteckten Ordner jetzt anders in Windows 7 weiter behandelt wird. MSI-Dateien werden nun in voller Größe zwischengespeichert. Lesen Sie den verlinkten Thread für mehr Details -. Empfohlen lesen für alle, die diese Antwort finden und hantieren mit gefährlichen Windows-Einstellungen
- die MSI-Dateien hier haben alle einen zufälligen Namen (Hex-Format) zugewiesen, aber Sie können durch Angabe der Windows-Explorer-Statusleiste Informationen über die einzelnen MSI erhalten (Ansicht -> Statusleiste) und dann die Auswahl eines MSI. Die Zusammenfassung Strom aus dem MSI wird am unteren Rand des Windows-Explorer-Fenster sichtbar sein. Oder wie Christopher Galpin points heraus, schalten Sie die Spalte "Kommentare" in Windows Explorer und wählen Sie die MSI-Datei ( finden sie in diesem Artikel, wie sie dieses ).
- Sobald Sie die richtige MSI finden, es einfach rechts klicken und gehen Deinstallieren.
- Sie können auch Powershell verwenden Sie den vollständigen Pfad zum lokalen Cache-Paket zu zeigen, zusammen mit dem Produktnamen. Dies ist die einfachste Möglichkeit, meiner Meinung nach.
- Um Feuer Powershell : Halten Sie die Windows-Taste gedrückt, tippen Sie R, lassen Sie die Windows-Taste, geben Sie in "Powershell" und drücken Sie OK . Dann maximieren die Powershell-Fenster und führen Sie den folgenden Befehl ein:
get-wmiobject Win32_Product | Format-Table Name, LocalPackage -AutoSize
- Sehen Sie auch diese Antwort: Wie finde ich die Produkt-GUID eines Setup installiert MSI?
5. Using
PowerShell
- Es gibt ein ähnliches, aber umfassenderes Powershell-Skript auf MSDN . Es ermöglicht Deinstallation auf mehreren Rechnern ausgeführt werden.
-
Eintrag von Even Mien hinzugefügt:
$app = Get-WmiObject -Class Win32_Product -Filter "Name = 'YOUR_APP'" $app.Uninstall()
-
Dieser Ansatz funktioniert, aber die WMI-Klasse Zugriff auf Win32_Product löst eine Software-Konsistenzprüfung , die ist sehr langsam und unter besonderen Umständen kann ein MSI verursachen Selbstreparatur ausgelöst werden. Lesen Sie diesen Artikel: Powershell-Deinstallationsskript - Haben Sie eine echte Kopfschmerzen
- Ich habe das selbst nicht getestet, aber es scheint, $ app.Uninstall () kann das UninstallString in dem ARP-Applets Registrierungseinstellungen registriert laufen. Das bedeutet, es laufen kann in einigen Fällen statt Deinstallation ändern.
- Überprüfen Sie dieses Thema, um weitere Informationen und Möglichkeiten, über Powershell zu deinstallieren: Wie kann ich eine Anwendung mit Powershell deinstallieren?
6. Using the .NET DTF Class Library
(Teil der den WiX-Toolkit )
- Diese Option ist für Entwickler enthält in Bereitstellung und MSI bekommen - es ist nicht wirklich praktisch als „quick fix“. Es erfordert, dass Sie den Download starten das WiX-Toolkit - ein freies Framework für die Erstellung MSI-Dateien kompiliert aus XML-Quelldatei (en).
- Ein kurzer Text auf WiX und seine „Geschichte“: Windows Installer und die Schaffung von WiX . Und hier WiX mit anderem Einsatz kontrastiert Werkzeuge (kommerziell) - (Stärken und Schwächen - hoffentlich so objektiv wie möglich).
- DTF (Deployment Tools Foundation) als Teil der WiX verteilt wird, wie hier erläutert: Ist Source-Code für Deployment Tools Foundation zur Verfügung? .
- DTF ist im Wesentlichen ein .NET-Wrapper für die Win32-Windows Installer-API . Es beseitigt alle Notwendigkeit für COM-Interop, wenn sie mit Windows Installer über Automation arbeitet und ist nichts weniger als ein .NET Juwel - vielleicht die am einfachsten zu bedienende .NET Bibliothek, die ich je gesehen habe. Sehr empfehlenswert -. Groß, auch für Studenten in C # Ausbildung
- Die folgende Quelle von MSI-Experten Christopher Painter C # und DTF verwenden. Microsoft.Deployment.WindowsInstaller ist eine der DTF Baugruppen. Sehen Sie die anderen Baugruppen erklärt hier auf serverfault.com :
using Microsoft.Deployment.WindowsInstaller;
public static void Uninstall( string productCode)
{
Installer.ConfigureProduct(productCode, 0, InstallState.Absent, "REBOOT=\"R\"");
}
- Anther Alternative von Tom Blodgett: Überprüfung für eine erfolgreiche Deinstallation
- Mehr Informationen über msiexec.exe im Vergleich zu Automation auf serverfault.com .
7. Using the
Windows Installer Automation API
- Hier ist eine Community Diskussion dieser Option: Windows Installer-Automatisierungs-API Gemeinschaft Probe
- Die API kann über Skript Automatisierung und C ++ API-Aufrufe (mein Beitrag auf zugegriffen werden serverfault.com)
-
Die folgende Quelle von MSI Experten angepasst Christopher Painter mit VBScript :
Set installer = CreateObject("WindowsInstaller.Installer") installer.InstallProduct "product.msi", "REMOVE=ALL REBOOT=ReallySuppress" Set installer = Nothing
-
Hier ist eine andere VBScript für durch GUID von Symantec zu deinstallieren: http://www.symantec.com/connect/downloads/uninstall-application-using-guid-registry
8. Using a
Windows Installer major upgrade
- Ein Windows Installer Major Upgrade kann im Rahmen der Installation einer anderen MSI-Datei passieren.
- Ein wichtiges Upgrade wird durch die Identifizierung ähnliche Produkte in der MSI " Tabelle Upgrade- ". Diese verwandten Setups werden dann wie angegeben in der Tabelle behandelt. Im Allgemeinen bedeutet, dass sie deinstalliert werden, aber der Haupt-Setup kann auch anstelle abgebrochen werden (in der Regel verwendet, um höhere Versionen Ihrer eigenen Anwendung vorhanden zu erkennen auf dem Kasten).
9. Using Deployment Systems / Remote Administration Systems
- SCCM , CA Unicenter , IBMs Tivoli , Altiris Client Management Suite und mehrere andere
- verfügen Diese Tools erweiterte Client-PC-Management, und dazu gehört auch die Installation und Deinstallationvon MSI-Dateien
- Diese Tools scheinen eine Kombination von msiexec.exe zu verwenden, Automatisierung, WMI , usw. ... und sogar ihre eigene Art und Weise installiert und Deinstallationen von aufgerufen wird.
- Nach meiner Erfahrung bieten diese Tools eine Menge „Persönlichkeit“ und Sie müssen ihre verschiedenen Möglichkeiten, die Dinge anzupassen.
10. Using WMI - Windows Management Instrumentation
- Hinzufügen nur der Vollständigkeit halber. Es ist nicht empfohlen , diesen Ansatz zu verwenden, da es ist sehr langsam
- A Software-Konsistenzprüfung jedes Mal ausgelöst wird Win32_Product wird für jede Anlage genannt
- Die Konsistenzprüfung ist unglaublich langsam , und es kann auch eine Software-Reparatur auslösen . Lesen Sie diesen Artikel: Powershell-Deinstallationsskript - Haben Sie eine echte Kopfschmerzen
- Schlimmer noch: einige Leute ihre Ereignisprotokolle füllen berichten mit MsiInstaller Ereignis-ID 1035 Einträgen - offenbar von WMI-Abfragen an der Win32_Product Klasse verursacht (persönlich habe ich noch nie gesehen) .
- Die WMICodeCreator.exe Code-Tool zur Erstellung kann verwendet werden, zu experimentieren
- Installieren über
Win32_Product.Install
aufgerufen werden - Deinstallieren kann über
Win32_Product.Uninstall
aufgerufen werden
- Installieren über
- MSDN Beispiel: Uninstall Methode des Win32_Product Klasse
11. Using a third-party tool such as
ccleaner
or similar
- Mehr Windows-Anwendungen verfügen über eine eigene Schnittstelle für die Deinstallation nicht nur MSI-Pakete, aber Legacy-Installateuren zu.
- Ich will keine spezielles Werkzeug Empfehlungen hier (insbesondere kommerzielle) machen, aber die bekannten CCleaner verfügt über eine solche uninstall-Schnittstelle (und es hat eine kostenlose Version). Ich möchte auch, dass hinzufügen, dieses Tool erlitt ein Malware-Angriff vor kurzem .
- Ich denke, wir sollten alle daran erinnern, dass auch harmlose Software kann mit Malware in ihren Download-Adressen (FTP-Angriff) injiziert werden.
- Ich benutze virustotal.com meine Downloads zu überprüfen und auch Sysinternals Process Explorer laufenden Prozesse nach der Installation zu überprüfen - zusammen mit regelmäßigen Sicherheits Software (je nachdem, was verfügbar ist).
- Eine überraschende Menge von „Grauzone“ Software ist in der Regel mit diesem Ansatz (Symbolleiste, smileys, Adware, etc ...), zusammen mit einigen Fehlalarme (sie können auch zu Problemen führen, als Sicherheits-Software blockieren ihren Zugang oder Quarantänen gefunden sie machen eine Menge Flaum). Und schon gar echte Malware als auch.
- Einige Tipps zur Verwendung für Process Explorer können hier finden - eine Reihe von Tweets - diese Process Explorer Werkzeughaken bis zu VirusTotal.com alle laufenden Prozesse interaktiv überprüfen - alleSie benötigen einige Konfigurationsschritte ist.
- soll ich beachten Sie, dass Process Explorer eine Datei Signaturprüfung ergibt, aber keine Heuristiken - soweit ich verstehe (keine Prüfung auf verdächtige Vorgänge, nur einen Scheck mit 60+ Security-Suiten für markierte Dateien). Sie benötigen ein regelmäßiges Sicherheits-Tool für die interaktiven, online heuristischen Schutz.
- Für was es wert ist, ich denke, einige Sicherheits-Software-Grenze auf verursacht mehr falsch-positiven Probleme als Malware Schaden zufügt. Berühmte letzte Worte in der Ära von Lösegeld-ware ...
- Das ist eine groß genug Abschweifung - Ich will nur nicht, Menschen Malware herunterladen, um zu sehen. Sehen Sie Ihr virustotal.com zumindest überprüfen.
- wie diese deinstallieren sollte OK arbeiten. Ich denke, diese Chaos-Tools mit zu vielen Dingen, wenn Sie ihre „Bereinigungsfunktionen“ versuchen though. Verwenden Sie mit Vorsicht zu genießen. Wenn Sie nur die Deinstallationsfunktion verwenden, sollten Sie in Ordnung sein.
12. Using a cleanup tool such as
msizap
or similar
msizap
- Für Vollständigkeit
msizap.exeerwähnt werden sollte, wenn es ist veraltet , nicht unterstützt und überholt . Es sollte nicht auf alle neueren Windows-Versionen verwendet werden - Dieses Befehlszeilenprogramm (
msizap.exe) hatte auch eine GUI zur Verfügung (Msicuu2.exe). Beide Werkzeuge sind deprectated. - Die bestimmungsgemäße Verwendung dieser Werkzeuge war zu reinigen Deinstallationen andernfalls :
- Generell gilt für den seltenen Fall, wenn die zwischengespeicherte MSI mit dem zufälligen Namen fälschlicherweise fehlt und Deinstallation nicht aus diesem Grunde für die ursprüngliche MSI während fragen. Dies ist ein seltenes Problem, aber ich habe es selbst gesehen. Nur ein paar mögliche Ursachen: auf diese Antwort Verschoben .
- Schlüsselwörter: Systemwiederherstellung Störungen, schlechte Bereinigung Apps, msiexec.exe Krachen, Stromausfall, Sicherheits-Software-Störung, MSI Entwicklung Debugging-Fehler (identisches Paket Codes, etc ...), Benutzer-Bastelei und Hacking (was hier drin ist ? spart Platz?) usw ...
- Es könnte auch jede MSI-Installation zappen verwendet werden, obwohl dies offensichtlich nicht ratsam ist.
- Weitere Informationen: Warum MSI erfordert die ursprüngliche MSI-Datei mit einer deinstallation fortfahren?
-
Diese neuere Support-Tool(dieses Tool nun auch veraltet) auf den letzten Windows-Versionen ausprobiert werden, wenn Sie nicht mehr existierende MSI-Pakete haben, um zu deinstallieren. - Einige haben vorgeschlagen, um das Werkzeug hier durch saschabeaumont verknüpft zu verwenden: Deinstallieren ohne eine MSI-Datei . Wenn Sie es versuchen und es funktioniert, stellen Sie sicher, uns wissen zu lassen.
- Wenn Sie den Zugriff auf die ursprüngliche MSI haben, die tatsächlich verwendet wurde, um das Produkt zu installieren, können Sie diese verwenden, um die Deinstallation zu starten. Es muss die genaue MSI sein, das verwendet wurde, und nicht nur ein ähnliches.
13. Using
system restore
("installation undo" - last resort IMHO)
- Dies ist streng genommen nicht, einen Weg zu " Deinstallieren ", sondern auf " Rückgängig " die letzten installieren oder mehrere Installationen für diese Angelegenheit.
- über einen Wiederherstellungspunkt wiederherstellen bringt das System zurück auf einen vorherigen Installationsstatus . (Sie Video-Demos dieser auf YouTube oder eine ähnliche Website zu finden)
- Beachten Sie, dass die Funktion ganz oder teilweise deaktiviert werden kann - es möglich ist, dauerhaft für die ganze ma zu deaktivierenchine oder adhoc pro installieren.
- Ich habe neue gesehen, unlösbare Probleme bei der Installation von einem System führen wieder herzustellen, aber in der Regel funktioniert es OK . Offensichtlich nicht die Funktion für Spaß verwenden. Es ist ein letztes Mittel und ist am besten für Rollback neue Treiber verwendet oder Setups, die gerade installiert wurden und gefunden unmittelbare Probleme verursachen ( Blue Screen , bootet, Instabilität, etc ...).
- Je länger Sie die mehr Nacharbeit zurückgehen Sie für sich selbst schaffen wird, und desto höher ist die Gefahr. Die meisten Systeme verfügen nur wenige Punkte wiederherstellen, und die meisten von ihnen strecken wieder nur einen Monat oder zwei, glaube ich.
- Seien Sie sich bewusst, dass das System beeinflussen wiederherstellen könnte Windows-Updates , das dann erneut angewendet werden müssen - wie auch viele andere Systemeinstellungen. Über die reine Belästigungen, kann dies auch Sicherheitsprobleme verursachen wieder auftauchen und Sie könnten eine bestimmte Sicherheitskontrolle auf dem Zielfeld (es) mit Microsoft Baseline Security Analyzer oder ähnliche Werkzeuge.
- Da ich System erwähnt wiederherstellen Ich glaube, ich sollte erwähnen ist die letzte als funktionierend bekannte Konfiguration . Diese Funktion hat nichts mit der Deinstallation oder System zu tun wiederherzustellen, aber es ist die letzte Boot-Konfiguration, die funktionierte oder resultierte in einem laufenden System. Es kann Ihr System zu erhalten läuft wieder, wenn er oder Bluescreens stoppt beim Booten verwendet werden. Diese oft geschieht, nachdem Treiber installiert.
14. Windows Installer Functions (C++)
Für Vollständigkeit denke ich, sollten wir den Kern davon erwähnen alle - die down-to-the-Metall Art und Weise: die Win32-Windows Installer-API-Funktionen . Dies sind wahrscheinlich die Funktionen von den meisten genutzt, wenn nicht alle anderen Ansätze oben aufgeführten „unter der Haube“. Sie zeichnen sich durch Anwendungen oder Lösungen in erster Linie verwendet als Technologie direkt mit MSI zu tun.
Es gibt eine Antwort auf serverfault.com, die von Interesse wie eine Zusammenfassung der verschiedenen programmatischen Ansätze für die Deinstallation (COM Automation, .NET, Win32 Installer-Funktionen).
Im Folgenden finden Sie eine C ++ finden zeigt Code-Schnipsel wie Orca, 10.1.17134.12
von Produkt-Code zu deinstallieren, einen Aufruf an die MsiConfigureProductEx Funktion . So deinstallieren Sie ein anderes Produkt die GUID für prodcode
mit dem für das Produkt angegebenen ersetzen. Um den Produktcode finden sehen Sie diese Antwort: Wie kann ich das Produkt GUID einen installierten MSI-Setup finden?
Die Deinstallation wird in voller GUI-Modus passieren. So führen im Silent-Modus oder einem anderen GUI-Modus (reduziert, basic, etc ...) finden Sie in der: MsiSetInternalUI Funktion .
#include "pch.h"
#define WIN32_LEAN_AND_MEAN //Minimize includes from Windows.h
#include <windows.h>
#include <msi.h> // Windows Installer
#include <tchar.h>
#pragma comment(lib, "msi.lib") // To make code link
int main()
{
const TCHAR noreboot[] = _T("REBOOT=ReallySuppress");
const TCHAR prodcode[39] = _T("{D7B80ABC-1950-37B8-F851-C3783EED9C93}"); // Orca, 10.1.17134.12
UINT res = MsiConfigureProductEx(prodcode, INSTALLLEVEL_DEFAULT, INSTALLSTATE_ABSENT, noreboot);
return res; // Error Codes: https://msdn.microsoft.com/en-us/library/windows/desktop/aa376931(v=vs.85).aspx
}
Das Snippet wurde hergestellt und mit der neuesten Version von Visual Studio 2017 ab September 2018 getestet:
- Erstellen Sie eine neue "Windows-Konsolenanwendung" von Visual C ++ => Windows-Desktop.
- Kopieren und den obigen Code in Ihre Haupt CPP-Datei einfügen (als Ersatz für alles, was da ist).
-
Das sollte es in der Lage sein, den Code auszuführen. Vielleicht einen Haltepunkt setzen, erstellen und ausführen.
-
Hüten Sie sich vor Änderungen an der Default Vorlagen in VS2017 und die seltsamen Fehler, die entstehen können: Es gibt zu viele Fehler für die IntelliSense-Engine korrekt funktionieren. - UPDATE September 2018 : Vorlagen haben wieder geändert. Ich nicht mehr das oben genannte Problem sehen.
- Der Link MSDN im Code listet die möglichen Fehlermeldungen von msiexec.exe zurückgegeben.
-
Denken Sie auch daran, dass eine Deinstallation kann mit dem WMIC-Befehl ausgelöst werden:
wmic product get name
-> Damit werden die Namen aller installierten Anwendungen auflisten
wmic product where name='myappsname' call uninstall
. -> dies die App deinstallieren
Die msi
Dateierweiterung zugeordnet ist, Msiexec (gleiche Art und Weise einen TXT-Dateinamen auf einer Eingabeaufforderung startet Notepad / default .txt
Dateihandler eingeben, die Datei anzuzeigen).
So in einem Dateinamen mit einer Erweiterung .msi eingeben läuft wirklich msiexec mit der MSI-Datei als Argument und nimmt die Standardaktion, installieren. Aus diesem Grund müssen Sie die Deinstallation mit uninstall Schalter aufzurufen msiexec es unstall.
wmic product get name
wird einfach die cmd stecken ... noch blinkt _ nach ein paar Minuten
in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
, wenn Sie den Ordner mit den Namen der Software finden Sie versuchen, zu installieren (nicht die mit dem Namen Productcode), die UninstallString Punkte auf die eigenen Uninstaller C:\Program Files\Zune\ZuneSetup.exe /x
Anwendung
Ich würde die folgende Syntax versuchen -. Es funktioniert für mich
msiexec /x filename.msi /q
Ich gehe davon aus, dass, wenn Sie int file.msi in die Befehlszeile eingeben, von Windows automatisch msiexec file.msi für Sie anruft. Ich gehe davon aus, weil, wenn Sie in eingeben picture.png es die Standard-Bildbetrachter bringt.