Bagaimana cara mengkonfigurasi aplikasi saya agar berjalan sebagai administrator secara otomatis?

9

Saya telah membuat file tambalan dengan bagian dalamnya yang dapat dieksekusi menggunakan fitur Winrar SFX.
Setelah mengeksekusi file SFX dan ekstraksi berakhir, file executable saya tidak akan pernah berjalan karena tidak memiliki hak admin. Saya bertanya-tanya BAGAIMANA saya dapat memberikan administrator akses ke file itu dengan cara pemrograman (seperti file batch).

Saya tahu bahwa saya dapat mengeklik kanannya, pergi ke "Properti", pilih tab "Kompatibilitas" dan kemudian centang kotak "Jalankan sebagai Administrator".

Masalahnya adalah bahwa pengguna yang akan mengunduh patch itu tidak mengetahuinya (dan exe saya hanya berjalan ketika Anda mengklik kanan dan memilih "Buka sebagai administrator", selain itu tidak akan pernah membuka atau menampilkan popup UAC).

Saya telah mencoba beberapa cara, seperti "Elevator Runner (Tinggikan saya)", dll, tetapi saya sebenarnya mencari sesuatu yang lebih sederhana daripada.
Saya hanya perlu membuat exe selalu berjalan sebagai administrator.

Rafael Vidal
sumber
2
Catatan untuk mod: Tidak diperlukan migrasi ke SO di sini.
Karan

Jawaban:

15

Yang perlu Anda lakukan adalah menyematkan manifes aplikasi ke dalam EXE.

  1. Simpan yang berikut ini sebagai file teks bernama 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. Unduh SDK Windows.

  3. Di dalam Anda akan menemukan mt.exe yaitu Alat Manifest . Aktifkan sebagai berikut:

    mt.exe -manifest "App.exe.manifest" -outputresource:"App.exe";#1
    
  4. Jika tidak ada kesalahan Anda selesai. Anda dapat menghapus file manifes dan mendistribusikan EXE saja. Menjalankannya harus membuatnya secara otomatis meminta akses admin setiap kali.

Sumber

Karan
sumber
Saya akan mengujinya. Omong-omong, mungkinkah membuat "Manifest" ini sedikit lebih baik? Suka melakukannya sebagai Administrator tanpa meminta Akses Admin? Terima kasih
Rafael Vidal
Berarti Anda ingin diam-diam meninggikan dan mendapatkan akses admin? Kecuali Anda mematikan UAC yang tidak mungkin, jika tidak, apa gunanya UAC dan tidakkah Anda pikir setiap malware akan melakukan ini?
Karan
Saya mengerti maksud Anda, tetapi saya tahu bahwa ada beberapa cara ... tidak mudah untuk memastikannya, tetapi ada, seperti program "Tinggikan Saya" ... Bagaimanapun, menjadikan exe berjalan sebagai admin sudah cukup untuk saat ini. Terima kasih sebelumnya
Rafael Vidal
1
Semua program semacam itu untuk memotong prompt ketinggian menggunakan trik Penjadwal Tugas yang terkenal yang membutuhkan akses admin. Karena Anda ingin melakukan ini pada PC sembarang tempat SFX Anda dijalankan, Anda tidak dapat secara diam-diam membuat tugas yang dijadwalkan tanpa persetujuan pengguna standar. Bahkan, jika ada program yang melakukan ini pada PC saya (secara diam-diam membuat tugas terjadwal untuk memotong UAC), saya akan langsung mengklasifikasikannya sebagai malware dan menghapusnya.
Karan
Karan yang cukup bagus, bekerja dengan sempurna. Saya hanya akan menyarankan Anda untuk menambah jawaban perlunya menjalankan CMD sebagai ADMIN, jika tidak itu tidak akan berhasil ... Terima kasih lagi
Rafael Vidal
2

Saat membuat arsip Anda, Minta Akses Administratif .masukkan deskripsi gambar di sini

MDMoore313
sumber
MDMoore313 terima kasih atas waktu Anda, tapi saya rasa saya tidak menjelaskan diri saya dengan baik. Saya tidak perlu menjalankan SFX sebagai admin. Saya perlu menjalankan file tertentu sebagai admin ("my_app.exe"), yang terletak di dalam file SFX. Intinya adalah mengklik dua kali file itu, tidak akan membuatnya berjalan. Satu-satunya cara untuk menjalankannya adalah mengklik kanan dan memilih "Run as Administrator"
Rafael Vidal
@ RafaelVidal, apakah SFX meluncurkan aplikasi Anda? Jika demikian, maka aplikasi Anda akan memiliki hak admin. Jika tidak, saya akan memperbarui jawaban saya.
MDMoore313
Tidak, itu tidak meluncurkan aplikasi. Pengguna harus melakukannya secara manual, sehingga ia dapat mencentang kotak "Jalankan sebagai Admin" pada tab "Kompatibilitas" atau klik kanan menu konteks "Jalankan sebagai Administrator"
Rafael Vidal
@ RafaelVidal apakah ada alasan Anda tidak ingin WinRAR meluncurkan exe, dan apakah pengguna menjalankan SFX itu sendiri? sepertinya itu akan mencapai tujuan yang sama dan menyelesaikan masalah admin Anda. Jika Anda masih fokus pada penandaan program untuk dijalankan sebagai admin, Anda akan memiliki peluang yang lebih baik untuk mendapat jawaban tentang stack overflow (tandai pertanyaan Anda untuk migrasi)
MDMoore313
SFX memang meluncurkan file, tetapi pengguna dapat menjalankan file itu sendiri nanti dan kemudian tidak akan ada SFX untuk menjalankannya saat itu. Karena itulah exe tersebut harus ditandai sebagai "run as admin"
Rafael Vidal