Bagaimana cara mengotomatiskan pemasangan MSI?


11

Saya memiliki sekitar 20 aplikasi yang harus dijalankan dalam urutan tertentu. Saya ingin skrip mereka sehingga saya bisa melakukan ini dari jarak jauh.

Masing-masing aplikasi memiliki Setup.exe dan MSI.

Saya berharap hanya memiliki skrip sederhana yang memanggil MSI dengan file jawaban, tetapi sudah bertahun-tahun sejak saya melakukannya. Namun, saya tidak ingat bagaimana cara membuat file jawaban.

Apakah ini cara yang baik untuk melakukannya? Atau akankah ada cara yang lebih sederhana?

Jawaban:


17

Bicara tentang pertanyaan yang dimuat ...

Sebagai permulaan, abaikan setup.exe. Kemungkinannya hanya memanggil MSI. Atau kadang-kadang mereka mengekstrak banyak hal kemudian memanggil MSI, Anda biasanya dapat menonton direktori temp Anda ketika Anda menjalankan pengaturan dan mendapatkan ide tentang apa yang dilakukannya.

Saya selalu menipu dan melakukan instalasi kering ( msiexec /i path/to-install.msi /l*v /qn) dengan pencatatan cranked, kemudian memeriksa log dan memilih properti yang ingin saya atur dan atur melalui baris perintah. File jawaban tidak pernah berfungsi, atau tidak layak untuk melalui proses pembuatannya.

Kemudian saya menemukan InstEdit dan menggunakannya sebagai muatan kapal. Ini akan memungkinkan Anda mengedit properti MSI dan menghasilkan Transform yang kemudian dapat Anda masukkan sebagai argumen dalam skrip Anda: msiexec /i path/to/installer.msi /t path/to/transform.mst Saya sarankan mencobanya terlebih dahulu, ada versi gratis yang melakukan hampir semua hal.

Anda mungkin juga melihat di sini untuk semua switch msiexec.


+1 tetapi sayangnya sakelar tampaknya tidak berfungsi dengan semua MSI. Belum melihat mengapa, tapi itu pasti kasusnya dengan beberapa.
Ciaran

Tergantung pada bagaimana MSI diciptakan. Ada beberapa properti yang dapat Anda atur untuk mengabaikan parameter tertentu, IIRC. Biasanya menggunakan Instedit dan membangun Transform selalu berhasil, satu-satunya kesalahan yang saya temui biasanya manusia.
peelman

1
+1 untuk InstEdit
user66001

1
Metode log bekerja untuk saya. Penting untuk dicatat bahwa properti akan terdaftar sebagaiProperty(S) : PROPERTY_NAME...
Drew Chapin

5

Msiexec adalah alat yang Anda butuhkan. Memiliki parameter -q untuk membiarkannya menginstal hal-hal "tenang":

/ qn: Menampilkan tidak ada antarmuka pengguna.

/ qb: Menampilkan antarmuka pengguna dasar.

/ qr: Menampilkan antarmuka pengguna yang diperkecil dengan kotak dialog modal yang ditampilkan di akhir instalasi.

/ qf: Menampilkan antarmuka pengguna penuh dengan kotak dialog modal yang ditampilkan di akhir.

/ qn +: Menampilkan tidak ada antarmuka pengguna, kecuali untuk kotak dialog modal yang ditampilkan di akhir.

/ qb +: Menampilkan antarmuka pengguna dasar dengan kotak dialog modal yang ditampilkan di akhir.

/ qb-: Menampilkan antarmuka pengguna dasar tanpa kotak dialog modal.

Anda juga dapat memberikan opsi bernama (atau "properti") di akhir baris perintah; properti mana yang didukung tergantung pada paket. Sebagai contoh, perintah ini:

msiexec /qb /l* perl-log.txt /i ActivePerl.msi PERL_PATH=Yes PERL_EXT=Yes

... adalah cara Anda menginstal ActiveState Perl, menginstruksikan paket MSI untuk menambahkan Perl.exe ke PATH Anda dan untuk mengaitkan file .pl dengannya. ( sumber )


1
Perhatikan bahwa pengembang dapat memilih untuk menonaktifkan opsi / q di installer msi mereka.
Joel Coehoorn

2

Sebagian besar aplikasi dapat diinstal secara diam-diam dan karenanya dituliskan. Setiap Setup.exe dapat memiliki sejumlah switch potensial, sehingga memanggil vendor atau mencari situs web mereka adalah suatu keharusan. Terkadang Anda bisa mendapatkan info dengan memulai pengaturan dengan tombol / ?, / h / help. File MSI juga dapat memiliki sejumlah switch tetapi artikel ini parameter baris perintah MSI menyediakan daftar.

Saat membuat skrip proses Anda dapat menjalankan aplikasi yang menginstal dengan setup.exe dan kemudian meluncurkan file lain seperti MSI. Salah satu contoh adalah MS Office XP. Ketika ini terjadi, skrip Anda mungkin berpikir bahwa file yang Anda luncurkan sudah selesai dan mulai setup berikutnya yang gagal menyebabkan semuanya menuju ke selatan. Untuk menyiasatinya, coba bypass file setup dan langsung ke installer yang sebenarnya (berpotensi MSI) dengan opsi baris perintah. Jika itu tidak memungkinkan, Anda mungkin perlu membuat semacam penghentian waktu jeda. Saya dulu menggunakan sedikit utilitas bernama wait.exe yang saya temukan di internet tetapi ada sejuta cara untuk melakukan ini. Kunci dari scripting adalah untuk dapat mengidentifikasi bahwa aplikasi diinstal dengan benar sehingga instalasi selanjutnya dapat dimulai.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.