ฉันจะแยกไฟล์ออกจากแพ็คเกจ MSI ได้อย่างไร


192

เรามีแพทช์เก่าที่เราต้องการรับไฟล์ แต่ไม่ต้องการใช้เวลาในการติดตั้งลงในเครื่อง

ทุกคนสามารถให้คำแนะนำวิธีการแตกไฟล์จากแพ็คเกจการติดตั้ง MSI ได้หรือไม่?


คุณสามารถให้ข้อมูลเพิ่มเติมเกี่ยวกับแพคเกจติดตั้ง MSI ที่คุณต้องการที่จะดึงรายละเอียดระบบปฏิบัติการของคุณ ฯลฯ
Firee

คำตอบ:


212

ก่อนอื่นให้เข้าถึงพรอมต์คำสั่งเพื่อทำสิ่งนี้:

  1. คลิกปุ่มเริ่ม

  2. คลิกโปรแกรมทั้งหมด

  3. ไปที่อุปกรณ์เสริม

  4. คลิกขวาที่พรอมต์คำสั่ง

  5. เลือก Run as administrator

  6. เมื่อการแจ้ง UAC ปรากฏขึ้นให้คลิกดำเนินการต่อ

เมื่อคุณมีพรอมต์คำสั่งยกระดับให้ป้อนข้อมูลต่อไปนี้:

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

ใช้ตำแหน่งที่ต้องการเพื่อเติมไฟล์พา ธ ที่กล่าวถึงข้างต้น ตัวอย่าง:

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

5
อีกอย่างรวดเร็ว Google เปิดขึ้นนี้: legroom.net/software/uniextract ฉันต้องการที่จะใช้ในตัว แต่ดูเหมือนว่ายูทิลิตี้ที่ยอมรับได้

5
เท่าที่ฉันเข้าใจ (จาก msiexec /?) คำสั่งนี้จะติดตั้งโปรแกรมไปยังตำแหน่งนั้นจริง ๆ ; ฉันไม่คิดว่านี่คือสิ่งที่ผู้ขอดั้งเดิมมีอยู่ในใจ

8
@ user6738 ฉันได้ทำการทดสอบแล้วและไม่ได้ติดตั้งซอฟต์แวร์ ไม่พบซอฟต์แวร์ใน appwiz และไม่สามารถถอนการติดตั้งผ่าน msi และรายงานว่าไม่ได้ติดตั้ง มันแยกไฟล์จากการทดสอบของฉันอย่างแท้จริง
Adam Caviness

17
ฉันรันสิ่งนี้ในคอมพิวเตอร์ Win8.1 ที่ถูกล็อค (แล็ปท็อปทำงาน) และควรสังเกตว่าสิทธิ์ผู้ดูแลระบบไม่จำเป็นต้องแตก.msiไฟล์
MattDMo

5
คำตอบที่ดี! ฉันใส่นี้ลงในextractMSI.cmdไฟล์msiexec /a %1 /qb TARGETDIR="%~d1%~p1%~n1" || pauseและเพิ่มให้กับ MSI-ไฟล์ "เปิดด้วย ..." ตัวเลือก
โทเบียส KIENZLER

75

ใช้7Zip
มันจะแกะ MSI, CAB, EXE บางส่วนและแพ็คเกจเพิ่มเติมให้คุณไม่จำเป็นต้องใช้สิทธิ์ของผู้ดูแลระบบในการเรียกใช้สิ่งนี้

-EDIT-

และเป็นโอเพ่นซอร์สดังนั้นจึงไม่มีข้อความที่จู้จี้ขอร้องให้คุณซื้อของ


13
และหลังจากลองใช้มัน msiexec จะทำงานได้ดีขึ้น (การเก็บรักษาไดเรกทอรีการตั้งชื่อไฟล์อย่างถูกต้องและอื่น ๆ )
Michael Schubert

ดูเหมือนจะไม่ได้ผลสำหรับฉันใน win7 x64 ด้วย 32-bit 7-Zip มีวิธีใดวิธีหนึ่ง (ไม่ใช่การลากวาง) ที่คุณต้องบอกให้เปิดไฟล์หรือไม่?
ebyrob

ควรมีตัวเลือก 7zip ในเมนูบริบทเมื่อคุณคลิกขวาที่ไฟล์ - มันจะทำให้คุณมีตัวเลือกในการแตกไฟล์
Shekhar

7
ฉันเห็นสิ่งต่าง ๆ มากมายที่มีเครื่องหมายอัศเจรีย์อยู่ด้านหน้าแทนที่จะเป็นไฟล์จริง ฉันเดาว่ามีบางอย่างเปลี่ยนแปลงหรือมีไฟล์ msi คี่ ฉันลอง 7-Zip 9.20
mlt

@MichaelSchubert - มันขึ้นอยู่กับ หากคุณใช้เครื่องที่ไม่ใช่ Windows 7Zip เป็นตัวเลือกที่ดีเนื่องจากรุ่นบรรทัดคำสั่งพร้อมใช้งานสำหรับระบบอื่นเช่นกัน ขึ้นอยู่กับกรณีการใช้งานที่ฉันพูด
ต่อ Lundberg

46

นอกจากนี้ยังมีlessmsiซึ่งฟรีและโอเพ่นซอร์สอย่างสมบูรณ์

ไม่มีโฆษณาหรือข้อความที่จู้จี้จะรักษาโครงสร้างไดเรกทอรีและชื่อไฟล์อย่างถูกต้องมีอินเตอร์เฟสบรรทัดคำสั่งที่ซับซ้อนรวมถึงส่วนติดต่อผู้ใช้แบบกราฟิกที่อนุญาตให้เรียกดูไฟล์รวมถึงการดูตาราง MSI ภายในและคุณลักษณะ MSI อื่น ๆ


7
ขอบคุณ! อันนี้ช่วยให้ฉันแยกออกจาก MSI ซึ่งจะไม่แยกด้วยคำสั่ง msiexec ว่า "การติดตั้ง admin ไม่ได้รับการสนับสนุน" สำหรับ <ชื่อแพ็คเกจการติดตั้ง>
axk

1
อันนี้ช่วย .. msiexec ไม่ได้ดึงข้อมูลด้วยเหตุผลบางอย่าง ..
Abdul Hameed

23

มี MSI ในตัวรองรับการแตกไฟล์ (ติดตั้งโดยผู้ดูแลระบบ)

MSIหรือ Windows Installer มีการสนับสนุนในตัว - การแตกไฟล์จากไฟล์ MSI นี้เรียกว่าติดตั้งดูแลระบบ โดยพื้นฐานแล้วมันมีจุดประสงค์เพื่อสร้างจุดติดตั้งเครือข่ายที่สามารถติดตั้งบนคอมพิวเตอร์เป้าหมายหลายเครื่องได้ สิ่งนี้ทำให้มั่นใจได้ว่าไฟล์ต้นฉบับจะพร้อมใช้งานสำหรับการดำเนินการซ่อมแซมใด ๆ

โปรดทราบว่าการเรียกใช้การติดตั้งแบบผู้ดูแลระบบกับการใช้เครื่องมือ zip เพื่อแตกไฟล์นั้นแตกต่างกันมาก! หลังจะไม่ปรับเลย์เอาต์สื่อของตารางสื่อเพื่อให้แพคเกจถูกตั้งค่าให้ใช้ไฟล์ต้นฉบับภายนอก - ซึ่งเป็นวิธีที่ถูกต้อง มักจะชอบเรียกใช้การติดตั้งของผู้ดูแลระบบที่แท้จริงผ่านการแยก zip ที่แฮ็ก สำหรับการบีบอัดมีอัลกอริทึมการบีบอัดที่แตกต่างกันสามแบบที่ใช้สำหรับไฟล์ cab ภายในรูปแบบไฟล์ MSI: MSZip, LZX และการจัดเก็บ (ไม่บีบอัด) สิ่งเหล่านี้ได้รับการจัดการอย่างถูกต้องโดยทำการติดตั้งแบบผู้ดูแลระบบ


Admin-installs มีประโยชน์หลายอย่าง

ขอแนะนำให้อ่านเพิ่มเติมเกี่ยวกับการติดตั้งแบบผู้ดูแลระบบเนื่องจากเป็นแนวคิดที่มีประโยชน์และฉันได้เขียนโพสต์บน stackoverflow: จุดประสงค์ของการติดตั้งระดับผู้ดูแลระบบเริ่มต้นโดยใช้ msiexec คืออะไร? .

ในสาระสำคัญการติดตั้งผู้ดูแลระบบมีความสำคัญสำหรับ:

  • แตกไฟล์และตรวจสอบไฟล์ตัวติดตั้ง
  • การปรับใช้ผ่านซอฟต์แวร์การจัดการระบบเช่นSCCM (หลีกเลี่ยงไฟล์ MSI ที่ถูกแคชขนาดใหญ่ใน C: \ Windows \ Installer เนื่องจากไฟล์ถูกแยกจาก cab ภายใน)
  • การทำซ้ำแอปพลิเคชันขององค์กร
  • ซ่อมแซมแก้ไขและดำเนินการซ่อมแซมด้วยตนเอง
  • การปรับปรุงและอัพเกรด
  • โฆษณา MSI (คุณสมบัติ " เรียกใช้จากแหล่งที่มา ")
  • จำนวนรายละเอียดที่น้อยกว่าอื่น ๆ

โปรดอ่านโพสต์สแต็คโอเวอร์โฟลว์ที่ลิงก์ด้านบนสำหรับรายละเอียดเพิ่มเติม มันค่อนข้างเป็นแนวคิดที่สำคัญสำหรับผู้ดูแลระบบ , บรรจุภัณฑ์แอพลิเคชัน , นักพัฒนาติดตั้ง , ผู้จัดการการเปิดตัวและแม้กระทั่งผู้ใช้โดยเฉลี่ยจะเห็นสิ่งที่พวกเขากำลังติดตั้ง ฯลฯ ...


การติดตั้งแบบผู้ดูแลระบบ, วิธีการปฏิบัติ

คุณสามารถทำการติดตั้งแบบผู้ดูแลระบบได้หลายวิธีขึ้นอยู่กับวิธีการส่งมอบตัวติดตั้ง เป็นหลักก็เป็นทั้งส่งเป็นไฟล์ MSIหรือห่อในไฟล์ setup.exe

เรียกใช้คำสั่งเหล่านี้จากพรอมต์คำสั่งที่ยกระดับแล้วทำตามคำแนะนำใน GUI สำหรับบรรทัดคำสั่งแบบโต้ตอบ:

  • ไฟล์ MSI :

    msiexec /a File.msi
    

    นั่นคือการทำงานกับ GUI คุณสามารถทำมันเงียบ ๆ ด้วย:

    msiexec /a File.msi TARGETDIR=C:\MyInstallPoint /qn
    
  • ไฟล์ setup.exe :

    setup.exe /a
    

setup.exeไฟล์ยังสามารถตั้งค่าสไตล์มรดก (Non-MSI)หรือหวั่นInstallScript MSIประเภทไฟล์ - ที่รู้จักกันดีรถ Installshield ประเภทโครงการที่มีรูปแบบไฮบริดของ MSI มาตรฐานที่ไม่สอดคล้อง โดยพื้นฐานแล้วมันคือ MSI ที่มี GUI ที่ปรับแต่งเองได้ขั้นสูงกว่า แต่ก็เต็มไปด้วยข้อบกพร่อง

สำหรับsetup.exe ไฟล์เดิม/ aจะทำอะไร แต่คุณสามารถลอง/ extract_all: [path] สวิทช์ที่อธิบายไว้ในรูปแบบไฟล์ PDF นี้ มันเป็นการอ้างอิงที่ดีสำหรับการติดตั้งแบบเงียบและสิ่งอื่น ๆ เช่นกัน ทรัพยากรก็คือรายชื่อของคำสั่งตั้ง InstallShield setup.exe พารามิเตอร์บรรทัดนี้

ไฟล์แพตช์ MSI (* .MSP) สามารถนำไปใช้กับอิมเมจผู้ดูแลระบบเพื่อแตกไฟล์ 7Zip จะสามารถแตกไฟล์ได้ แต่จะไม่ได้รับการฟอร์แมตอย่างถูกต้อง

ท้ายที่สุดหากไม่มีวิธีอื่นใดคุณสามารถใช้งานไฟล์ติดตั้งที่แยกออกมาได้โดยการล้างโฟลเดอร์ temp ในระบบของคุณเปิดใช้งาน setup.exe แบบโต้ตอบจากนั้นรอให้ไดอะล็อกแรกปรากฏขึ้น ในกรณีส่วนใหญ่โปรแกรมติดตั้งจะแตกไฟล์จำนวนมากไปยังโฟลเดอร์ temp บางครั้งไฟล์เป็นไฟล์ธรรมดาเวลาอื่นในรูปแบบ CAB แต่ Winzip, 7Zip หรือแม้แต่ Universal Extractor (ยังไม่ได้ทดสอบผลิตภัณฑ์นี้) - อาจเปิดไฟล์เหล่านี้ได้


โปรดดูคำตอบนี้: superuser.com/questions/307678/…
Stein Åsmul

โพสต์เดียวกันบน stackoverflow: stackoverflow.com/a/24987512/129130 (ฉันควรจะลบหนึ่งรายการ แต่ทั้งคู่ถูกอัปโหลดและรวมเข้าด้วยกันเมื่อเร็ว ๆ นี้)
Stein Åsmul

8

ฉันอยากจะแนะนำUniExtractสำหรับการแก้ปัญหาของ neoice ง่ายยิ่งขึ้น มันทำสิ่งเดียวกันโดยอัตโนมัติมากกว่าและอนุญาตให้มีหลายวิธีในการแยกไฟล์ MSI ไม่ใช่แค่การติดตั้งระดับผู้ดูแลระบบ (เนื่องจากโซลูชันของเขาใช้อยู่)

UniExtract ยังสามารถจัดการกับ exe ที่จัดทำแพคเกจด้วย WISE หรือ InstallShield เช่นเดียวกับรูปแบบการบีบอัดอื่น ๆ ที่หลากหลาย โอ้และมันฟรี

Universal Extractor เป็นโปรแกรมที่ทำตามที่ระบุไว้อย่างชัดเจน: แยกไฟล์จากไฟล์เก็บถาวรประเภทใด ๆ ไม่ว่าจะเป็นไฟล์ซิปแบบง่ายโปรแกรมติดตั้งหรือแม้แต่แพ็คเกจ Windows Installer (.msi)



1

คุณสามารถใช้Orcaแอพนี้เป็นส่วนหนึ่งของ Platform SDK แต่คุณสามารถดาวน์โหลดได้จากที่นี่ http://astebner.sts.winisp.net/Tools/Orca.zip


3
Orca ดีกว่าสำหรับการแยกข้อมูลเมตาเช่นไฟล์โฟลเดอร์และตารางรีจิสตรี โดยทั่วไปแล้วไม่มีประโยชน์อย่างมากสำหรับการแตกไฟล์จริง (ไร้ประโยชน์อย่างสมบูรณ์หากไฟล์ไม่ได้จัดเก็บไว้ในตารางไบนารี)
Synetech

1

lessmsiเป็นตัวเลือกที่ดีที่สุดที่นี่เพราะให้คุณเลือกว่าจะแตกไฟล์อะไรและควรไปที่ไหน นอกจากนี้ยังสามารถติดตั้งได้อย่างง่ายดายโดยใช้กรอบการทำงานสำหรับหน้าต่างที่เรียกว่าapt-get Choclateyข้างบนlessmsiเว็บไซต์ที่ได้ย้ายและมันยังสามารถพบได้ / ดาวน์โหลดได้ที่GitHub นอกจากนี้คุณสามารถค้นหาเครื่องมืออื่น ๆ อีกมากมายและข้อมูลที่เกี่ยวข้องของ MSI ที่นี่ : (ขออภัยฉันไม่สามารถโพสต์มากกว่า 2 ลิงก์!)


1

เพิ่มPeaZipลงในรายการ ทำงานเหมือนแชมป์


โปรดอ่านฉันจะแนะนำซอฟต์แวร์สำหรับเคล็ดลับเกี่ยวกับวิธีการแนะนำซอฟต์แวร์ได้อย่างไร อย่างน้อยที่สุดคุณควรให้มากกว่าแค่ลิงค์ตัวอย่างเช่นข้อมูลเพิ่มเติมบางอย่างเกี่ยวกับตัวซอฟต์แวร์เองตัวอย่างเช่นวิธีใช้เพื่อแก้ไขปัญหาในคำถาม
DavidPostill


0

เพียงดาวน์โหลดสากลดูด มันแยกไฟล์ทุกประเภทรวมถึง. exe, .msi, .rar, .zip, .kgb และอื่น ๆ



0

การติดตั้ง Installshield .exe (ตามที่คุณเรียกว่า) มีหลายรสชาติและโดยทั่วไปแล้วมันเป็นไปได้ที่จะแยกไฟล์ออกมา

Installshield setup.exe สามารถมีตัวติดตั้งที่ไม่ใช่ของ MSI เก่าหรือตัวติดตั้ง msi ใหม่

หาก setup.exe กำลังรวมการตั้งค่าของ MSI คุณสามารถระบุsetup.exe / aและการติดตั้งของผู้ดูแลระบบของ MSI จะทำงานซึ่งช่วยให้คุณสามารถระบุและส่งออกตำแหน่งสำหรับไฟล์

ถ้า setup.exe คือการติดตั้งตั้ง InstallShield เดิมมันอาจจะหรืออาจจะไม่สนับสนุนการแยกไฟล์ผ่านทาง/ extract_all: [path] สวิทช์ โปรดดูที่นี่ (อัปเดตเมื่อเดือนกรกฎาคม 2554 ลิงก์ Acresso ไม่ถูกต้องอัปเดตอีกครั้งในเดือนกุมภาพันธ์ 2014 - ชี้ไปที่ itninja ทันที)

โปรดทราบว่าวิธีอื่นในการรับไฟล์เหล่านี้คือการล้างโฟลเดอร์ temp ในระบบของคุณเรียกใช้ setup.exe แบบโต้ตอบจากนั้นรอให้ไดอะล็อกแรกปรากฏขึ้น ในกรณีส่วนใหญ่โปรแกรมติดตั้งจะแตกไฟล์จำนวนมากไปยังโฟลเดอร์ temp บางครั้งไฟล์เป็นไฟล์ธรรมดาเวลาอื่นในรูปแบบ CAB แต่ Winzip, 7Zip หรือแม้แต่ Universal Extractor (ยังไม่ได้ทดสอบผลิตภัณฑ์นี้) - อาจเปิดไฟล์เหล่านี้ได้


ข้อกำหนดของฉันสำหรับการทำสิ่งนี้ได้ผ่านไปแล้ว - แต่ฉันจะลองทำตามที่คุณแนะนำในบางจุดเพื่อดูว่ามันจะได้ผลหรือไม่ ขอขอบคุณที่ตอบกลับ
Martin
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.