MSİEXEC kullanmadan MSI dosyasını komut satırından kaldırma

msiexec bir MSI programı yükler komut istemi yazılımdır. Ancak komut satırındaki MSI dosyasının adını yazarak komut satırından bir MSI dosyası yükleyebileceğinizi buldum.

ancak MSI dosyasını kaldırmak için msiexec programını aramanız ve /x veya /uninstall vermeniz gerekiyor gibi görünüyor .

komut satırından bir MSI'Yİ nasıl kaldırabilirim msiexec rutin kullanarak?

47
tarihinde sordu Stein Åsmul 2009-01-16 13:37:02
kaynak

7 ответов

kısa cevap: yapamazsın. Msıexec /x

kullanın

uzun cevap: MSI dosyasını doğrudan komut satırına çalıştırdığınızda, tüm bunlar sizin için MSİEXEC çalıştırmasıdır. Bu ilişki kayıt defterinde saklanır. Araçlar / Klasör Seçenekleri / dosya türlerine giderek (Windows Gezgini'nde) derneklerin bir listesini görebilirsiniz.

örneğin, bir çalıştırabilirsiniz .Komut satırından DOC dosyası ve WordPad veya WinWord sizin için açılacaktır.

HKEY_CLASSES_ROOT\.msi altında kayıt defterine bakarsanız HKEY_CLASSES_ROOT\.msi , bunu göreceksiniz .MSI dosyaları " Msı " ile ilişkilendirilirler .Paket." HKEY_CLASSES_ROOT\Msi.Package\shell\Open\command e bakarsanız, a "çalıştırdığınızda" Windows aslında kullandığı Komut satırını görürsünüz .MSI dosyası.

44
cevap Roger Lipscombe 2009-01-16 13:46:17
kaynak

bir MSI paketini kaldırmanın birçok yolu vardır. Bu bir "referans"olarak tasarlanmıştır.

özeti aracılığıyla kaldırabilirsiniz: msiexec.exe , ARP , WMI , PowerShell , dağıtım sistemleri gibi SCCM , VBScript / COM Otomasyon, DTF veya gizli Windows önbellek klasörü ve aşağıda sunulan birkaç başka seçenek.

ilk birkaç paragraf önemli MSI çerezlerini sağlar, daha sonra bir MSI dosyasını kaldırmanın farklı yolları olan 14 bölümleri vardır. Puh.

bölümleri 1 , 2 ve 3 normal kaldırma vardır yaklaşımlar (ve dolayısıyla tavsiye). Şahsen Bölüm 3'ten seçenek 3 veya 5 kullanıyorum (her iki seçenek de günlüğe kaydetme ile birlikte, ancak seçenek 5 de sessizce çalışır). Eğer çok meşgul iseniz, tüm gevezelik atlamak ve bunlardan biri için gitmek-bu işi alacak.


varsa tamamen kaldırma sorunları ve kullanımdan kaldırılan için bir alternatif arıyoruz MsiZap.exe ve / veya Windows Installer temizleme programı ( MSICUU2.exe ), Microsoft'tan yeni Fixİt aracını deneyebilirsiniz ( veya uluslararası sayfa ). Görünüşe göre diğer yükleme sorunları için de çalışabilir.


düşünüyorsanız MSI ve Windows Installer daha fazla sorun buna değer, MSI dosyalarını kullanmanın kurumsal faydaları hakkında okumak isteyebilirsiniz .


Installscript MSI kurulumları genellikle kurulumunda sarılır.exe dosyası . Bu tür kurulumları kaldırmak için kullanılacak parametreler hakkında daha fazla bilgi için lütfen aşağıdaki bağlantılara bakın: kurulumu.exe pdf referans sayfası , Kur.exe ve güncelleme.exe komut satırı parametreleri .


bazı MSI dosyaları (WiX Toolkit) veya InstallShield Suite ' projeleri . Bu ne biraz farklı yapabilirsiniz aşağıda görüldü. İşte InstallShield Suite projeleri için bir örnek .


sessizce veya etkileşimli çalışan farklı sonuçlara neden olabilir unutmayın (!) . Bunun neden böyle olduğunu oldukça uzun bir açıklama için, lütfen bu yazıyı okuyun: Kontrol Panelinden kaldırma kaldırmak farklıdır .msı


beklenmedik bir şekilde kaldırmaya çalışırken orijinal kurulum medyası sorulursa, lütfen bu cevabı okuyun: neden MSI orijinali gerektiriyor .msı dosyası bir kaldırma ile devam etmek? ve belki de bazı önemli teknik detaylar için aşağıda 12.bölüm.


varsa CCleaner veya benzer temizleme araçları yüklü, belki Bölüm 11 atlamak .


kaldırma tamamen başarısız olursa (çalıştırmak mümkün değilse), Sistem Geri Yükleme ve / veya temizleme araçlarını kullanarak olası bir yol için bölümüne bakın.


1. orijinal MSI

kullanma
  • eğer kurulum için kullanılan orijinal MSI erişiminiz varsa, sadece sağ ' Windows Explorer tıklayın ve kaldırma seçin .
  • Bölüm 3'te açıklandığı gibi komut satırı aracılığıyla da kaldırabilirsiniz.

2. ARP (Program Ekle/Kaldır) uygulamasını kullanarak

  • sadece
  • açıktır rağmen normal bir yaklaşım söz var
  • Go Başlat koş appwiz.cpl açmak için girin Program Ekle / Kaldır uygulaması (veya Denetim Masası'nda Program Ekle/ Kaldır'a tıklayın)
  • tıklayın " Kaldır " kaldırmak istediğiniz ürün için.

3. msıexec kullanarak.exe komut satırı (doğrudan veya toplu iş dosyası üzerinden)

  • komut istemi ( cmd.exe ), toplu dosya veya hatta kabuk işlemi olarak bir yürütülebilir içinden.
  • bunu ürün GUID (bu GUID bulmak için aşağıda kontrol edin ) veya msiexec' orijinal MSI dosyasına yol.exe .
  • aşağıdaki tüm komut satırları için şunları yapabilirsiniz /qn için /qn Ekle sessiz modda kaldırmayı çalıştırın. Ekle/Kaldır uygulamasından tetiklendiğinde bir kaldırma nasıl çalışır.

    • seçenek 1: Basic ınteractive uninstall (orijinal MSI dosyasına erişim):

       msiexec.exe /x "c:\filename.msi"
      
    • seçenek 2: Ürün GUID üzerinden temel etkileşimli kaldırma (orijinaline erişim yok MSI file - işte ürün GUID bulmak için nasıl - aşağıdaki gibi aynı bağlantı):

       msiexec.exe /x {11111111-1111-1111-1111-11111111111X}
      
    • seçenek 3: ayrıntılı günlük dosyası ile etkileşimli kaldırma :

       msiexec.exe /x "c:\filename.msi" /L*V "C:\msilog.log"
       msiexec.exe /x {11111111-1111-1111-1111-11111111111X} /L*V "C:\msilog.log"
      
    • seçenek 4: ( ayrıntılı, floş log seçeneği - yazma günlüğü sürekli, çok yavaş olabilir):

       msiexec.exe /x "c:\filename.msi" /L*V! "C:\msilog.log"
       msiexec.exe /x {11111111-1111-1111-1111-11111111111X} /L*V! "C:\msilog.log"
      
      • günlük dosyası yerine toplu olarak sürekli yazılır çünkü kaldırma yavaş oturum açma seçeneği yapar. Bu, kurulum çökerse hiçbir günlük arabelleği kaybolmasını sağlar.

      • başka bir deyişle, kurulum çökmesini ve hiçbir yararlı ise bu seçeneği etkinleştirin ayrıntılı günlük dosyanızdaki bilgiler . Oturum açma seçeneğini kapatmak için ünlem işaretini kaldırın ve kaldırma çok daha hızlı olacaktır. Hala ayrıntılı günlüğü alırsınız, ancak belirtildiği gibi bazı günlük arabelleği kaybolabilir.

    • (Oturum no flush - bu ne için önceki seçenek görmek bastırmak yeniden doğmuş '1519180920 ayrıntılı günlük dosyası (önerilen) 5 '15191670920

      1519170920' Seçeneği: Sessiz kaldırın' demek):

       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
      

      hızlı parametre Açıklaması (Bu seçeneği tavsiye ettiğimden beri):

       /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
      

      tekrar, nasıl ürün guid bulmak için: yüklü bir MSI kurulumunun ürün kılavuzunu nasıl bulabilirim? (kaldırma komutu belirtmek için orijinal MSI yoksa kaldırma için).

  • top ipucu : Eğer kaldırmanız için bir günlük dosyası oluşturun, 'değer 3' ile günlük sorunları bulabilirsiniz . Bu, ayrıntılı dosyalar için özellikle yararlıdır, çünkü bunlar çok iyi, ayrıntılı :-).

  • yüklü bir MSI için Ürün GUID nasıl bulunur ?

  • oturum açma hakkında daha fazla bilgi installsite.org : nasıl oluştururum kurulumumun bir günlük dosyası ? - farklı seçenekler ve ayrıca InstallShield günlüğü özelliklerini büyük bir bakış.

  • Msiexec (komut satırı seçenekleri) - msiexec için komut satırına genel bakış.exe dan MSDN . İşte Technet sürümü .

4. önbelleğe alınmış MSI veritabanı süper gizli önbellek klasöründe

kullanma
  • MSI, tüm kabinleri (eski Windows sürümleri) çıkarır ve % SystemRoot% \ İnstaller de süper gizli bir sistem klasörüne yüklenen her bir MSI önbelleğe alır (görmek için gizli dosyaları göstermeniz gerekir).
  • NB : bu akşam yemeği gizli klasör şimdi Windows 7'de farklı şekilde tedavi ediliyor. MSI dosyaları artık tam boyutlu önbelleğe alınır . Daha fazla bilgi için bağlantılı iş parçacığını okuyun - önerilen bu cevabı bulan ve tehlikeli Windows ayarlarıyla keman yapan herkes için okuyun.
  • buradaki tüm MSI dosyalarının rastgele bir adı (hex biçimi) atanacak, ancak Windows Explorer durum çubuğunu (Görünüm -> Durum Çubuğu) göstererek ve daha sonra bir MSI seçerek her MSI hakkında bilgi alabilirsiniz. Bu MSI'DEN Özet akışı, Windows Explorer penceresinin alt kısmında görünür olacaktır. Veya Christopher Galpin'in belirttiği gibi, Windows Gezgini'nde "yorumlar" sütununu açın ve MSI dosyasını seçin ( bu makaleyi ).
  • Sağ MSI bulduktan sonra bunu sağ tıklayın ve Kaldır'a tıklayın.
  • ayrıca yerel olarak önbelleğe alınmış tam yolunu göstermek için PowerShell kullanabilirsiniz Ürün adı ile birlikte paket. Bu benim görüşüme göre en kolay seçenektir.
  • PowerShell : Windows tuşunu basılı tutun, R'ye dokunun, Windows tuşunu bırakın, "powershell" yazın ve tuşuna basın . Sonra PowerShell penceresini en üst düzeye çıkarın ve aşağıdaki komutu çalıştırın:
    get-wmiobject Win32_Product | Format-Table Name, LocalPackage -AutoSize

Enter image description here


5. PowerShell

Kullanma
  • benzer, ancak daha kapsamlı PowerShell komut dosyası MSDN mevcuttur . Birkaç üzerinde çalıştırılmasını sağlar makineler.
  • hatta mien tarafından eklenen giriş:

    $app = Get-WmiObject -Class Win32_Product -Filter "Name = 'YOUR_APP'"
    $app.Uninstall()
    
  • bu yaklaşım işe yarayacak, ancak WMI sınıfı Win32_product'a erişmek, yazılım tutarlılığı kontrolü olan çok yavaş tetikleyecek ve özel durumlarda bir MSI kendiliğinden onarımın tetiklenmesine neden olabilir. Bu makaleye bakın: Powershell Uninstall Script-Have a gerçek baş ağrısı

  • bunu kendim test etmedim, ancak $ app görünüyor.Uninstall (), ARP uygulamasının kayıt defteri ayarlarında kayıtlı kaldırma işlemini başlatabilir. Bu, bazı durumlarda kaldırma yerine değişiklik çalıştırabileceği anlamına gelir.
  • Powershell aracılığıyla kaldırmanın daha fazla ayrıntı ve yolları için bu konuyu kontrol edin: PowerShell kullanarak bir uygulamayı nasıl kaldırabilirim?

6. . Net DTF sınıf kitaplığı ( WiX toolkit parçası )

    using Microsoft.Deployment.WindowsInstaller;

    public static void Uninstall( string productCode)
    {
      Installer.ConfigureProduct(productCode, 0, InstallState.Absent, "REBOOT=\"R\"");
    }

7. Windows Installer Otomasyon API kullanma


8. Windows Installer major upgrade

kullanma
  • başka bir MSI dosyasının yüklenmesinin bir parçası olarak bir Windows Installer büyük yükseltme olabilir.
  • önemli bir yükseltme MSI'NİN " yükseltme tablosu ilgili ürünleri belirleyerek kaleme alınmıştır. Bu ilgili kurulumlar daha sonra tabloda belirtildiği gibi işlenir. Genellikle bu, kaldırıldıkları anlamına gelir, ancak ana kurulum da iptal edilebilir (genellikle kutuda bulunan kendi uygulamanızın daha yüksek sürümlerini algılamak için kullanılır).

9. kullanarak gelişmiş bir dağıtım sistemi / Uzaktan Yönetim Sistemi

  • SCCM , Ca Unicenter , IBM'in Tivoli , Altiris müşteri yönetimi Paketi ve diğerleri
  • bu araçlar Gelişmiş istemci PC yönetimi özelliği ve bu MSI dosyaları
  • yükleme ve kaldırma içerir
  • bu araçlar msıexec bir arada kullanmak gibi görünüyor.exe, otomasyon, WMI , vb... ve hatta kendi çağırma yöntemleri ve kaldırıyor.
  • tecrübelerimde bu araçlar çok fazla "kişilik" özelliğine sahiptir ve farklı şeyler yapma yollarına uyum sağlamanız gerekir.

10. Kullanma WMI - Windows Yönetim Araçları


11. 15196460920 'ccleaner veya benzeri

gibi bir üçüncü taraf aracı kullanma
  • . Windows uygulamaları, yalnızca MSI paketlerini değil, eski yükleyicileri de kaldırmak için kendi arayüzüne sahiptir.
  • burada (özellikle ticari olanlar) herhangi bir özel araç önerileri yapmak istemiyorum, ama iyi bilinen CCleaner böyle bir kaldırma arayüzü özellikleri (ve ücretsiz bir sürümü vardır). Ayrıca şunu da eklemeliyim bu araç son zamanlarda kötü amaçlı yazılım saldırısı geçirdi .
  • sanırım hepimiz zararsız yazılımların bile indirme yerlerinde (FTP saldırısı) kötü amaçlı yazılımlarla enjekte edilebileceğini hatırlamalıyız.
    • kullanıyorum virustotal.com yüklemelerimi kontrol etmek için ve ayrıca Sysinternals Process Explorer kurulumdan sonra çalışan işlemleri kontrol etmek için - düzenli güvenlik yazılımı ile birlikte (hangisi varsa).
    • A şaşırtıcı miktarda "gri alan" yazılımı genellikle bu yaklaşımla (araç çubukları, suratlar, adware, vb.) bulunur...), birkaç yanlış pozitif ile birlikte (güvenlik yazılımı erişimini engellerken veya çok fazla bulanık hale getirirken karantinaya aldıklarında da sorunlara neden olabilirler). Ve kesinlikle gerçek kötü amaçlı yazılım da.
    • Process Explorer için bazı kullanım ipuçları burada bulunabilir-tweets bir dizi-bu Process Explorer aracı kadar kanca VirusTotal.com tüm çalışan işlemleri etkileşimli olarak kontrol etmek için-ihtiyacınız olan tek şey birkaç yapılandırma adımıdır.
    • Process Explorer'ın bir dosya imza denetimi verdiğine Dikkat Etmeliyim, ancak sezgisel olmayan - anladığım kadarıyla (şüpheli işlemler için kontrol yok, işaretlenmiş dosyalar için 60+ güvenlik paketi içeren bir kontrol). Etkileşimli, çevrimiçi sezgisel koruma için düzenli bir güvenlik aracına ihtiyacınız var.
    • buna değer ne için, bazı düşünüyorum güvenlik yazılımı, kötü amaçlı yazılımdan daha fazla yanlış pozitif soruna neden oluyor. Ransom-ware döneminde ünlü son sözler...
    • yeterince büyük bir digression - sadece insanların kötü amaçlı yazılım indirdiğini görmek istemiyorum. virustotal.com en azından kontrol edin.
  • bunun gibi kaldırma işlemi Tamam çalışmalıdır. Bence bu araçlar "temizleme" denediğinizde çok fazla şeyle uğraşıyor özellikler " yine de. Dikkatli kullanın. Yalnızca kaldırma özelliğini kullanırsanız, Tamam olmalısınız.

12. 1519630920 'msizap veya benzeri

gibi bir temizleme aracı kullanma
  • for completeness msizap.exe kullanımdan kaldırılmış , desteklenmeyen ve , .
  • yeni Windows sürümlerinde kullanılmamalıdır
  • bu komut satırı aracı ( msizap.exe ) ayrıca mevcut bir GUI vardı ( MSICUU2.exe ). Her iki araç da kullanımdan kaldırılmıştır.
  • bu araçların amaçlanan kullanımı başarısız kaldırma oldu :
    • genellikle nadir durum için önbelleğe alınmış MSI rastgele isim yanlışlıkla eksik ve orijinal MSI sorarken kaldırma bu nedenle başarısız olur
      • bu nadir bir sorundur, ancak kendim gördüm. Sadece birkaç potansiyel neden:
        • Sistem Geri Yükleme ile müdahale ? Önceki bir sistem görüntüsünün geri yüklenmesi yanlışlıkla önbelleğe alınmış bir MSI dosyasını siler mi?
        • kötü tasarlanmış temizleme uygulamaları değil mi?
        • MSI tasarım sorunları veya msıexec bir çökme.nihai ürün kaydı sırasında kurulum sonuna doğru exe? Önbelleğe alma işlemi yüklemeye başlamadan önce yapıldığından bunu pek olası buluyorum, ancak MSI dosyaları geliştirirken böyle sorunlar gördüm.
        • a ani elektrik kesintisi ? Windows Yükleyicisinde yerleşik koruma nedeniyle de biraz olası değildir, ancak ani güç kaybı her zaman beklenmedik sonuçlara neden olabilir sonuçlar.
        • anti-virüs veya önbelleğe alınmış MSI dosyasına erişimi silme veya engelleme diğer güvenlik yazılımı?
        • bir MSI geliştiriyorsanız ve test yeniden yüklemeyi sürdürüyorsanız, bu sorunu yapılar arasında aynı paket kodunu yeniden kullanarak tetikleyebilirsiniz (MSI, farklı MSI dosyalarını, paket kodu aynı ise tanımla aynı dosya olarak ele alır-her türlü garip sorun sonucu). Bu genellikle sadece çok özel bir durumdur geliştirme veya QA için kullanılan bilgisayarlarda görülür.
        • kullanıcı veya yönetici elle siler MSI dosyaları kaydetmek veya mevcut oluşturmak için önbellek klasöründen disk alanı ya da sadece Windows ayarları ile tamircilik. Klasör" süper gizli " ve erişmek zordur, ancak onu bulmak ve dosyaları silmek hala mümkündür.
        • kesinlikle olası nedenler vardır, ancak liste zaten çok uzun ve hantal oldu.
    • başarısız kaldırma diğer türleri için de
    • açıkçası tavsiye edilmez olsa da, herhangi bir MSI kurulumunu zap için de kullanılabilir.
    • daha fazla bilgi: neden MSI orijinal gerektirir .msı dosyası bir kaldırma ile devam etmek?
  • bu yeni destek aracı (bu araç şimdi de kullanımdan kaldırılmış) MSI paketlerini kaldırmanız gerekiyorsa son Windows sürümlerinde denenmiş olabilir.
  • bazı saschabeaumont tarafından burada bağlantılı aracı kullanmayı önerdi: bir MSI dosyası olmadan Kaldır . Eğer deneyin ve çalışır, lütfen bize bildirin emin olun.
  • Aslında ürünü yüklemek için kullanılan orijinal MSI'YE erişiminiz varsa, kaldırmayı çalıştırmak için bunu kullanabilirsiniz. Kullanılan tam MSI olmalı, sadece benzer bir MSI değil.

13. Kullanma Sistem Geri Yükleme ("Yükleme geri alma" - son çare IMHO)

  • bu kesinlikle " için bir yol değil konuşuyor. " ama " ' " son yükleme, ya da bu konu için birkaç yükler.
  • geri yükleme noktası üzerinden geri yükleme sistemi önceki yükleme durumu (YouTube'da veya benzer bir sitede bunun video demolarını bulabilirsiniz).
  • özelliği tamamen veya kısmen devre dışı bırakılabilir unutmayın-yüklemek başına tüm makine veya adhoc için kalıcı devre dışı bırakmak mümkündür.
  • bir sistem geri yüklemesinden kaynaklanan yeni, çözülemeyen kurulum sorunlarını gördüm, ancak normalde Tamam çalışıyor . Açıkçası eğlence için özelliği kullanmayın. Bu son çare ve en iyi yeni sürücülerin geri alma ya da sadece yüklü ve acil sorunlara neden olduğu tespit edilmiştir kurulumları için kullanılır ( bluescreen , yeniden başlatma, istikrarsızlık, vb..).
  • daha uzun kendiniz için yaratacağınız daha fazla yeniden işleme geri dönersiniz ve risk ne kadar yüksek olur. Çoğu sistem sadece birkaç geri yükleme noktasına sahiptir ve çoğu sadece bir veya iki ay geriye uzanır.
  • Sistem Geri yüklemesinin Windows güncellemelerini etkileyebileceğini ve daha sonra tekrar uygulanması gerektiğini unutmayın-diğer birçok sistem ayarlarının yanı sıra. Saf sıkıntıların ötesinde, bu da güvenlik sorunlarının yeniden ortaya çıkmasına neden olabilir ve belirli bir çalıştırmak isteyebilirsiniz Microsoft Baseline Security Analyzer veya benzeri araçları kullanarak hedef kutusunda(es) güvenlik kontrolü.
  • Sistem Geri yüklemesinden bahsettiğimden beri son bilinen İyi Yapılandırma özelliği . Bu özellik kaldırma veya Sistem Geri Yükleme ile ilgisi yoktur, ancak çalışan bir sistemle çalışan veya sonuçlanan son önyükleme yapılandırmasıdır. Bu önyükleme sırasında bluescreens veya halts ise sisteminizi tekrar çalıştırmak için kullanılabilir. Bu genellikle sürücü yüklendikten sonra olur.

14. Windows Installer İşlevleri (C++)

tamlık için sanırım hepsinin çekirdeğinden bahsetmeliyiz-aşağıdan yukarıya doğru yol: Win32 Windows Installer API işlevleri . Bunlar muhtemelen çoğu tarafından kullanılan işlevlerdir, hepsi değilse yukarıda listelenen diğer yaklaşımlar "kaputun altında". Bunlar öncelikle bir teknoloji olarak MSI ile doğrudan uğraşan uygulamalar veya çözümler tarafından kullanılır.

üzerinde bir cevap var serverfault.com (COM Automation,. net, Win32 ınstaller functions) ' yi kaldırmak için farklı programlı yaklaşımların bir özeti olarak ilginizi çekebilir.

aşağıda Orca, 10.1.17134.12 un nasıl kaldırılacağını gösteren bir C++ snippet bulacaksınız. MsiConfigureProductEx işlevi çağrısı kullanarak Ürün Kodu . Başka bir ürünü kaldırmak için prodcode için belirtilen GUID'Yİ ürününüz için olanla değiştirin. Ürün kodunu bulmak için şu cevabı görün: yüklü bir MSI kurulumunun ürün kılavuzunu nasıl bulabilirim?

kaldırma tam GUI modunda olacak. Sessiz modda veya başka bir GUI modunda (azaltılmış, temel vb.) çalıştırmak için..), bakınız: MsiSetİnternalUİ işlevi .

#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
}

snippet yapılmış ve Visual Studio 2017 son sürümü ile test edildi Eylül 2018 itibariyle:

  1. Visual C++ => Windows masaüstünden yeni bir "Windows konsol uygulaması" oluşturun.
  2. yukarıdaki kodu ana CPP dosyanıza kopyalayın ve yapıştırın (orada ne varsa değiştirin).
  3. bu kodu çalıştırmak mümkün olmalıdır. Belki de bir kesme noktası ayarlamak, kurmak ve çalıştırmak.

    • Vs2017'deki varsayılan şablonlardaki değişikliklerden ve neden olabilecek garip hatalardan sakının: IntelliSense motorunun doğru çalışması için çok fazla hata var .
    • güncelleme Eylül 2018 : şablonlar tekrar değişti. Artık göremiyorum. yukarıdaki konu.
    • koddaki MSDN bağlantısı msıexec ' den döndürülen Olası hata mesajlarını listeler.exe.
127
cevap Stein Åsmul 2018-09-14 00:35:40
kaynak

ayrıca, WMIC komutunu kullanarak bir kaldırmanın başlatılabileceğini unutmayın:

wmic product get name - > bu yüklü tüm uygulamaların adlarını listeler

wmic product where name='myappsname' call uninstall - > bu uygulamayı kaldıracaktır.

30
cevap themrnutz 2013-08-01 22:03:28
kaynak

msi dosya uzantısı msiexec eşlenir (aynı şekilde yazarak bir .txt dosya adı bir komut istemi başlattı dosyasını görüntülemek için/varsayılan .txt dosya işleyicisi) Not Defteri.

böylece bir dosya adı ile yazarak .msı uzantısı gerçekten MSI dosyası ile msiexec bağımsız değişken olarak çalışır ve varsayılan eylemi alır, yükleyin. Bu nedenle, kaldırma unstall it için kaldırma anahtarı ile msiexec çağırmak gerektirir.

3
cevap Tuminoid 2015-09-06 19:59:33
kaynak
wmic product get name

sadece cmd sıkışmış alır... hala birkaç dakika sonra _ yanıp sönen

in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall , eğer yüklemeye çalıştığınız yazılım adıyla (ProductCode ile adlandırılmış değil) klasörü bulursanız, kaldırma işlemi uygulamanın kendi kaldırıcı C:\Program Files\Zune\ZuneSetup.exe /x

işaret eder
2
cevap sdaffa23fdsf 2011-11-10 10:57:25
kaynak

aşağıdaki sözdizimini deneyeceğim-benim için çalışıyor.

msiexec /x filename.msi /q 
1
cevap Peter Mortensen 2013-06-17 22:49:30
kaynak

int dosyasını yazarken bunu varsayıyorum.msı komut satırına, Windows otomatik olarak msiexec dosyasını çağırıyor.senin için msi. Bunu varsayıyorum çünkü resim yazarken.png bu varsayılan resim görüntüleyici getiriyor.

-1
cevap smack0007 2009-01-16 13:46:01
kaynak