# Uygulama Paketleme Standartları: Silent Install Parametreleri ve Detection Method Stratejileri

- Bağlantı: https://musti.org/sccm/sccm-uygulama-paketleme-silent-install-detection/
- Yayımlanma: 2026-09-21T21:44:11+03:00
- Yazar: mmutlu

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.
