2010-03-21 52 views
13

Tôi cần một trong số .exe của mình để luôn chạy với tư cách quản trị viên không có nhắc nhở UAC. Chương trình của tôi sẽ được cài đặt với thiết lập, sẽ có quyền quản trị một lần, và tôi cần thực hiện các bước như vậy trong thiết lập này mà exe của tôi sẽ luôn được thực thi như là quản trị viên không có nhắc nhở UAC.Win C#: Chạy ứng dụng với tư cách quản trị viên không có dấu nhắc UAC

tôi đã tìm thấy 2 giải pháp cho đến nay:

1. Sử dụng dịch vụ tùy chỉnh, mà sẽ nâng cao chương trình cho tôi.

2. Sử dụng Task Scheduler.

Có giải pháp nào khác không? Một số biểu hiện có lẽ?

Cảm ơn.

+0

Loại ứng dụng nào? – ZippyV

+2

Bạn có thể liên hệ với MSFT và yêu cầu ứng dụng của bạn được đưa vào danh sách loại trừ đặc biệt "UAC". Không chắc chắn rằng sẽ làm việc ra, họ không đặt các chương trình riêng của họ trên danh sách đó. Có, nhiệm vụ được lên lịch, phải mất quyền quản trị để thêm nó. –

Trả lời

8

Tất nhiên những gì bạn phải làm nếu bạn chỉ muốn lái xe giao diện người dùng là sử dụng cờ truy cập giao diện người dùng trong tệp kê khai của bạn (xem http://msdn.microsoft.com/en-us/library/ms742884.aspx). Nếu bạn cài đặt ứng dụng của mình ở vị trí tin cậy (ví dụ: system32) và nó được ký (bleh!) Thì khi bạn chạy ứng dụng của bạn, ứng dụng sẽ được nâng lên cao (đối với tài khoản quản trị viên).

Yêu cầu ký làm cho nó hơi khó chịu nhưng ít nhất nó làm giảm nhẹ bề mặt tấn công khi mã của bạn được chạy với tính toàn vẹn cao nhưng không phải bằng mã thông báo quản trị viên.

+0

Cảm ơn bạn rất nhiều. Điều này trông rất thú vị. Tôi sẽ đăng ký ứng dụng của mình trong tương lai. Và nếu tôi sẽ có được mức độ toàn vẹn cao hơn mà không có mã thông báo quản trị viên, đó chính xác là những gì tôi cần. – Paya

+0

BTW Tôi đã tìm thấy chứng chỉ COMODO rất rẻ ở đây: https://secure.ksoftware.net/code_signing.html – Paya

27

Nếu có thể thực hiện điều này, thì UAC sẽ hoàn toàn không hiệu quả. Các không có khả năng của các ứng dụng để nâng cao bản thân mà không có sự đồng ý của người dùng là nguyên tắc cơ bản đằng sau UAC.

Ngoài việc đã có quy trình nâng cao khởi chạy nó (tức là dịch vụ hoặc công cụ lên lịch), câu trả lời là không, không thể thực hiện được.

+7

Có vẻ như ai đó muốn viết vi-rút. – Karl

+0

+1 Giống như @Aaronaught đã viết, mục tiêu thiết kế của UAC là ** không ** cung cấp cách để các ứng dụng phá vỡ các lời nhắc. –

+4

@Karl: Tôi không đoán được động lực của anh ấy - rất nhiều sản phẩm phần mềm hợp pháp cố gắng làm những điều tương tự đáng ghét mà Windows cấm nghiêm ngặt, như ăn cắp lấy nét hoặc cài đặt phím tắt trong Khởi chạy nhanh. Tất nhiên, các chương trình như vậy thường bị hỏng và ghi khi có bất kỳ điều gì "không chuẩn" về cài đặt như cấu trúc thư mục hoặc ngôn ngữ. – Aaronaught

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