ฉันจะติดตั้ง MSI อัตโนมัติได้อย่างไร


11

ฉันมีแอพพลิเคชั่นประมาณ 20 ตัวที่ต้องใช้ในการสั่งซื้อเฉพาะ ฉันต้องการสคริปต์พวกเขาเพื่อที่ฉันจะได้ทำสิ่งนี้จากระยะไกล

แต่ละแอปพลิเคชันมี Setup.exe และ MSI

ฉันหวังว่าจะมีสคริปต์ง่ายๆที่เรียกว่า MSIs พร้อมไฟล์คำตอบ แต่มันก็เป็นเวลาหลายปีแล้วที่ฉันได้ทำมัน อย่างไรก็ตามฉันจำไม่ได้ว่าจะสร้างไฟล์คำตอบได้อย่างไร

นี่เป็นวิธีที่ดีในการทำหรือไม่? หรือจะมีวิธีที่ง่ายกว่า?

คำตอบ:


17

พูดคุยเกี่ยวกับคำถามที่โหลด ...

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

ฉันมักจะโกงและทำการติดตั้งแบบแห้ง ( msiexec /i path/to-install.msi /l*v /qn) ด้วยการล็อก cranked จากนั้นก็ผ่านบันทึกและเลือกคุณสมบัติที่ฉันต้องการตั้งค่าและตั้งค่าผ่านทางบรรทัดคำสั่ง ไฟล์คำตอบไม่เคยทำงานหรือไม่คุ้มค่ากับปัญหาในการผ่านขั้นตอนการสร้างไฟล์

จากนั้นฉันก็พบInstEditและใช้เป็นเรือบรรทุก มันจะช่วยให้คุณแก้ไขคุณสมบัติของ MSI และสร้างการแปลงที่คุณสามารถส่งผ่านเป็นอาร์กิวเมนต์ในสคริปต์ของคุณ: msiexec /i path/to/installer.msi /t path/to/transform.mst ฉันแนะนำให้ยิงก่อนมีรุ่นฟรีที่ทำทุกอย่าง

คุณอาจดูที่นี่สำหรับสวิตช์ทั้งหมดmsiexecได้


+1 แต่น่าเสียดายที่สวิตช์ไม่ทำงานกับ MSI ทั้งหมด ยังไม่ได้ตรวจสอบสาเหตุ แต่เป็นกรณีที่มีบางอย่าง
Ciaran

ขึ้นอยู่กับวิธีการสร้างของ MSI มีคุณสมบัติบางอย่างที่คุณสามารถตั้งค่าให้ละเว้นพารามิเตอร์บางอย่าง IIRC โดยทั่วไปแล้วการใช้ Instedit และการสร้างการแปลงทำงานได้เสมอข้อผิดพลาดที่ฉันพบมักเป็นเรื่องของมนุษย์
ปอกเปลือก

1
+1 สำหรับInstEdit
66001

1
วิธีการบันทึกใช้งานได้สำหรับฉัน สิ่งสำคัญคือให้สังเกตว่าคุณสมบัติจะถูกระบุเป็นProperty(S) : PROPERTY_NAME...
Drew Chapin

5

Msiexecเป็นเครื่องมือที่คุณต้องการ มันมีพารามิเตอร์ -q เพื่อให้มันติดตั้งสิ่งที่ "เงียบ":

/ qn: ไม่แสดงส่วนต่อประสานผู้ใช้

/ qb: แสดงส่วนติดต่อผู้ใช้พื้นฐาน

/ qr: แสดงส่วนติดต่อผู้ใช้ที่ลดลงด้วยกล่องโต้ตอบโมดอลที่แสดงในตอนท้ายของการติดตั้ง

/ qf: แสดงส่วนติดต่อผู้ใช้แบบเต็มด้วยกล่องโต้ตอบโมดอลที่แสดงในตอนท้าย

/ qn +: ไม่แสดงส่วนติดต่อผู้ใช้ยกเว้นกล่องโต้ตอบโมดอลที่แสดงในตอนท้าย

/ qb +: แสดงส่วนติดต่อผู้ใช้พื้นฐานพร้อมกล่องโต้ตอบโมดอลที่แสดงในตอนท้าย

/ qb-: แสดงส่วนติดต่อผู้ใช้พื้นฐานโดยไม่มีกล่องโต้ตอบโมดอล

คุณยังสามารถระบุตัวเลือกที่มีชื่อ (หรือ "คุณสมบัติ") ที่ส่วนท้ายของบรรทัดคำสั่ง คุณสมบัติที่ได้รับการสนับสนุนขึ้นอยู่กับแพ็คเกจ ตัวอย่างเช่นคำสั่งนี้:

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

... เป็นวิธีที่คุณติดตั้ง ActiveState Perl สั่งให้แพ็คเกจ MSI เพิ่ม Perl.exe ไปยัง PATH ของคุณและเชื่อมโยงไฟล์. pl ด้วย (ที่มา )


1
โปรดทราบว่าผู้พัฒนาสามารถเลือกที่จะปิดการใช้งานตัวเลือก / q ในโปรแกรมติดตั้ง msi
Joel Coehoorn

2

แอปพลิเคชั่นส่วนใหญ่สามารถติดตั้งแบบเงียบ ๆ และสคริปต์ดังนั้น แต่ละ Setup.exe สามารถมีสวิตช์ที่อาจเกิดขึ้นได้จำนวนมากดังนั้นจึงต้องมีการเรียกผู้ขายหรือค้นหาเว็บไซต์ของพวกเขา บางครั้งคุณสามารถรับข้อมูลได้โดยเริ่มการตั้งค่าด้วยสวิตช์ / ?, / h / help ไฟล์ MSI สามารถมีสวิตช์จำนวนเท่าใดก็ได้ แต่บทความนี้พารามิเตอร์บรรทัดคำสั่งของ MSIให้รายการ

เมื่อทำการเขียนสคริปต์กระบวนการคุณอาจพบแอพที่ติดตั้งกับ setup.exe จากนั้นเปิดตัวไฟล์อื่นเช่น MSI ตัวอย่างหนึ่งคือ MS Office XP เมื่อสิ่งนี้เกิดขึ้นสคริปต์ของคุณอาจคิดว่าไฟล์ที่คุณเปิดตัวนั้นเสร็จสมบูรณ์และเริ่มการตั้งค่าถัดไปซึ่งล้มเหลวทำให้ทุกอย่างลงไปทางใต้ เพื่อหลีกเลี่ยงปัญหานี้ให้ลองข้ามไฟล์ติดตั้งแล้วไปที่ตัวติดตั้งจริง (อาจเป็น MSI) ด้วยตัวเลือกบรรทัดคำสั่ง หากเป็นไปไม่ได้คุณอาจต้องสร้างตัวจับเวลาหยุดชั่วคราว ฉันเคยใช้ยูทิลิตีเล็ก ๆ น้อย ๆ ที่ชื่อว่า wait.exe ซึ่งฉันพบบนอินเทอร์เน็ต แต่มีวิธีการนับล้านวิธี กุญแจสำคัญในการเขียนสคริปต์แม้ว่าจะสามารถระบุได้ว่าแอปพลิเคชันติดตั้งอย่างถูกต้องเพื่อให้การติดตั้งครั้งต่อไปสามารถเริ่มต้นได้

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