Làm cách nào để giải nén tập tin từ gói MSI?


192

Chúng tôi có một số bản vá cũ mà chúng tôi muốn lấy các tệp từ đó nhưng không muốn dành thời gian cài đặt chúng vào máy.

Bất cứ ai cũng có thể tư vấn một cách để giải nén các tập tin từ gói cài đặt MSI?


Bạn có thể cung cấp thêm thông tin về gói cài đặt MSI chính xác mà bạn muốn trích xuất, chi tiết về hệ điều hành của bạn, v.v.
Firee

Câu trả lời:


212

Đầu tiên, truy cập một dấu nhắc lệnh nâng cao, để làm điều này:

  1. Nhấp vào nút Bắt đầu.

  2. Nhấp vào Tất cả các chương trình.

  3. Đi vào Phụ kiện.

  4. Nhấp chuột phải vào Dấu nhắc Lệnh.

  5. Chọn Chạy với tư cách quản trị viên.

  6. Khi Dấu nhắc UAC xuất hiện, bấm Tiếp tục.

Khi bạn đã có dấu nhắc lệnh nâng cao, hãy nhập như sau:

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

sử dụng các vị trí mong muốn để điền vào các filepath đã đề cập ở trên. Thí dụ:

msiexec /a c:\testfile.msi /qb TARGETDIR=c:\temp\test

5
Một cách nhanh chóng khác Google đã bật lên điều này: legroom.net/software/uniextract Tôi muốn sử dụng các phần mềm tích hợp nhưng có vẻ như là một tiện ích chấp nhận được.

5
Theo như tôi hiểu (từ msiexec /?), Lệnh này sẽ thực sự cài đặt chương trình đến vị trí đó; Tôi không nghĩ đây là những gì người yêu cầu ban đầu nghĩ đến.

8
@ user6738 Tôi đã kiểm tra cái này và nó không cài đặt phần mềm. Phần mềm không được tìm thấy trong appwiz và cũng không thể gỡ cài đặt thông qua msi và báo cáo rằng nó không được cài đặt. Nó thực sự trích xuất các tập tin từ thử nghiệm của tôi.
Adam Caviness

17
Tôi đã chạy nó trên máy tính Win8.1 bị khóa (máy tính xách tay làm việc) và cần lưu ý rằng KHÔNG cần quyền quản trị để trích xuất .msitệp.
MattDMo

5
Câu trả lời chính xác! Tôi đặt nó vào một extractMSI.cmdtệp: msiexec /a %1 /qb TARGETDIR="%~d1%~p1%~n1" || pausevà thêm nó vào các tùy chọn "Mở bằng ..." của tệp msi
Tobias Kienzler

75

Sử dụng 7Zip .
Nó sẽ giải nén MSI, CAB, một số EXE và nhiều gói khác cho bạn. Không cần có đặc quyền quản trị để chạy cái này.

-BIÊN TẬP-

Và mã nguồn mở của nó, vì vậy không có tin nhắn cằn nhằn nào cầu xin bạn mua thứ đó


13
và sau khi thử nó, msiexec thực hiện công việc tốt hơn (bảo quản các thư mục, đặt tên tệp chính xác, v.v.)
Michael Schubert

Điều này dường như không hoạt động với tôi trên win7 x64 với 32-bit 7-bit. Có một cách cụ thể (không kéo-thả) mà bạn phải nói với nó để mở tệp không?
ebyrob

Cần có một tùy chọn 7zip trong menu ngữ cảnh khi bạn nhấp chuột phải vào tệp - nó sẽ cung cấp cho bạn tùy chọn để giải nén các tệp
Shekhar

7
Tôi thấy rất nhiều thứ có dấu chấm than ở phía trước thay vì các tập tin thực tế. Tôi đoán một cái gì đó đã thay đổi hoặc tôi có một tập tin msi lẻ. Tôi đã thử 7-Zip 9.20.
mlt

@MichaelSchubert - nó phụ thuộc. Nếu bạn đang chạy một máy không chạy Windows, 7Zip là một lựa chọn tốt vì phiên bản dòng lệnh cũng có sẵn cho các hệ thống khác. Phụ thuộc vào trường hợp sử dụng mà tôi muốn nói.
Per Lundberg

46

Ngoài ra còn có lessmsi hoàn toàn miễn phí và là nguồn mở.

Không có quảng cáo hoặc tin nhắn cằn nhằn, nó sẽ bảo vệ chính xác cấu trúc thư mục và tên tệp, có giao diện dòng lệnh tinh vi , cũng như giao diện người dùng đồ họa cho phép duyệt qua các tệp cũng như xem các bảng MSI bên trong và các thuộc tính MSI khác.


7
Cảm ơn! Điều này đã giúp tôi trích xuất từ ​​một MSI không trích xuất bằng lệnh msiexec với nội dung "cài đặt quản trị viên không được hỗ trợ" cho <tên gói cài đặt>
axk

1
Điều này đã giúp .. msiexec không giải nén vì một số lý do ..
Abdul Hameed

23

Có hỗ trợ MSI tích hợp để trích xuất tệp (cài đặt quản trị viên)

MSI hoặc Windows Installer có hỗ trợ tích hợp cho việc này - trích xuất các tệp từ tệp MSI. Điều này được gọi là cài đặt hành chính . Về cơ bản, nó được dùng như một cách để tạo một điểm cài đặt mạng mà từ đó cài đặt có thể chạy trên nhiều máy tính mục tiêu. Điều này đảm bảo rằng các tệp nguồn luôn có sẵn cho mọi hoạt động sửa chữa.

Lưu ý rằng việc chạy cài đặt quản trị viên so với sử dụng công cụ zip để giải nén các tệp là rất khác nhau! Cái sau sẽ không điều chỉnh bố cục phương tiện của bảng phương tiện để gói được đặt để sử dụng các tệp nguồn bên ngoài - đó là cách chính xác. Luôn luôn thích chạy cài đặt quản trị viên thực tế hơn bất kỳ trích xuất zip hacky nào. Để nén, thực tế có ba thuật toán nén khác nhau được sử dụng cho các tệp cab bên trong định dạng tệp MSI: MSZip, LZX và Lưu trữ (không nén). Tất cả những điều này được xử lý chính xác bằng cách cài đặt quản trị viên.


Quản trị viên cài đặt có nhiều công dụng

Bạn nên đọc thêm về cài đặt quản trị vì đây là một khái niệm hữu ích và tôi đã viết một bài đăng trên stackoverflow: Mục đích của cài đặt quản trị được bắt đầu bằng msiexec / a là gì? .

Về bản chất, cài đặt quản trị rất quan trọng đối với:

  • Trích xuất và kiểm tra các tập tin cài đặt
  • Triển khai thông qua phần mềm quản lý hệ thống, ví dụ SCCM (tránh các tệp MSI lớn, được lưu trong bộ nhớ cache trong C: \ Windows \ Installer vì các tệp được trích xuất từ ​​các taxi nội bộ)
  • Đóng gói lại ứng dụng doanh nghiệp
  • Sửa chữa, sửa đổi và tự sửa chữa hoạt động
  • Vá và nâng cấp
  • Quảng cáo MSI (tính năng " chạy từ nguồn ")
  • Một số chi tiết nhỏ khác

Vui lòng đọc bài stackoverflow được liên kết ở trên để biết thêm chi tiết. Đây là một khái niệm khá quan trọng đối với người quản trị hệ thống , người đóng gói ứng dụng , nhà phát triển thiết lập , người quản lý phát hànhthậm chí người dùng trung bình để xem những gì họ đang cài đặt, v.v ...


Quản trị viên cài đặt, cách thực hành

Bạn có thể thực hiện cài đặt quản trị theo một số cách khác nhau tùy thuộc vào cách trình cài đặt được phân phối. Về cơ bản, nó được phân phối dưới dạng tệp MSI hoặc được gói trong tệp setup.exe .

Chạy các lệnh này từ một dấu nhắc lệnh nâng cao và làm theo các hướng dẫn trong GUI cho các dòng lệnh tương tác:

  • Tệp MSI :

    msiexec /a File.msi
    

    Đó là để chạy với GUI, bạn cũng có thể làm điều đó một cách im lặng:

    msiexec /a File.msi TARGETDIR=C:\MyInstallPoint /qn
    
  • tập tin setup.exe :

    setup.exe /a
    

Một setup.exe tập tin cũng có thể là một thiết lập phong cách cũ (không MSI) hoặc sợ hãi InstallScript MSI loại tập tin - một lỗi Installshield loại dự án nổi tiếng với định dạng MSI phi tiêu chuẩn tuân thủ lai. Nó thực chất là một MSI với GUI tùy chỉnh, nâng cao hơn, nhưng cũng đầy lỗi.

Đối với các tệp setup.exe kế thừa , / a sẽ không làm gì cả, nhưng bạn có thể thử chuyển đổi / extract_all: [path] như được giải thích trong pdf này . Nó là một tài liệu tham khảo tốt cho cài đặt im lặng và những thứ khác là tốt. Một tài nguyên khác là danh sách các tham số dòng lệnh Installhield setup.exe .

Các tệp vá MSI (* .MSP) có thể được áp dụng cho hình ảnh quản trị viên để trích xuất chính xác các tệp của nó. 7Zip cũng sẽ có thể trích xuất các tệp, nhưng chúng sẽ không được định dạng chính xác.

Cuối cùng, nếu không có cách nào khác hoạt động, bạn có thể giữ các tệp thiết lập được trích xuất bằng cách dọn sạch thư mục tạm thời trên hệ thống của bạn, khởi chạy setup.exe một cách tương tác và sau đó đợi hộp thoại đầu tiên xuất hiện. Trong hầu hết các trường hợp, trình cài đặt sẽ trích xuất một loạt các tệp vào thư mục tạm thời. Đôi khi các tệp đơn giản, đôi khi ở định dạng CAB, nhưng Winzip, 7Zip hoặc thậm chí Universal Extractor (chưa thử nghiệm sản phẩm này) - có thể mở những tệp này.


Cũng xem câu trả lời này: superuser.com/questions/307678/
Kẻ

Bài đăng tương tự trên stackoverflow: stackoverflow.com/a/24987512/129130 (Tôi nên xóa một, nhưng cả hai đều được nâng cấp và chúng đã được hợp nhất gần đây).
Stein smul

8

Tôi muốn giới thiệu UniExtract để làm cho giải pháp của neoice thậm chí còn dễ dàng hơn. Nó cũng làm điều tương tự, chỉ là tự động hơn và cho phép một số phương pháp trích xuất các tệp MSI, không chỉ là cài đặt quản trị (như giải pháp của anh ấy đang sử dụng).

UniExtract cũng có thể xử lý exe được đóng gói với WISE hoặc InstallShield, cũng như một loạt các định dạng nén khác. Oh, và nó miễn phí.

Universal Extractor là một chương trình thực hiện chính xác những gì nó nói: giải nén các tệp từ bất kỳ loại lưu trữ nào, cho dù đó là tệp zip đơn giản, chương trình cài đặt hay thậm chí là gói Windows Installer (.msi).



1

bạn có thể sử dụng Orca ứng dụng này là một phần của SDK nền tảng, nhưng bạn cũng có thể tải xuống từ đây http://astebner.sts.winisp.net/Tools/Orca.zip


3
Orca là tốt hơn để trích xuất dữ liệu meta như tệp, thư mục và bảng đăng ký. Nói chung, nó không hữu ích lắm cho việc trích xuất các tệp thực tế (hoàn toàn vô dụng nếu các tệp không được lưu trữ trong bảng nhị phân).
Synetech

1

lessmsithực sự là lựa chọn tốt nhất ở đây, vì nó cung cấp cho bạn chọn chính xác những tập tin cần giải nén và nơi chúng nên đi. Ngoài ra, nó có thể dễ dàng cài đặt bằng cách sử dụng apt-getkhung cho các cửa sổ, được gọi Choclatey. lessmsiTrang web trên đã được di chuyển và nó cũng có thể được tìm thấy / tải xuống tại GitHub . Ngoài ra, bạn có thể tìm thấy nhiều công cụ khác và thông tin liên quan đến MSI TẠI ĐÂY. : (Xin lỗi, tôi không thể đăng nhiều hơn 2 liên kết!)


1

Thêm PeaZip vào danh sách. Làm việc như một nhà vô địch


Vui lòng đọc Làm thế nào để tôi giới thiệu phần mềm cho một số mẹo về cách bạn nên giới thiệu phần mềm. Ít nhất bạn nên cung cấp nhiều hơn là một liên kết, ví dụ như một số thông tin bổ sung về chính phần mềm, ví dụ như làm thế nào nó có thể được sử dụng để giải quyết vấn đề trong câu hỏi.
DavidPostill


0

Chỉ cần tải về Universal Extractor . Nó trích xuất tất cả các loại tệp, bao gồm .exe, .msi, .rar, .zip, .kgb và hơn thế nữa.



0

Cài đặt .exe cài đặt (như bạn gọi chúng) có nhiều hương vị, và nói chung có thể trích xuất các tệp từ chúng.

Một setuphield setup.exe có thể chứa các trình cài đặt cũ, không phải msi cũ hoặc các trình cài đặt msi mới.

Nếu setup.exe đang gói thiết lập MSI, bạn có thể chỉ định setup.exe / a và cài đặt quản trị viên của MSI sẽ chạy, cho phép bạn chỉ định và xuất vị trí cho các tệp.

Nếu setup.exe là một thiết lập cài đặt kế thừa, nó có thể hoặc không hỗ trợ giải nén các tệp thông qua khóa / extract_all: [path] . Vui lòng xem tại đây (cập nhật tháng 7 năm 2011, liên kết Acresso không còn hiệu lực, được cập nhật lại vào tháng 2 năm 2014 - chỉ vào itninja ngay bây giờ).

Cũng lưu ý rằng một cách khác để giữ các tệp này là xóa sạch thư mục tạm thời trên hệ thống của bạn, khởi chạy setup.exe tương tác và sau đó đợi hộp thoại đầu tiên xuất hiện. Trong hầu hết các trường hợp, trình cài đặt sẽ trích xuất một loạt các tệp vào thư mục tạm thời. Đôi khi các tệp đơn giản, đôi khi ở định dạng CAB, nhưng Winzip, 7Zip hoặc thậm chí Universal Extractor (chưa thử nghiệm sản phẩm này) - có thể mở những tệp này.


Yêu cầu của tôi để làm điều này đã được thông qua ngay bây giờ - nhưng tôi sẽ thử những gì bạn đề xuất vào một lúc nào đó để xem liệu nó có hoạt động không. Cảm ơn vì đã phản hồi.
Martin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.