Bir kurulum paketini MECM’e eklerken kendinize sorduğunuz iki soru var mı: bu kurulum gerçekten kullanıcı etkileşimi olmadan çalışıyor mu, ve MECM bu uygulamanın kurulu olup olmadığını doğru anlıyor mu? Paketleme sürecinin başarısı büyük ölçüde bu iki sorunun cevabına bağlı.
Silent Install Parametresi Nereden Bulunur?
Her kurulum paketinin sessiz kurulum parametresi farklıdır. MSI paketlerinde genellikle standart bir kalıp var: msiexec /i uygulama.msi /qn /norestart. EXE paketlerinde (kurulum sihirbazı) durum üreticiye göre değişir — /S, /silent veya /verysilent gibi parametreler denenebilir, ama kesin cevap genellikle dokümantasyondadır. Bilinmeyen bir EXE ile karşılaştığımda ilk denediğim şey kurulum.exe /? veya /help komutuyla mevcut parametreleri keşfetmek oluyor.
Sessizce Başarısız Olan Kurulumları Yakalamak
MSI loglaması burada devreye giriyor:
msiexec /i uygulama.msi /qn /norestart /L*V "C:\Loglar\kurulum.log"
Kurulum görünüşte “sorun yok” derken aslında sessizce başarısız olduğunda, bu log dosyası gerçek hatayı — genellikle bir MSI hata kodunu — ortaya çıkarıyor.
Detection Method: MECM’in “Kurulu mu?” Sorusu
Detection method, platforma bir uygulamanın zaten kurulu olup olmadığını nasıl kontrol edeceğini söyler. Üç yaklaşım var. MSI Product Code en güvenilir yöntemdir, MSI’ın benzersiz GUID’ini kontrol eder. Dosya varlığı/versiyonu belirli bir .exe veya .dll dosyasının varlığını ve sürümünü kontrol eder — EXE tabanlı kurulumlar için gerekli. Registry anahtarı ise kurulumun bıraktığı bir registry değerini kontrol eder.
Detection method yanlış veya gevşek tanımlandığında iki sorun ortaya çıkar. Uygulama zaten kuruluyken MECM tekrar tekrar kurulum denemesi yapıp kullanıcıyı rahatsız edebilir, ya da tam tersi — uygulama kurulu değilken MECM “zaten kurulu” sanıp hiç kurulum yapmayabilir. İkisi de destek taleplerine yol açtığı için mümkün olduğunca MSI Product Code gibi kesin yöntemleri tercih ediyorum; dosya tabanlı tespit gerektiğinde de sadece dosya varlığını değil, mutlaka sürüm numarasını da kontrol ediyorum.
Karmaşık Kurulumlarda Wrapper Script
Birden fazla ön koşulu veya özel kayıt defteri ayarı olan kurulumlarda, doğrudan MSI/EXE yerine bir PowerShell wrapper script kullanmayı tercih ediyorum:
# Install.ps1 örneği
Start-Process msiexec.exe -ArgumentList "/i uygulama.msi /qn /norestart" -Wait
if ($LASTEXITCODE -eq 0) {
# Ek yapılandırma adımları (registry, config dosyası vb.)
Set-ItemProperty -Path "HKLM:\SOFTWARE\Sirket\Uygulama" -Name "Yapilandirildi" -Value 1
}
exit $LASTEXITCODE
Kısaca
Sağlam bir paketleme süreci sadece kurulumu çalıştırmaktan ibaret değil; sessiz kurulumu doğrulamayı, güvenilir bir detection method tanımlamayı ve başarısızlık durumlarını loglamayı gerektiriyor. Bu disipline uyulduğunda MECM üzerinden yapılan dağıtımlar gerçek anlamda “kur ve unut” seviyesine yaklaşıyor.