Bagaimana cara mengekstrak file dari paket MSI?

192

Kami memiliki beberapa tambalan lama tempat kami ingin mendapatkan file tetapi tidak ingin menghabiskan waktu menginstalnya ke mesin.

Adakah yang bisa menyarankan cara untuk mengekstrak file dari paket instalasi MSI?

Martin
sumber
Dapatkah Anda memberikan informasi lebih lanjut tentang apa yang sebenarnya paket instalasi MSI Anda ingin mengekstrak, rincian OS Anda dll
Firee

Jawaban:

212

Pertama, akses prompt perintah yang ditinggikan, untuk melakukan ini:

  1. Klik tombol Mulai.

  2. Klik Semua Program.

  3. Pergilah ke Aksesoris.

  4. Klik kanan pada Command Prompt.

  5. Pilih Jalankan sebagai administrator.

  6. Saat Prompt UAC muncul, klik Lanjutkan.

Setelah Anda memiliki prompt perintah yang ditinggikan, masukkan yang berikut ini:

msiexec /a drive:\filepath\to\MSI\file /qb TARGETDIR=drive:\filepath\to\target\folder

menggunakan lokasi yang diinginkan untuk mengisi filepath yang disebutkan di atas. Contoh:

msiexec /a c:\testfile.msi /qb TARGETDIR=c:\temp\test
Komunitas
sumber
5
Google cepat lainnya muncul ini: legroom.net/software/uniextract Saya lebih suka menggunakan built-in tetapi sepertinya utilitas yang dapat diterima.
5
Sejauh yang saya mengerti (dari msiexec /?), Perintah ini sebenarnya akan menginstal program ke lokasi itu; Saya tidak berpikir inilah yang ada dalam pikiran pemohon semula.
8
@ user6738 Saya sudah menguji ini dan tidak menginstal perangkat lunak. Perangkat lunak tidak ditemukan di appwiz juga tidak dapat dihapus instalasinya melalui msi dan melaporkan bahwa itu tidak diinstal. Ini benar-benar mengekstrak file dari pengujian saya.
Adam Caviness
17
Saya menjalankan ini pada komputer Win8.1 yang terkunci (laptop kerja) dan perlu dicatat bahwa hak Admin TIDAK diperlukan untuk mengekstrak .msifile.
MattDMo
5
Jawaban bagus! Saya memasukkan ini ke dalam extractMSI.cmdfile: msiexec /a %1 /qb TARGETDIR="%~d1%~p1%~n1" || pausedan menambahkannya ke opsi "Open with ..." msi-file
Tobias Kienzler
75

Gunakan 7Zip .
Ini akan membongkar MSI, CAB, beberapa EXE, dan banyak lagi paket untuk Anda. Tidak perlu hak istimewa admin untuk menjalankan ini juga.

-SUNTING-

Dan ini open source, jadi tidak ada pesan yang mengganggu yang meminta Anda untuk membeli barang

Shekhar
sumber
13
dan setelah mencobanya, msiexec melakukan pekerjaan yang lebih baik (menjaga direktori, memberi nama file dengan benar, dll.)
Michael Schubert
Ini sepertinya tidak berfungsi untuk saya pada win7 x64 dengan 32-bit 7-Zip. Apakah ada cara tertentu (bukan drag-drop) yang harus Anda kirim untuk membuka file?
ebyrob
Seharusnya ada opsi 7zip di menu konteks ketika Anda mengklik kanan file - itu akan memberi Anda pilihan untuk mengekstrak file
Shekhar
7
Saya melihat banyak hal dengan tanda seru di depan alih-alih file yang sebenarnya. Saya kira ada sesuatu yang berubah atau saya memiliki file msi aneh. Saya mencoba 7-Zip 9.20.
mlt
@MichaelSchubert - itu tergantung. Jika Anda menjalankan mesin non-Windows, 7Zip adalah pilihan yang baik karena versi baris perintah juga tersedia untuk sistem lain. Tergantung pada use case yang akan saya katakan.
Per Lundberg
46

Ada juga lessMsi yang sepenuhnya gratis dan open source.

Tidak ada iklan atau pesan yang mengganggu, ini akan mempertahankan struktur direktori dan nama file dengan benar, memiliki antarmuka baris perintah yang canggih , serta antarmuka pengguna grafis yang memungkinkan penelusuran melalui file serta melihat tabel MSI internal dan atribut MSI lainnya.

Scott Willeke
sumber
7
Terima kasih! Yang ini membantu saya untuk mengekstrak dari MSI yang tidak akan mengekstraksi dengan perintah msiexec yang mengatakan "admin install tidak didukung" untuk <instalasi paket nama>
axk
1
yang ini membantu .. msiexec tidak mengekstraksi karena beberapa alasan ..
Abdul Hameed
23

Ada dukungan MSI bawaan untuk ekstraksi file (admin install)

MSI atau Windows Installer memiliki dukungan bawaan untuk ini - ekstraksi file dari file MSI. Ini disebut instalasi administratif . Ini pada dasarnya dimaksudkan sebagai cara untuk membuat titik instalasi jaringan dari mana instalasi dapat dijalankan pada banyak komputer target. Ini memastikan bahwa file sumber selalu tersedia untuk operasi perbaikan apa pun.

Perhatikan bahwa menjalankan instalasi admin dibandingkan menggunakan alat zip untuk mengekstrak file sangat berbeda! Yang terakhir tidak akan menyesuaikan tata letak media dari tabel media sehingga paket diatur untuk menggunakan file sumber eksternal - yang merupakan cara yang benar. Selalu lebih suka menjalankan penginstalan admin yang sebenarnya di atas ekstraksi zip yang diretas. Adapun kompresi, sebenarnya ada tiga algoritma kompresi yang berbeda yang digunakan untuk file cab di dalam format file MSI: MSZip, LZX, dan Menyimpan (tidak terkompresi). Semua ini ditangani dengan benar dengan melakukan instalasi admin.


Admin-instal memiliki banyak kegunaan

Disarankan untuk membaca lebih lanjut tentang admin-instal karena ini adalah konsep yang berguna, dan saya telah menulis posting di stackoverflow: Apa tujuan dari instalasi administratif yang dimulai menggunakan msiexec / a? .

Intinya admin menginstal penting untuk:

  • Mengekstrak dan memeriksa file penginstal
  • Penempatan melalui perangkat lunak manajemen sistem misalnya SCCM (menghindari file MSI yang besar dan di-cache di C: \ Windows \ Installer karena file diekstraksi dari kabin internal)
  • Pengemasan ulang aplikasi perusahaan
  • Perbaikan, modifikasi, dan operasi perbaikan sendiri
  • Penambalan & peningkatan
  • Iklan MSI (fitur " lari dari sumber ")
  • Sejumlah detail kecil lainnya

Silakan baca posting stackoverflow yang ditautkan di atas untuk detail lebih lanjut. Ini adalah konsep yang cukup penting untuk administrator sistem , pembuat paket aplikasi , pengembang pengaturan , manajer rilis , dan bahkan pengguna biasa untuk melihat apa yang mereka instal dll ...


Admin-instal, cara praktis

Anda dapat melakukan admin-instal dalam beberapa cara berbeda tergantung pada bagaimana pemasang dikirimkan. Pada dasarnya itu dikirim sebagai file MSI atau dibungkus dengan file setup.exe .

Jalankan perintah ini dari prompt perintah yang ditinggikan , dan ikuti instruksi di GUI untuk baris perintah interaktif:

  • MSI file :

    msiexec /a File.msi
    

    itu untuk dijalankan dengan GUI, Anda juga bisa melakukannya secara diam-diam:

    msiexec /a File.msi TARGETDIR=C:\MyInstallPoint /qn
    
  • file setup.exe :

    setup.exe /a
    

Sebuah setup.exe berkas juga bisa menjadi gaya warisan setup (non-MSI) atau ditakuti InstallScript MSI jenis file - terkenal kereta Installshield jenis proyek dengan non-standar-compliant Format MSI hybrid. Ini pada dasarnya adalah MSI dengan GUI khusus yang lebih canggih, tetapi juga penuh dengan bug.

Untuk warisan setup.exe file yang / a akan melakukan apa-apa, tapi Anda dapat mencoba / extract_all: [path] saklar seperti yang dijelaskan dalam pdf ini . Ini adalah referensi yang bagus untuk instalasi diam dan hal-hal lain juga. Sumber lain adalah daftar ini dari parameter baris perintah Installshield setup.exe .

File tambalan MSI (* .MSP) dapat diterapkan ke gambar admin untuk mengekstrak file-nya dengan benar. 7Zip juga akan dapat mengekstrak file, tetapi mereka tidak akan diformat dengan benar.

Akhirnya, jika tidak ada cara lain yang berfungsi, Anda bisa mendapatkan file setup yang diekstraksi dengan membersihkan folder temp pada sistem Anda, meluncurkan setup.exe secara interaktif dan kemudian menunggu dialog pertama muncul. Dalam kebanyakan kasus, penginstal akan mengekstraksi banyak file ke folder temp. Terkadang file-file tersebut polos, kali lain dalam format CAB, tetapi Winzip, 7Zip atau bahkan Universal Extractor (belum menguji produk ini) - mungkin dapat membukanya.

Stein Åsmul
sumber
Lihat juga jawaban ini: superuser.com/questions/307678/…
Stein Åsmul
Posting yang sama pada stackoverflow: stackoverflow.com/a/24987512/129130 (saya harus menghapus satu, tetapi keduanya terbalik dan mereka baru saja digabungkan).
Stein Åsmul
8

Saya akan merekomendasikan UniExtract untuk membuat solusi neoice lebih mudah. Itu melakukan hal yang sama, hanya lebih otomatis dan memungkinkan beberapa metode untuk mengekstraksi file MSI, bukan hanya instalasi administratif (seperti solusinya menggunakan).

UniExtract juga dapat menangani exe yang dikemas dengan WISE atau InstallShield, serta berbagai format terkompresi lainnya. Oh, dan gratis.

Universal Extractor adalah program yang melakukan apa yang dikatakannya: mengekstrak file dari semua jenis arsip, apakah itu file zip sederhana, program instalasi, atau bahkan paket Windows Installer (.msi).

Mick
sumber
1

Anda dapat menggunakan Orca aplikasi ini adalah bagian dari Platform SDK, tetapi Anda juga dapat mengunduhnya dari sini http://astebner.sts.winisp.net/Tools/Orca.zip

michael
sumber
3
Orca lebih baik untuk mengekstraksi meta-data seperti tabel file, folder, dan registri. Ini umumnya tidak terlalu berguna untuk mengekstraksi file aktual (sama sekali tidak berguna jika file tidak disimpan dalam tabel biner).
Synetech
1

lessmsibenar-benar pilihan terbaik di sini, karena menawarkan Anda untuk memilih file apa yang harus diekstrak dan ke mana mereka harus pergi. Selain itu dapat dengan mudah diinstal menggunakan apt-getkerangka kerja untuk windows, yang disebut Choclatey. Situs lessmsiweb di atas telah dipindahkan dan juga dapat ditemukan / diunduh di GitHub . Selain itu, Anda dapat menemukan banyak alat lain dan informasi terkait MSI DI SINI. : (Maaf, saya tidak dapat memposting lebih dari 2 tautan!)

not2qubit
sumber
1

Tambahkan PeaZip ke daftar. Bekerja seperti jagoan

JOpuckman
sumber
Silakan baca Bagaimana saya merekomendasikan perangkat lunak untuk beberapa tips tentang bagaimana Anda harus merekomendasikan perangkat lunak. Paling tidak Anda harus menyediakan lebih dari sekadar tautan, misalnya beberapa informasi tambahan tentang perangkat lunak itu sendiri, misalnya bagaimana dapat digunakan untuk menyelesaikan masalah dalam pertanyaan.
DavidPostill
0

Cukup unduh Universal Extractor . Ini mengekstrak semua jenis file, termasuk .exe, .msi, .rar, .zip, .kgb dan banyak lagi.

vivek
sumber
0

Setupshield .exe setup (seperti Anda menyebutnya) datang dalam banyak rasa, dan umumnya memungkinkan untuk mengekstrak file dari mereka.

Installshield setup.exe dapat berisi installer non-msi lama, lawas atau installer msi baru.

Jika setup.exe membungkus pengaturan MSI, Anda dapat menentukan setup.exe / a dan instalasi admin MSI akan berjalan, memungkinkan Anda untuk menentukan dan menampilkan lokasi untuk file.

Jika setup.exe adalah setup Installshield lama, itu mungkin atau mungkin tidak mendukung mengekstraksi file melalui / extract_all: [path] switch . Silakan lihat di sini (diperbarui Juli 2011, tautan Acresso tidak lagi valid, diperbarui lagi Februari 2014 - menunjuk ke itninja sekarang).

Perhatikan juga bahwa cara lain untuk mendapatkan file-file ini adalah dengan membersihkan folder temp pada sistem Anda, meluncurkan setup.exe secara interaktif dan kemudian menunggu dialog pertama muncul. Dalam kebanyakan kasus, penginstal akan mengekstraksi banyak file ke folder temp. Terkadang file-file tersebut polos, kali lain dalam format CAB, tetapi Winzip, 7Zip atau bahkan Universal Extractor (belum menguji produk ini) - mungkin dapat membukanya.

Stein Åsmul
sumber
Persyaratan saya untuk melakukan ini telah berlalu sekarang - tetapi saya akan mencoba apa yang Anda sarankan pada beberapa titik untuk melihat apakah itu akan berhasil. Terima kasih telah merespons.
Martin