Lebih
Bagaimana cara saya memaksa saya .NET aplikasi untuk menjalankan sebagai administrator?
Setelah saya program yang diinstal pada komputer klien, bagaimana saya memaksa saya program untuk menjalankan sebagai administrator pada Windows 7?
838
12
Anda'll ingin memodifikasi nyata yang akan tertanam dalam program ini. Ini bekerja pada Visual Studio 2008 dan lebih tinggi: Project + Add New Item, pilih "Aplikasi File Manifest". Mengubah
<requestedExecutionLevel>
elemen ke:Pengguna mendapatkan UAC prompt ketika mereka memulai program. Gunakan dengan bijak; kesabaran mereka bisa cepat aus.
Menambahkan
requestedExecutionLevel
elemen untuk anda yang nyata adalah hanya setengah pertempuran, anda harus ingat bahwa UAC dapat dimatikan. Jika itu adalah, anda harus melakukan cek cara lama sekolah dan memasang dialog kesalahan jika user bukan administrator(call
IsInRole(WindowsBuiltInRole.Administrator)
pada thread anda'sCurrentPrincipal
).Langkah-langkah rinci adalah sebagai berikut.
Perhatikan bahwa menggunakan kode ini anda harus mematikan pengaturan keamanan ClickOnce, untuk melakukan ini, masuk ke dalam Sifat -> Keamanan -> ClickOnce Keamanan
Saya menerapkan beberapa kode untuk melakukannya secara manual:
Anda dapat menanamkan manifest file di file EXE, yang akan menyebabkan Windows (7 atau lebih tinggi) untuk selalu menjalankan program sebagai administrator.
Anda dapat menemukan rincian lebih lanjut di Langkah 6: Buat dan Cantumkan Aplikasi Manifest (UAC) (MSDN).
Ketika bekerja pada Visual Studio 2008, klik kanan pada
Proyek -> Add New Item
dan kemudian pilihAplikasi Manifest File
.Dalam manifest file, anda akan menemukan tag
requestedExecutionLevel
, dan anda dapat mengatur tingkat ke tiga nilai:<requestedExecutionLevel tingkat="asInvoker" uiAccess="salah" />
ATAU
<requestedExecutionLevel tingkat="requireAdministrator" uiAccess="salah" />
ATAU
<requestedExecutionLevel tingkat="highestAvailable" uiAccess="salah" />
Untuk mengatur aplikasi anda untuk menjalankan sebagai administrator, anda harus memilih satu tengah.
Sebagai per
anda akan ingin untuk menambahkan aplikasi terwujud jika anda don't sudah memiliki satu atau don't tahu bagaimana untuk menambahkan satu. Seperti beberapa proyek don't secara otomatis menambah terpisah file manifest, pertama pergi ke proyek properti, arahkan ke Aplikasi tab dan periksa untuk memastikan proyek anda tidak termasuk terwujud di bawah keran.
Di Visual Studio 2010 klik kanan nama proyek anda. Tekan "Lihat Pengaturan Windows", ini menghasilkan dan membuka sebuah file yang disebut "app.mewujudkan". Dalam file ini menggantikan "asInvoker" dengan "requireAdministrator" seperti yang dijelaskan di bagian berkomentar dalam file.
Cara lain untuk melakukan ini, dalam kode-satunya, adalah untuk mendeteksi jika proses ini berjalan sebagai admin seperti di jawaban oleh @NG.. Dan kemudian membuka aplikasi lagi dan menutup saat ini.
Saya menggunakan kode ini ketika sebuah aplikasi hanya membutuhkan hak admin ketika berjalan di bawah kondisi tertentu, seperti ketika menginstal sendiri sebagai layanan. Jadi itu doesn't perlu jalankan sebagai admin semua waktu seperti jawaban yang lain memaksa juga.
Perhatikan pada kode di bawah
NeedsToRunAsAdmin
adalah suatu metode yang mendeteksi jika dalam kondisi saat ini hak admin diperlukan. Jika ini kembalipalsu
kode tidak akan mengangkat sendiri. Ini adalah keuntungan utama dari pendekatan ini lebih dari yang lain.Meskipun kode ini memiliki keuntungan yang disebutkan di atas, tidak perlu re-launch itu sendiri sebagai sebuah proses baru yang isn't selalu apa yang anda inginkan.
Anda dapat membuat manifest menggunakan ClickOnce Pengaturan Keamanan, dan kemudian menonaktifkannya:
Setelah anda mengklik ini, file akan dibuat dalam Proyek's properties folder bernama app.nyata setelah ini dibuat, anda dapat hapus centang
Enable ClickOnce Pengaturan Keamanan
pilihanBuka file tersebut dan ubah baris ini :
untuk:
Ini akan membuat program yang memerlukan hak administrator.
Ini adalah versi sederhana dari ini jawaban, di atas oleh @NG
Klik kanan executable anda, pergi ke Properties > Kompatibilitas dan memeriksa 'Jalankan program ini sebagai admin' kotak.
Jika anda ingin menjalankannya sebagai admin untuk semua pengguna, lakukan hal yang sama di 'mengubah pengaturan untuk semua pengguna'.