Làm cách nào để tự động cài đặt MSI?


11

Tôi có khoảng 20 ứng dụng cần được chạy theo một thứ tự cụ thể. Tôi muốn kịch bản chúng để tôi có thể làm điều này từ xa.

Mỗi một trong số các ứng dụng có Setup.exe và MSI.

Tôi đã hy vọng chỉ cần có một kịch bản đơn giản gọi là MSI với tệp trả lời, nhưng đã nhiều năm kể từ khi tôi thực hiện nó. Tuy nhiên, tôi không nhớ cách tạo tệp trả lời.

Đây có phải là một cách tốt để làm điều đó? Hoặc sẽ có một cách đơn giản hơn?

Câu trả lời:


17

Nói về một câu hỏi được tải ...

Để bắt đầu, bỏ qua setup.exe. Điều lạ lùng là nó chỉ gọi MSI. Hoặc đôi khi họ trích xuất một loạt các thứ THEN gọi cho MSI, bạn thường có thể xem thư mục tạm thời của mình khi bạn chạy thiết lập và có ý tưởng về những gì nó đang làm.

Tôi luôn luôn gian lận và thực hiện một quá trình cài đặt ( msiexec /i path/to-install.msi /l*v /qn) khô khan với việc ghi nhật ký, sau đó đi qua nhật ký và chọn ra các thuộc tính tôi muốn đặt và đặt chúng thông qua dòng lệnh. Trả lời các tệp không bao giờ hoạt động hoặc không đáng để trải qua quá trình tạo ra chúng.

Sau đó, tôi tìm thấy InstEdit và sử dụng nó một thuyền. Nó sẽ cho phép bạn chỉnh sửa các thuộc tính của MSI và tạo ra Biến đổi mà sau đó bạn có thể chuyển thành đối số trong tập lệnh của mình: msiexec /i path/to/installer.msi /t path/to/transform.mst Tôi khuyên bạn nên thử trước, có phiên bản miễn phí thực hiện mọi thứ.

Bạn cũng có thể xem ở đây cho tất cả các công tắc msiexeccó.


+1 nhưng thật không may, các công tắc dường như không hoạt động với tất cả các MSI. Không nhìn vào lý do tại sao nhưng nó chắc chắn là trường hợp với một số.
Ciaran

Phụ thuộc vào cách MSI được tạo ra. Có một số thuộc tính bạn có thể đặt để bỏ qua các tham số nhất định, IIRC. Thông thường sử dụng Instedit và xây dựng Transform luôn hoạt động, các lỗi duy nhất tôi gặp phải thường là do con người.
Peelman

1
+1 cho InstEdit
user66001

1
Phương pháp đăng nhập làm việc cho tôi. Điều quan trọng cần lưu ý là các tài sản sẽ được liệt kê làProperty(S) : PROPERTY_NAME...
Drew Chapin

5

Msiexec là công cụ bạn cần. Nó có một tham số -q để cho phép nó cài đặt công cụ "im lặng":

/ qn: Hiển thị không có giao diện người dùng.

/ qb: Hiển thị giao diện người dùng cơ bản.

/ qr: Hiển thị giao diện người dùng giảm với hộp thoại phương thức hiển thị ở cuối quá trình cài đặt.

/ qf: Hiển thị giao diện người dùng đầy đủ với hộp thoại phương thức hiển thị ở cuối.

/ qn +: Hiển thị không có giao diện người dùng, ngoại trừ hộp thoại phương thức hiển thị ở cuối.

/ qb +: Hiển thị giao diện người dùng cơ bản với hộp thoại phương thức hiển thị ở cuối.

/ qb-: Hiển thị giao diện người dùng cơ bản không có hộp thoại phương thức.

Bạn cũng có thể cung cấp các tùy chọn được đặt tên (hoặc "thuộc tính") ở cuối dòng lệnh; thuộc tính nào được hỗ trợ phụ thuộc vào gói. Ví dụ: lệnh này:

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

... là cách bạn cài đặt ActiveState Perl, hướng dẫn gói MSI thêm Perl.exe vào PATH của bạn và liên kết các tệp .pl với nó. ( nguồn )


1
Lưu ý rằng nhà phát triển có thể chọn tắt tùy chọn / q trong trình cài đặt msi của họ.
Joel Coehoorn

2

Hầu hết các ứng dụng có thể được cài đặt âm thầm và theo kịch bản. Mỗi Setup.exe có thể có một số thiết bị chuyển mạch tiềm năng, vì vậy, gọi cho nhà cung cấp hoặc tìm kiếm trang web của họ là bắt buộc. Đôi khi bạn có thể nhận thông tin bằng cách bắt đầu thiết lập với công tắc /?, / H / help. Các tệp MSI cũng có thể có bất kỳ số lượng chuyển đổi nào nhưng bài viết này các tham số dòng lệnh MSI cung cấp một danh sách.

Khi kịch bản quá trình, bạn có thể chạy vào một ứng dụng cài đặt với setup.exe và sau đó khởi chạy một tệp khác như MSI. Một ví dụ là MS Office XP. Khi điều này xảy ra, tập lệnh của bạn có thể nghĩ rằng tệp bạn đã khởi chạy hoàn tất và bắt đầu thiết lập tiếp theo, điều này không khiến mọi thứ đi về phía nam. Để giải quyết vấn đề này, hãy thử bỏ qua tệp thiết lập và đi thẳng đến trình cài đặt thực tế (có khả năng là MSI) với các tùy chọn dòng lệnh. Nếu điều đó là không thể, bạn có thể cần phải tạo một số loại tạm dừng hẹn giờ. Tôi đã từng sử dụng một tiện ích nhỏ gọi là Wait.exe mà tôi tìm thấy trên internet nhưng có hàng triệu cách để làm điều này. Chìa khóa cho kịch bản mặc dù là có thể xác định rằng một ứng dụng được cài đặt chính xác để cài đặt tiếp theo có thể bắt đầu.

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.