2010-03-21 15 views
13

Ho bisogno di uno dei miei .exe per eseguire sempre come amministratore senza prompt UAC. Il mio programma verrà installato con l'installazione, che avrà per una volta i diritti di amministratore, e ho bisogno di eseguire questo passo in questa configurazione che il mio exe sarà sempre eseguito come amministratore senza prompt UAC.Win C#: Esegui app come amministratore senza prompt UAC

ho trovato 2 soluzioni finora:

1. utilizzare il servizio personalizzato, che elevare il programma per me.

2. Utilizzare Task Scheduler.

C'è qualche altra soluzione? Alcuni si manifestano probabilmente?

Grazie.

+0

Che tipo di applicazione? – ZippyV

+2

Potresti contattare MSFT e chiedere che la tua app sia inserita in una speciale "lista di esclusione UAC". Non sono sicuro che funzionerà, non inseriranno i propri programmi in quella lista. Sì, operazione pianificata, ci vuole admin privs per aggiungerlo. –

risposta

8

Ovviamente, cosa si dovrebbe fare se si desidera solo guidare l'interfaccia utente è utilizzare il flag di accesso all'interfaccia utente nel file manifest (vedere http://msdn.microsoft.com/en-us/library/ms742884.aspx). Se si installa l'applicazione in una posizione attendibile (ad esempio system32) ed è firmata (bleh!), Quando si esegue l'applicazione verrà elevata a elevata (per un account amministratore).

Il requisito della firma lo rende leggermente fastidioso ma almeno riduce leggermente la superficie di attacco quando il codice viene eseguito con integrità elevata ma non con un token amministratore.

+0

Grazie mille. Questo sembra molto interessante. Firmerò comunque la mia app in futuro. E se ottenessi un livello di integrità più elevato senza token amministratore, è esattamente ciò di cui ho bisogno. – Paya

+0

BTW Ho trovato certificati COMODO molto economici qui: https://secure.ksoftware.net/code_signing.html – Paya

27

Se fosse possibile farlo, il controllo dell'account utente sarebbe completamente inefficace. L'incapacità dello di applicazioni per elevarsi senza il consenso dell'utente è il principio fondamentale dietro UAC.

A parte avere già un processo elevato che lo avvia (ovvero servizio o pianificatore di attività), la risposta è no, non può essere eseguita.

+7

Sembra che qualcuno voglia scrivere un virus. – Karl

+0

+1 Proprio come ha scritto @Aaronaught, un obiettivo di progettazione di Controllo dell'account utente è ** non ** fornire un modo per le applicazioni di eludere le richieste. –

+4

@Karl: Non presumo di conoscere la sua motivazione: molti prodotti software legali provano a fare cose altrettanto odiose che Windows proibisce esplicitamente, come rubare lo stato attivo o installare scorciatoie nel Quick Launch. Naturalmente, tali programmi di solito si bloccano e bruciano quando c'è qualcosa di "non standard" sull'installazione come la struttura delle directory o il linguaggio. – Aaronaught

Problemi correlati