2011-12-19 51 views
59

Tôi có gói MSI mà tôi cần cài đặt nếu gói chưa được cài đặt. Ngoài ra tôi cần phải cài đặt nó âm thầm. Các gói phần mềm nhắc nhở người dùng cho:Cài đặt im lặng của gói MSI

  • vị trí lắp đặt (C: \ Program Files \ Foobar)
  • Install loại: tối thiểu và đầy đủ (tối thiểu)

tôi cần phải ghi đè lên hai thông số này sử dụng lệnh tham số dòng hoặc một số phương pháp khác. Vì vậy, làm thế nào để tôi đi về hai vấn đề này. Tôi sẽ sử dụng VBScript cho kịch bản.

Trả lời

91

Bạn sẽ có thể sử dụng các tùy chọn /quiet hoặc /qn với msiexec để thực hiện cài đặt im lặng.

Gói MSI xuất thuộc tính công khai, bạn có thể đặt với cú pháp PROPERTY=value ở cuối thông số msiexec.

Ví dụ, lệnh này cài đặt một gói phần mềm không có giao diện người dùng và không khởi động lại, với một bản ghi và hai thuộc tính:

msiexec /i c:\path\to\package.msi /quiet /qn /norestart /log c:\path\to\install.log PROPERTY1=value1 PROPERTY2=value2 

Bạn có thể đọc các tùy chọn cho msiexec bằng cách chỉ cần chạy nó không có tùy chọn từ Start - > Chạy.

+1

Có cách nào để tìm danh sách các thông số có thể chấp nhận ('PROPERTY1' và' PROPERTY2' trong ví dụ của bạn) không? –

+0

Đây là danh sách thuộc tính được xác định trước: http://msdn.microsoft.com/en-us/library/windows/desktop/aa370905(v=VS.85).aspx Thuộc tính thư mục cài đặt khác nhau đối với từng thiết lập authoring dụng cụ. Bạn đã sử dụng cái gì để tạo MSI? –

+0

@Cosmin: MSI bao gồm DLL thời gian chạy của hệ thống thanh toán (không do tôi tạo). Tôi đang nhìn vào một công cụ gọi là Ocra để giải phẫu MSI, nó cho tôi một gợi ý về một biến gọi là "INSTALLLOCATION". Tôi đang kiểm tra. –

1

Cách thích hợp để cài đặt một MSI âm thầm là thông qua các msiexec.exe command line như sau:

msiexec.exe /i c:\setup.msi /QN /L*V "C:\Temp\msilog.log" 

nhanh giải thích:

/L*V "C:\Temp\msilog.log"= verbose logging 
/QN = run completely silently 
/i = run install sequence 

Có một câu trả lời toàn diện hơn ở đây: Batch script to install MSI. Câu trả lời này cung cấp chi tiết về các tùy chọn dòng lệnh msiexec.exe và mô tả về cách tìm "thuộc tính công khai" mà bạn có thể đặt trên dòng lệnh lúc cài đặt. Các thuộc tính này thường khác nhau đối với mỗi MSI.

Các vấn đề liên quan