2011-01-14 24 views
8

Tôi đang cố thiết lập một số cổng từ trình cài đặt WIX. Đối với WinXP, chúng tôi sử dụng httpcfg trong một hành động tùy chỉnh và điều này hoạt động tốt. Đối với Win7, chúng tôi đang cố gắng:netsh http add urlacl problem

netsh http add urlacl url=http://127.0.0.1/8346/ user="NT AUTHORITY\Authenticated Users" sddl="D:(A;;GX;;;AU)" 

Trình cài đặt WIX thực hiện đúng câu lệnh này và thiết lập cổng - CHO NGƯỜI QUẢN LÝ chạy .msi. Người dùng có ít quyền riêng tư hơn không thể truy cập các cổng này. Tôi cần phải thiết lập nó cho tất cả người dùng trên máy, nhưng tôi đã thử về mọi thứ tôi có thể nghĩ đến không có may mắn.

Điều mà tôi thấy lạ là người dùng quản trị có thể thấy các cổng được gán bằng netstat -a, nhưng chúng không xuất hiện ở tất cả bằng cách sử dụng netsh http show urlacl ... đó có phải là chỉ báo sai?

+0

Tại sao bạn sử dụng cả thông số người dùng và sddl? IMHO chỉ một trong số chúng là bắt buộc/hữu ích. – Christian

Trả lời

2

Bạn có thể thêm điều kiện vào tệp thiết lập để nhắc UAC khi quá trình cài đặt bắt đầu. điều này sẽ đảm bảo tất cả các trình cài đặt được bắt đầu bởi admin và do đó sẽ thêm ngoại lệ trong tường lửa ngay cả khi người dùng không có quyền quản trị.

+0

Điều này dường như không trả lời được câu hỏi ngay cả khi nó có thể đúng. Ngoài ra, không có chi tiết cụ thể trong câu trả lời này. – Gyuri

+0

Bạn sẽ cần phải sử dụng các phiên bản WIX mới hơn có hỗ trợ bootstrapper (Setup.exe) để khởi động đúng với tư cách quản trị viên. Khác nó sẽ chỉ hoạt động khi được khởi chạy qua MSIEXEC từ lệnh/quy trình quản trị viên. Bootstapper là cách duy nhất để đảm bảo bạn đang chạy như admin ngay cả khi Setup.exe được kích đúp vào từ trình bao. Việc thêm điều kiện khởi chạy để giải thích cho nhật ký người dùng/quản trị viên là lý do phổ biến tại sao nó không thành công thay vì một số thông báo lỗi lạ, ví dụ: khi bấm đúp vào MSI/không có boot.exe boot.exe. Bạn không thể "nhắc nhở UAC", chỉ có hệ thống thông qua một process/setup.exe khác. –

6

Nếu 8346 là số cổng của bạn thì cú pháp của bạn không chính xác.

netsh http add urlacl url=http://127.0.0.1:8346/ user="NT AUTHORITY\Authenticated Users" 
+0

Trong khi câu trả lời là một tuyên bố đúng sửa chữa lỗi đánh máy, tôi không thấy nó trả lời câu hỏi như thế nào. Bạn có thể đã sử dụng nhận xét cho thông tin này. – Gyuri

+0

Nếu bạn muốn nó là một chút neater bạn có thể sử dụng dấu cộng để tránh phải nhập bất kỳ địa chỉ, đó là một phím tắt cho bất kỳ IP hoặc tên mà giải quyết cho máy địa phương, tức là "http: // +: 8346 /" . –