Yüklü bir MSI kurulumunun ürün GUID'sini nasıl bulabilirim?
Yama**, **
kaldırma** ([**nasıl kaldırılır**][1]) gibi bakım işlemlerini gerçekleştirmek ve ayrıca **
denetim amacıyla yüklü bir MSI dosyası için ürün GUID`sini** bulmam gerekiyor.
58
2
Powershell'i hızlı başlatma: Windows tuşunu basılı tutun, R öğesine dokunun, "powershell" yazın ve Enter tuşuna basın; 2.
VBScript Kullan
Aşağıda "Alternatif Araçlar" (bölüm 3) altında açıklanmıştır. Bu seçenek, aşağıda ayrıntılı olarak açıklanan nedenlerden dolayı Powershell'den daha güvenli olabilir. Özünde (çok) daha hızlıdır ve WMI üzerinden gitmediği için MSI kendi kendini onarmayı tetikleyemez (doğrudan MSI COM API'e erişir - çok hızlı bir şekilde). Bununla birlikte, Powershell seçeneğinden daha karmaşıktır (birkaç satır kod). 3. Kayıt Defteri Arama
Bazıları kayıt defterinde bir şeyler aramaya yemin ediyor. Benim önerdiğim yaklaşım bu değil - ben uygun API'leri (ya da başka bir deyişle işletim sistemi işlev çağrılarını) kullanmayı seviyorum. Her zaman sadece API uygulamasının iç kısımları tarafından açıklanan garip istisnalar vardır:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
HKLM\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
HKCU\Software\Microsoft\Windows\CurrentVersion\Uninstall
Orijinal MSI Dosyası / WiX Kaynağı
Herhangi bir MSI dosyasının
Özellik tablosu
içindeÜrün Kodu
nu bulabilirsiniz (ve başka herhangi bir özelliği de). Ancak, GUID muhtemelen (nadiren) yükleme sırasında uygulanan bir dönüşüm tarafından geçersiz kılınabilir ve bu nedenle ürünün kayıtlı olduğu GUID ile eşleşmeyebilir (yukarıdaki 1. ve 2. yaklaşım, bu tür nadir senaryolarda Windows'ta kayıtlı olan gerçek ürün kodunu bildirecektir). MSI dosyalarını görüntülemek için bir araca ihtiyacınız vardır. İndirebileceğiniz ücretsiz araçların bir listesi için aşağıdaki yanıtın en altına bakın (veya aşağıdaki hızlı seçeneğe bakın): https://stackoverflow.com/questions/48482545/how-can-i-compare-the-content-of-two-or-more-msi-files/48482546#48482546 GÜNCELLEME: Kolaylık ve hız ihtiyacı için :-), SuperOrca'yı bu doğrudan indirme bağlantısından gecikmeden ve telaşlanmadan indirin - araç işi halletmek için yeterince iyidir - kurun, MSI'ı açın ve doğrudan Özellik tablosu'e gidin ve `ProductCode' satırını bulun (lütfen her zaman doğrudan indirilen bir bağlantıyı virüs kontrol edin - tabii ki - [virustotal]'ı kullanabilirsiniz.com]6 adresini kullanabilirsiniz - yüklediklerinizi taramak için düzinelerce anti-virüs ve kötü amaçlı yazılım paketini kullanan çevrimiçi tarama).Çıktı** buna benzer olmalıdır: *Not: Bazı garip nedenlerden dolayı "ProductCode" WMI'da "IdentifyingNumber" olarak adlandırılır. Yani başka bir deyişle - yukarıdaki resimde IdentifyingNumber ÜrünKodudur. Bu sorguyu çok sayıda uzak bilgisayara karşı uzaktan çalıştırmanız* gerekiyorsa, aşağıdaki "Uzak Bir Bilgisayardan Ürün Kodlarını Almak*" bölümüne bakın.
Bu durumda çıktı şuna benzer:
Ürün Kodlarını Uzaktaki Bir Bilgisayardan Alma
Teorik olarak, komutun kendisinin bir parçası olarak uzak bilgisayar adını belirtebilmeniz gerekir. İşte yukarıdaki komutun aynısı "RemoteMachine" (
-ComputerName RemoteMachine
bölümü eklendi) makinesinde çalışacak şekilde ayarlandı:Uygun bir etki alanında etki alanı yöneticisi haklarıyla çalışıyorsanız bu işe yarayabilir. Bir çalışma grubu ortamında (küçük ofis / ev ağı), çalışmasını sağlamak için muhtemelen kullanıcı kimlik bilgilerini doğrudan WMI çağrılarına eklemeniz gerekir. Ek olarak, WMI'daki uzak bağlantılar (en azından) Windows Güvenlik Duvarı, DCOM ayarları ve Kullanıcı Hesabı Denetimi (UAC) (artı Microsoft dışı ek faktörler - örneğin gerçek güvenlik duvarları, üçüncü taraf yazılım güvenlik duvarları, çeşitli türlerde güvenlik yazılımları, vb...) tarafından etkilenir. Çalışıp çalışmayacağı tam kurulumunuza bağlıdır.
PowerShell ile WMI'a Uzaktan Bağlanma GÜNCELLEME: Uzaktan WMI çalıştırma ile ilgili kapsamlı bir bölüm şu yanıtta bulunabilir: https://stackoverflow.com/questions/46637094/how-can-i-find-the-upgrade-code-for-an-installed-msi-file/46637095#46637095. Görünüşe göre bir güvenlik duvarı kuralı ve UAC isteminin bir kayıt defteri ayarlamasıyla bastırılması, işlerin bir çalışma grubu ağ ortamında çalışmasını sağlayabilir. Güvenlik açısından önerilen değişiklikler değil, ancak benim için işe yaradı.
Alternatif Araçlar
PowerShell, .NET çerçevesinin yüklenmesini gerektirir (şu anda 3.5.1 sürümünde görünüyor? Ekim, 2017). .NET yüklü olsa bile gerçek PowerShell uygulamasının kendisi de makinede eksik olabilir. Son olarak, PowerShell'in çeşitli sistem ilkeleri ve ayrıcalıkları tarafından devre dışı bırakılabileceğine veya kilitlenebileceğine inanıyorum. Durum buysa, ürün kodlarını almak için birkaç başka yol deneyebilirsiniz. Benim tercih ettiğim alternatif VBScript - hızlı ve esnektir (ancak belirli makinelerde kilitlenebilir ve komut dosyası yazmak her zaman araç kullanmaktan biraz daha karmaşıktır).
wbemtest.exe
.yi başlatın (*Windows tuşunu basılı tutun, R tuşuna dokunun, Windows tuşunu bırakın, "wbemtest.exe" yazın ve Tamam
a basın*).SELECT IdentifyingNumber,Name,Version FROM Win32_Product
ve "Use" (veya eşdeğeri - araç yerelleştirilecektir) seçeneğine tıklayın.WMIExplorer.exe
gibi özel, daha tam özellikli bir WMI aracını deneyebilirsinizSELECT IdentifyingNumber,Name,Version FROM Win32_Product
ve Çalıştır'a basın.msiinfo.csv
olarak adlandırılır.Hızlı Parametre Açıklaması:
Ayrıca isterseniz (verbose) günlük kaydını etkinleştirebilir ve sessiz modda çalıştırabilirsiniz, bu da bizi 2. seçeneğe götürür: Seçenek 2: Verbose günlük kaydı ile sessiz kaldırma (toplu iş dosyaları için daha iyi):
Hızlı Parametre Açıklaması:
Burada MSI kaldırma için kapsamlı bir referans bulunmaktadır (MSI paketlerini kaldırmanın çeşitli farklı yolları): https://stackoverflow.com/questions/450027/uninstalling-an-msi-file-from-the-command-line-without-using-msiexec/1055933#1055933. Kaldırmak için çok sayıda farklı yol vardır. Bir toplu iş dosyası yazıyorsanız, birkaç yaygın ve standart kaldırma komut satırı varyantı için lütfen yukarıda bağlantısı verilen yanıttaki 3. bölüme bir göz atın. Ve [msiexec.exe (komut satırı seçenekleri)]15 (MSDN'den msiexec.exe için komut satırına genel bakış) için hızlı bir bağlantı. Ve [Technet sürümü**]16 de.
Diğer MSI Özelliklerinin / Bilgilerinin Alınması (örn. Yükseltme Kodu)
Burada, kayıt defterini veya önbelleğe alınmış msi'yi kullanarak MSI bilgilerini almak için birkaç başka seçenek içeren benzer bir makale bulunmaktadır: https://stackoverflow.com/questions/11251034/find-guid-from-msi-file?
Benzer konular (referans ve kolay erişim için - bu listeyi temizlemeliyim):
Aradığınızı kolayca bulamayacağınız kadar çok yükleyiciniz varsa, burada bir filtre sağlamak ve görünen ada göre biraz daraltmak için bazı powershell'ler var.