Selamlar arkadaşlar,
Bu makalemizde sizlere msiexec.exe ile komut satırı üzerinden msi dosyalarının nasıl yükletileceğini göstermeye çalışacağım.
Bu komutu kullanmamızın nedeni MSI ve MSP paketleri yükletebilmemiz, administrator hakları ile yükletebilmemiz, silebilmemiz, sessiz kurulum gibi geniş olanakları bize sunduğundan dolayı kullanıyoruz.
Genel Kullanımı :
msiexec.exe <install_option> <path_to_package> [package_parameters]
Install Option : Bir paketi yükletmek istediğiniz zaman aşağıdaki özellikleri kullanabilirsiniz.
Kullanımı : msiexec.exe [/i][/a][/j{u|m|/g|/t}][/x] <path_to_package>
/i = Normal yükleme.
/a = Administrative yetkisi ile yükleme.
/j = Paket hakkında bilgi verir.
u = Geçerli kullanıcıyı tanıtır.
m = Tüm kullanıcıları tanıtır.
/g = Paket tarafından kullanılan dili tanıtır.
/t = Paketi tanıtmak için dönüşüm uygular.
/x = Paketi siler.
Örnek :
msiexec.exe /i “C:/Deneme.msi”
Display Options : Yükleme işlemi sırasında kullanıcı tarafından görülen kısmı düzenlenebilir. Örneğin : Kullanıcıya dağıtılacak olan paketin bir arayüzü olmalıdır. Ancak programı Group Policy üzerinden dağıtımız zaman kullanıcı tarafından işlemlerin görünmemesi gerekmektedir. Bu parametreler sayesinde yükleme sırasında kullanıcı tarafında gözükecek kısımları kontrol ediyoruz.
Kullanımı : msiexec.exe /i <path_to_package> [/quiet][/passive][/q{n|b|r|f}]
/quiet = Sessiz mode. (Kullanıcı tarafında herhangi bir yükleme gözükmeyecektir.)
/passive = Katılımsız mode. (Kullanıcı tarafından sadece progress’i görülecektir.)
/q = Kullanıcı arabirimini ayarlar.
n = Kullanıcı arabirimi olmadan yapar.
n+ = Kullanıcı arabirimi yoktur yüklemenin sonunda messagebox olarak açıklama yapar.
b = Basit kullanıcı arabirimi sunar.
b+ = Basit kullanıcı arabirimi ile sonunda messagebox vardır. Eğer kullanıcı yüklemeyi iptal ederse messagebox gözükmeyecektir. Cancel butonunu gizlemek için qb+! Ya da qb!+ komutlarını kullanabiliriz.
b- = Basit kullanıcı arabirimi ile messagebox yoktur. /qb+- parametresi desteklenmez. qb-! Ya da qb!- değerlerini Cancel butonunu gizlemek için kullanabiliriz.
r = Daraltılmış seçenekler bulunan kullanıcı arabirimi.
f = Katılımlı kurulum olarak da söyleyebiliriz. Kurulum sırasındaki bütün arabirim kullanıcı tarafından görüntülenecektir.
Örnek :
msiexec.exe /i “C:/Deneme.msi” /qn
Restart Options : Bazen bir yüklemenin tamamlanabilmesi ya da bir dosyanın üstüne bilgi yazabilmek için restarta gereksinim duyarlar. Bunun için yapılabilecek işlemler aşağıdadır.
Kullanımı : msiexec.exe /i <path_to_package> [/norestart][/promptrestart][/forcerestart]
/norestart = Yükleme işlemi bittikten sonra cihaza restart atılmayacaktır.
/promptrestart = Kurulumun bitmesi için restart gerekicek ise kullanıcı uyarılır.
/forcerestart = Kurulum bittikten sonra cihaz restarta zorlanacaktır.
Örnek :
msiexec.exe /i “C:/Deneme.msi” /norestart
Logging Options : Yükleme sırasında oluşacak olan hataları görüp müdahale edebilmek için logging options’ları kullanarak Log almasını sağlayabilirsiniz. Kullandığımız her parametre farklı bir log tutacaktır.
Kullanımı : msiexec.exe [/i][/x] <path_to_package> [/L{i|w|e|a|r|u|c|m|o|p|v|x+|!|*}][/log] <path_to_log>
/L = Bu komut ile loglama aktif edilir.
i = Durum mesajını ekle.
w = Ölümcül olmayan hataları ekle.
e = Bütün hata mesajlarını ekle.
a = Bir uygulama başladı zaman log’la.
r = Eyleme özgü kayıtları içerir.
u = Kullanıcı isteklerini ekler.
c = Kullanıcı arayüz parametrelerini ekler.
m = Yetersiz bellek ve ölümcül çıkış bilgilerini ekler.
o = Yetersiz disk mesajını ekler.
p = Terminal özelliklerini ekler.
v = Ayrıntılı olarak çıktı alır.
x = Extraq çalıştırma bilgilerini ekler.
+ = Var olan log dosyasını ekler.
! = Günlük dosyasını boşaltır.
* = Bütün bilgileri loglar. V ve x hariç olarak.
/log = /L* a eşdeğerdir.
Örnek :
msiexec.exe /i “C:/Deneme.msi” /L*V “C:/Loglar.log”
Update Options :
Kullanımı : msiexec.exe [/p][/update][/uninstall[/package<product_code_of_package>]] <path_to_package>
/p = MSP patchlerini yükler. Bir patchi sessizce kurarken, REINSTALLMODE özelliğini “ecmus” ve REINSTALL’ıda “ALL” yapmaya ihtiyaç duyarız. Aksi taktirde MSI cache’inde bulunan Updateler yüklenecektir.
/update = Güncellemeleri uygular. (Eğer birden fazla güncelleme varsa “;” işareti ile her birini ayırabilirsiniz.)
/uninstall = Üründen update’i siler. (Eğer birden fazla güncelleme varsa “;” işareti ile her birini ayırabilirsiniz.)
/package = Belirlenen paketteki updatelerin silinmesi için kullanılır.
Örnekler :
msiexec.exe /p “C:\MyPatch.msp”
msiexec.exe /p “C:\MyPatch.msp” /qb REINSTALLMODE=”ecmus” REINSTALL=”ALL”
msiexec.exe /update “C:\MyPatch.msp”
msiexec.exe /uninstall {1BCBF52C-CD1B-454D-AEF7-852F73967318} /package {AAD3D77A-7476-469F-ADF4-04424124E91D}
Repair Option : Eğer bir paketiniz varsa ve uyumluysa, onarma işlemini yapabilirsiniz.
/f = Paketi onarır.
p = Kayıp olan paketi onarır.
o = Kayıp paket varsa ya da eski bir sürümü yüklenmişse onarır.
e = kayıp, benzer ve ya eski bir versiyon yüklenmişse onarır.
d = Kayıp ya da farklı bir sürüm yüklenmişse onarır.
c = Paket kayıp ya da hesaplanan değerle uyuşmuyorsa onarır.
a = Yeniden yüklenmesi için bütün dosyaları zorlar.
u = Kullanıcıya özgü olan bütün register girdilerini onarır.
m = Bilgisayara özgü olan bütün register girdilerini onarır.
s = Var olan bütün kısayolları onarır.
v = Kaynaktan çalıştırır ve local paketi yeniden atar.
Örnek :
msiexec.exe /fa {AAD3D77A-7476-469F-ADF4-04424124E91D}
Kolaylıklar dilerim.