2010-05-06 35 views
7

Tôi có một ứng dụng sẽ được triển khai như gói MSI (tác giả trong WiX).Có thể cài đặt vào Program Files với các đặc quyền hạn chế không?

Tôi đang quyết định có chỉ định các đặc quyền elevated hoặc limited theo yêu cầu cho trình cài đặt hay không.

Ứng dụng không bao gồm bất kỳ điều gì đòi hỏi đặc quyền cao hơn bên cạnh vị trí cài đặt mặc định, nằm trong Tệp chương trình.

Bây giờ vấn đề:

  • Nếu tôi chỉ định đặc quyền nâng cao, sau đó người dùng sẽ được nhắc bởi UAC cho mật khẩu quản trị trong khi cài đặt. Điều này không bắt buộc và ngăn người dùng không phải quản trị cài đặt.

  • Nếu tôi chỉ định các đặc quyền giới hạn, khi đó người dùng sẽ được hiển thị hộp thoại để chọn vị trí cài đặt với Program Files làm mặc định. Trong trường hợp họ không thay đổi vị trí cài đặt (95% người dùng cuối có thể sẽ không), thì trình cài đặt sẽ không thành công với thông báo rằng họ nên liên hệ với Quản trị viên hoặc chạy ứng dụng với tư cách quản trị viên. Nếu họ khởi chạy trình cài đặt với tư cách Quản trị viên thì họ có thể cài đặt vào Program Files mà không gặp vấn đề gì - nhưng hầu hết người dùng sẽ không biết cách khởi chạy trình cài đặt với tư cách quản trị viên.

Tôi có thể đặt vị trí cài đặt mặc định thành ví dụ: C: \ Tên công ty \ Program \, nhưng điều này có vẻ không chuẩn đối với tôi và phần lớn người dùng sẽ không có khả năng như thế này (chúng có thể được sử dụng để cài đặt vào Program Files).

Làm cách nào để bạn giải quyết vấn đề này khi cài đặt ứng dụng trong tài khoản người dùng bị giới hạn?

Trả lời

6

Vị trí thay thế bạn đề xuất, ngay bên ngoài Ổ C, có thể cũng yêu cầu đặc quyền nâng cao. Trước Windows 7, tôi khuyên bạn nên sử dụng hành động tùy chỉnh sớm để thay đổi vị trí mặc định của bạn cho các cài đặt giới hạn. Hãy tắt điều kiện của thuộc tính Privileged (hoặc có thể là AdminUser), xác minh xem bạn có cần đặt MSIUSEREALADMINDETECTION cho trường hợp của bạn hay không và sử dụng một cái gì đó như [LocalAppDataFolder]Company\Product. Rất tiếc, phương pháp này sẽ dẫn đến gói khó cài đặt cho tất cả người dùng vì bạn phải nâng cấp trước và trong trường hợp giới hạn, họ vẫn có thể chọn vị trí mục tiêu yêu cầu độ cao. Họ phải nâng cao trước vì gói phải được đánh dấu để không nâng cao.

Nếu bạn chỉ có thể nhắm mục tiêu Windows 7 trở lên, bạn có thể đặt MSIINSTALLPERUSER để ghi đè vị trí cài đặt và yêu cầu độ cao và thay vào đó cài đặt cho mỗi người dùng. Trong trường hợp này, người dùng có thể được hỏi có nên cài đặt cho tất cả người dùng (yêu cầu độ cao) hay chỉ cho chính mình. Gói có thể được đánh dấu để nâng cao và thiết lập MSIINSTALLPERUSER sẽ ghi đè lên và bỏ qua lời nhắc UAC.

+1

Không, vị trí thay thế không yêu cầu đặc quyền nâng cao. Tôi hiện đang cài đặt theo mặc định vào C: \ Tên công ty \ Sản phẩm và trình cài đặt MSI được xây dựng với các đặc quyền hạn chế và không có UAC xuất hiện, cũng như bất kỳ hộp thoại báo lỗi nào. – Marek

+0

Điều đó nghe có vẻ giống như một môi trường tùy chỉnh sau đó, nhưng đó là tốt nếu bạn biết nó sẽ được đưa ra bất cứ nơi nào sản phẩm của bạn được cài đặt. Phần còn lại của câu trả lời được áp dụng; chỉ bỏ qua đề xuất vị trí đặc quyền hạn chế. –

-2

Chạy lệnh nhắc (cmd) làm quản trị viên.

Sau đó sử dụng lệnh msiexec để thực thi tệp msi.

+0

Tôi không thể yêu cầu người dùng cuối thực hiện điều này – Marek

+0

u có thể yêu cầu người dùng thực hiện việc này ... như để cài đặt bất kỳ s/w nào cần có đặc quyền quản trị viên. Vì vậy, không có gì sai khi yêu cầu anh ta làm như vậy. Hoặc bạn có thể hỏi người dùng đăng nhập bằng thông tin đăng nhập của quản trị viên và sau đó cài đặt s/w –

3

Điều quan trọng hơn là phần mềm của bạn chạy với các đặc quyền người dùng thông thường - mà tôi thấy bạn đã đề cập không phải là vấn đề.

Không có gì sai khi yêu cầu quyền quản trị cài đặt nội dung nào đó.

Hoặc người dùng sẽ tự mình có chi tiết vì họ đang chạy tài khoản giới hạn vì lý do an toàn hoặc phần mềm sẽ được cài đặt bởi phòng CNTT của công ty.

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