Làm cách nào để định cấu hình ứng dụng của tôi chạy tự động với tư cách quản trị viên?


9

Tôi đã tạo một tệp vá với một tệp thực thi bên trong nó bằng tính năng Winrar SFX.
Sau khi thực hiện tệp SFX và quá trình trích xuất kết thúc, tệp thực thi của tôi sẽ không bao giờ chạy vì nó không có đặc quyền quản trị viên. Tôi tự hỏi làm thế nào tôi có thể cấp cho quản trị viên quyền truy cập vào tệp đó bằng một số cách lập trình (như một tệp bó).

Tôi biết rằng tôi có thể nhấp chuột phải vào nó, đi đến "Thuộc tính", chọn tab "Tương thích" và sau đó đánh dấu vào ô "Thực thi với tư cách Quản trị viên".

Vấn đề là người dùng sẽ tải xuống bản vá đó không biết (và exe của tôi chỉ chạy khi bạn nhấp chuột phải vào nó và chọn "Mở với tư cách quản trị viên", mặt khác, nó sẽ không bao giờ mở và cũng không hiển thị cửa sổ bật lên UAC).

Tôi đã thử một số cách, như "Người chạy thang máy (Nâng cao tôi)", v.v., nhưng tôi thực sự đang tìm kiếm thứ gì đó đơn giản hơn.
Tôi chỉ cần làm cho exe luôn luôn chạy như quản trị viên.


2
Lưu ý với mod: Không cần di chuyển sang SO ở đây.
Karan

Câu trả lời:


15

Những gì bạn cần làm là nhúng một bảng kê khai ứng dụng vào EXE.

  1. Lưu tệp dưới đây dưới dạng tệp văn bản có tên App.exe.manifest :

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
        <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
            <security>
                <requestedPrivileges>
                    <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
                </requestedPrivileges>
            </security>
        </trustInfo>
    </assembly>
    
  2. Tải xuống SDK Windows.

  3. Bên trong bạn sẽ tìm thấy mt.exe, tức là Công cụ kê khai . Gọi nó như sau:

    mt.exe -manifest "App.exe.manifest" -outputresource:"App.exe";#1
    
  4. Nếu không có lỗi bạn đã làm. Bạn có thể xóa tệp kê khai và chỉ phân phối EXE. Chạy nó sẽ làm cho nó tự động yêu cầu quản trị viên truy cập mọi lúc.

Nguồn


Tôi sẽ kiểm tra nó. Nhân tiện, có thể làm cho "Bản kê khai" này tốt hơn một chút không? Giống như thực hiện nó với tư cách Quản trị viên mà không yêu cầu Quản trị viên truy cập? Cảm ơn
Rafael Vidal

Có nghĩa là bạn muốn nó âm thầm nâng cao và có được quyền truy cập quản trị viên? Trừ khi bạn tắt UAC, điều đó là không thể, nếu không thì điều gì sẽ là điểm của UAC và bạn không nghĩ mọi phần mềm độc hại sẽ làm điều này?
Karan

Tôi hiểu quan điểm của bạn, nhưng tôi biết rằng có những cách ... không dễ dàng chắc chắn, nhưng có, như chương trình "Nâng cao tôi" ... Dù sao, làm cho exe chạy như quản trị viên là đủ cho đến bây giờ. Thực sự cảm ơn bạn trước
Rafael Vidal

1
Tất cả các chương trình như vậy để bỏ qua lời nhắc độ cao sử dụng thủ thuật Lập lịch tác vụ nổi tiếng đòi hỏi quyền truy cập của quản trị viên. Vì bạn đang tìm cách thực hiện việc này trên bất kỳ PC tùy ý nào nơi SFX của bạn được thực thi, bạn không thể âm thầm tạo tác vụ theo lịch mà không có sự đồng ý của người dùng tiêu chuẩn. Trên thực tế, nếu bất kỳ chương trình nào thực hiện điều này trên PC của tôi (âm thầm tạo một tác vụ theo lịch trình để vượt qua UAC), tôi sẽ ngay lập tức phân loại nó là phần mềm độc hại và xóa nó.
Karan

Karan khá tốt, làm việc hoàn hảo. Tôi chỉ đề nghị bạn thêm vào câu trả lời về nhu cầu chạy CMD dưới dạng ADMIN, nếu không nó sẽ không hoạt động ... Cảm ơn bạn một lần nữa
Rafael Vidal

2

Khi tạo kho lưu trữ của bạn, Yêu cầu quyền truy cập quản trị .nhập mô tả hình ảnh ở đây


MDMoore313 cảm ơn bạn đã dành thời gian, nhưng tôi đoán tôi đã không giải thích rõ về bản thân mình. Tôi không cần chạy SFX với tư cách quản trị viên. Tôi cần chạy một tệp cụ thể với tư cách quản trị viên ("my_app.exe"), được đặt bên trong tệp SFX. Vấn đề là nhấp đúp vào tệp đó, sẽ không làm cho nó chạy. Cách duy nhất để chạy nó là nhấp chuột phải vào nó và chọn "Chạy với tư cách quản trị viên"
Rafael Vidal

@RafaelVidal SFX có khởi chạy ứng dụng của bạn không? Nếu vậy, ứng dụng của bạn sẽ có quyền quản trị. Nếu không, tôi sẽ cập nhật câu trả lời của tôi.
MDMoore313

Không, nó không khởi chạy ứng dụng. Người dùng phải thực hiện thủ công, vì vậy anh ta có thể đánh dấu vào ô "Chạy với tư cách quản trị viên" trên tab "Tương thích" hoặc nhấp chuột phải vào menu ngữ cảnh "Chạy với tư cách quản trị viên"
Rafael Vidal

@RafaelVidal có lý do gì bạn không muốn WinRAR khởi chạy exe và chỉ cần người dùng tự chạy SFX? có vẻ như điều đó sẽ hoàn thành cùng một mục tiêu và giải quyết vấn đề quản trị viên của bạn. Nếu bạn vẫn tập trung vào việc gắn cờ chương trình của mình để chạy với tư cách quản trị viên, bạn sẽ có cơ hội trả lời tốt hơn về lỗi tràn ngăn xếp (gắn cờ câu hỏi của bạn để di chuyển)
MDMoore313

SFX sẽ khởi chạy tệp, nhưng người dùng có thể tự chạy tệp đó sau đó và sau đó sẽ không có SFX để chạy tệp đó. Đó là lý do tại sao exe cần được gắn cờ là "chạy với tư cách quản trị viên"
Rafael Vidal
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.