Jak wyodrębnić pliki z pakietu MSI?

192

Mamy kilka starych łat, z których chcemy pobrać pliki, ale nie chcemy tracić czasu na instalowanie ich na komputerze.

Czy ktoś może doradzić sposób wyodrębnienia plików z pakietu instalacyjnego MSI?

Jaskółka oknówka
źródło
Czy możesz podać więcej informacji o tym, jaki dokładnie pakiet instalacyjny MSI chcesz wyodrębnić, o szczegółach swojego systemu operacyjnego itp.
Firee

Odpowiedzi:

212

Najpierw przejdź do wiersza polecenia z podwyższonym poziomem uprawnień, aby to zrobić:

  1. Kliknij przycisk Start.

  2. Kliknij Wszystkie programy.

  3. Idź do Akcesoria.

  4. Kliknij prawym przyciskiem myszy Wiersz polecenia.

  5. Wybierz Uruchom jako administrator.

  6. Gdy pojawi się monit UAC, kliknij Kontynuuj.

Po wyświetleniu wiersza polecenia z podwyższonym poziomem uprawnień wprowadź następujące dane:

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

używając żądanych lokalizacji do wypełnienia wyżej wymienionych ścieżek plików. Przykład:

msiexec /a c:\testfile.msi /qb TARGETDIR=c:\temp\test
Społeczność
źródło
5
pojawił się inny szybki Google: legroom.net/software/uniextract Wolałbym używać wbudowanych, ale wygląda to na akceptowalne narzędzie.
5
O ile rozumiem (z msiexec /?), To polecenie faktycznie zainstaluje program w tej lokalizacji; Nie sądzę, żeby o tym myślał pierwotny wnioskodawca.
8
@ user6738 Przetestowałem to i nie instaluje oprogramowania. Oprogramowanie nie znajduje się w appwiz ani nie można go odinstalować za pomocą MSI i informuje, że nie zostało zainstalowane. Naprawdę wypakowuje pliki z mojego testu.
Adam Caviness
17
Uruchomiłem to na zablokowanym komputerze Win8.1 (laptopie roboczym) i należy zauważyć, że prawa administratora NIE są potrzebne do rozpakowywania .msiplików.
MattDMo
5
Świetna odpowiedź! Umieściłem to w extractMSI.cmdpliku: msiexec /a %1 /qb TARGETDIR="%~d1%~p1%~n1" || pausei dodałem go do opcji „Otwórz za pomocą” w pliku msi
Tobias Kienzler,
75

Użyj 7Zip .
Rozpakuje MSI, CAB, trochę EXE i wiele innych pakietów dla Ciebie. Nie ma też uprawnień administratora, aby to uruchomić.

-EDYTOWAĆ-

I jest to oprogramowanie typu open source, więc żadne dokuczliwe wiadomości nie zachęcają do zakupu

Shekhar
źródło
13
i po wypróbowaniu msiexec wykonuje lepszą robotę (zachowując katalogi, poprawnie nazywając pliki itp.)
Michael Schubert
Nie działało to dla mnie na Win7 x64 z 32-bitowym 7-Zip. Czy jest jakiś szczególny sposób (nie przeciągnij i upuść), który musisz powiedzieć, aby otworzyć plik?
ebyrob
Po kliknięciu pliku prawym przyciskiem myszy powinna być dostępna opcja 7zip - daje to opcję wyodrębnienia plików
Shekhar,
7
Widzę wiele rzeczy ze znakiem wykrzyknika z przodu zamiast rzeczywistych plików. Chyba coś się zmieniło lub mam dziwny plik MSI. Próbowałem 7-Zip 9.20.
mlt
@MichaelSchubert - to zależy. Jeśli korzystasz z komputera innego niż Windows, 7Zip jest dobrą opcją, ponieważ wersja wiersza poleceń jest dostępna również dla innych systemów. Powiedziałbym, że zależy od przypadku użycia.
Per Lundberg
46

Istnieje również lessmsi, które jest całkowicie darmowe i open source.

Nie ma reklam ani dokuczliwych komunikatów, zachowa poprawnie strukturę katalogu i nazwy plików, ma wyrafinowany interfejs wiersza poleceń , a także graficzny interfejs użytkownika, który umożliwia przeglądanie plików, a także przeglądanie wewnętrznych tabel MSI i innych atrybutów MSI.

Scott Willeke
źródło
7
Dzięki! Ten pomógł mi wydobyć z MSI, które nie byłoby wydobyć z polecenia msiexec mówiąc: „admin zainstalować nie jest obsługiwany” dla <nazwa pakietu instalacyjnego>
AXK
1
ten pomógł ... msiexec z jakiegoś powodu nie wyodrębnił ...
Abdul Hameed
23

Jest wbudowana obsługa MSI dla ekstrakcji plików (instalacja administratora)

Instalator MSI lub Windows ma wbudowaną obsługę tego - wyodrębnianie plików z pliku MSI. Nazywa się to instalacją administracyjną . Jest to zasadniczo sposób na utworzenie punktu instalacji sieciowej, z którego można uruchomić instalację na wielu komputerach docelowych. Zapewnia to, że pliki źródłowe są zawsze dostępne dla wszelkich operacji naprawy.

Pamiętaj, że uruchomienie instalacji administratora w porównaniu z użyciem narzędzia zip do wyodrębnienia plików jest bardzo różne! Ten ostatni nie dostosuje układu multimediów tabeli multimediów, tak aby pakiet był ustawiony na używanie zewnętrznych plików źródłowych - co jest poprawnym sposobem. Zawsze wolę uruchamiać faktyczną instalację administratora zamiast wszelkich hakujących wypakowań zip. W przypadku kompresji istnieją trzy różne algorytmy kompresji plików cab w formacie MSI: MSZip, LZX i Storing (nieskompresowane). Wszystkie są obsługiwane poprawnie przez instalację administratora.


Instalacje administracyjne mają wiele zastosowań

Zaleca się, aby przeczytać więcej o instalacjach administratora, ponieważ jest to przydatna koncepcja, a ja napisałem post na stackoverflow: Jaki jest cel instalacji administracyjnej zainicjowanej przy użyciu msiexec / a? .

Zasadniczo instalacja administratora jest ważna dla:

  • Wyodrębnianie i sprawdzanie plików instalatora
  • Wdrożenie za pomocą oprogramowania do zarządzania systemami, na przykład SCCM (pozwala uniknąć dużych, buforowanych plików MSI w C: \ Windows \ Installer, ponieważ pliki są wyodrębniane z wewnętrznych kabin)
  • Przepakowywanie aplikacji korporacyjnych
  • Operacje naprawcze, modyfikacyjne i samonaprawcze
  • Patchowanie i aktualizacje
  • Reklama MSI (funkcja „ uciekaj ze źródła ”)
  • Wiele innych mniejszych szczegółów

Proszę przeczytać post stackoverflow link powyżej, aby uzyskać więcej informacji. Jest to dość ważna koncepcja dla administratorów systemu , programów pakujących , programistów instalacji , menedżerów wydań , a nawet przeciętnego użytkownika, aby zobaczyć, co instalują itp.


Instalacja przez administratora, praktyczne instrukcje

Możesz przeprowadzić instalację administratora na kilka różnych sposobów, w zależności od sposobu dostarczenia instalatora. Zasadniczo jest on dostarczany jako plik MSI lub zawinięty w plik setup.exe .

Uruchom te polecenia z wiersza polecenia z podwyższonym poziomem uprawnień i postępuj zgodnie z instrukcjami w graficznym interfejsie użytkownika dla interaktywnych wierszy poleceń:

  • Pliki MSI :

    msiexec /a File.msi
    

    to działa z GUI, możesz to zrobić również po cichu:

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

    setup.exe /a
    

Plik setup.exe może być również instalacją starszego stylu (nie MSI) lub budzącym grozę typem pliku MSI Installcript - dobrze znanym błędnym typem projektu Installshield z hybrydowym niezgodnym formatem MSI. Zasadniczo jest to MSI z niestandardowym, bardziej zaawansowanym GUI, ale jest też pełen błędów.

Dla starszego typu setup.exe plików / a zrobi nic, ale można spróbować / extract_all: [ścieżka] przełącznik , jak wyjaśniono w tym PDF . Jest to dobre odniesienie do cichej instalacji, a także innych rzeczy. Innym zasobem jest lista parametrów wiersza polecenia Installshield setup.exe .

Pliki poprawek MSI (* .MSP) można zastosować do obrazu administratora, aby poprawnie wyodrębnić jego pliki. 7Zip będzie również mógł wyodrębnić pliki, ale nie będą one odpowiednio sformatowane.

Wreszcie, jeśli żaden inny sposób nie działa, możesz uzyskać wyodrębnione pliki instalacyjne, czyszcząc folder tymczasowy w systemie, interaktywnie uruchom plik setup.exe, a następnie poczekaj, aż pojawi się pierwsze okno dialogowe. W większości przypadków instalator rozpakuje kilka plików do folderu tymczasowego. Czasami pliki są zwykłe, innym razem w formacie CAB, ale Winzip, 7Zip lub nawet Universal Extractor (nie testowałem tego produktu) - mogą je otworzyć.

Stein Åsmul
źródło
Zobacz także tę odpowiedź: superuser.com/questions/307678/…
Stein Åsmul,
Ten sam post na stackoverflow: stackoverflow.com/a/24987512/129130 (powinienem usunąć jeden, ale oba są uprzywilejowane i zostały niedawno scalone).
Stein Åsmul,
8

Polecam UniExtract dokonywania rozwiązanie neoice jest jeszcze łatwiejsze. Robi to samo, po prostu jest bardziej zautomatyzowany i pozwala na kilka metod wyodrębniania plików MSI, a nie tylko instalację administracyjną (jak wykorzystuje jego rozwiązanie).

UniExtract może również obsługiwać pliki exe spakowane z WISE lub InstallShield, a także wiele innych skompresowanych formatów. Och, i to za darmo.

Universal Extractor to program, który robi dokładnie to, co mówi: wyodrębnia pliki z dowolnego typu archiwum, czy to zwykłego pliku zip, programu instalacyjnego, a nawet pakietu Instalatora Windows (.msi).

Mick
źródło
1

możesz korzystać z Orca, ta aplikacja jest częścią Platform SDK, ale możesz ją również pobrać tutaj http://astebner.sts.winisp.net/Tools/Orca.zip

Michael
źródło
3
Orca jest lepszy do wyodrębniania metadanych, takich jak tabele plików, folderów i rejestru. Na ogół nie jest to bardzo przydatne do wyodrębniania rzeczywistych plików (całkowicie bezużyteczne, jeśli pliki nie są przechowywane w tabeli binarnej).
Synetech,
1

lessmsijest naprawdę najlepszym wyborem tutaj, ponieważ umożliwia wybranie dokładnie tego, które pliki należy rozpakować i dokąd powinny się udać. Ponadto można go łatwo zainstalować przy użyciu apt-getframeworka dla systemu Windows, zwanego Choclatey. Powyższa lessmsiwitryna została przeniesiona i można ją również znaleźć / pobrać na GitHub . Ponadto można znaleźć wiele innych narzędzi i informacji związanych z MSI TUTAJ. : (Przepraszam, nie mogę opublikować więcej niż 2 linków!)

not2qubit
źródło
1

Dodaj PeaZip do listy. Pracował jak mistrz

JOpuckman
źródło
Przeczytaj Jak polecić oprogramowanie, aby uzyskać porady dotyczące tego, jak powinieneś polecać oprogramowanie. Przynajmniej powinieneś podać coś więcej niż tylko link, na przykład dodatkowe informacje o samym oprogramowaniu, na przykład, w jaki sposób można go użyć do rozwiązania problemu w pytaniu.
DavidPostill
0

Konfiguracje .exe Installshield (jak je nazywasz) są dostępne w wielu odmianach i zazwyczaj można z nich wyodrębnić pliki.

Instalator Installshield.exe może zawierać stare, starsze instalatory inne niż MSI lub nowe instalatory MSI.

Jeśli plik setup.exe owija konfigurację MSI, możesz określić plik setup.exe / a, a instalacja administratora MSI zostanie uruchomiona, umożliwiając określenie i lokalizację wyjściową plików.

Jeśli plik setup.exe jest starszą instalacją Installshield, może obsługiwać wypakowywanie plików za pomocą przełącznika / extract_all: [ścieżka] . Zobacz tutaj (zaktualizowano w lipcu 2011 r., Link Acresso nie był już ważny, zaktualizowano ponownie w lutym 2014 r. - teraz wskazuje itninja).

Pamiętaj również, że innym sposobem na przechwycenie tych plików jest wyczyszczenie folderu tymczasowego w systemie, interaktywne uruchomienie setup.exe, a następnie poczekanie na pojawienie się pierwszego okna dialogowego. W większości przypadków instalator rozpakuje kilka plików do folderu tymczasowego. Czasami pliki są zwykłe, innym razem w formacie CAB, ale Winzip, 7Zip lub nawet Universal Extractor (nie testowałem tego produktu) - mogą je otworzyć.

Stein Åsmul
źródło
Moje wymagania do zrobienia tego już minęły - ale spróbuję w pewnym momencie zasugerować, czy to zadziała. Dziękuję za odpowiedź.
Martin