Come configuro la mia applicazione per l'esecuzione automatica come amministratore?


9

Ho creato un file patch con un eseguibile al suo interno usando la funzione Winrar SFX.
Dopo aver eseguito il file SFX e l'estrazione finisce, il mio file eseguibile non verrà mai eseguito perché non ha i privilegi di amministratore. Mi chiedo come posso concedere l'accesso come amministratore a quel file in qualche modo di programmazione (come un file batch).

So che posso fare clic destro, andare su "Proprietà", selezionare la scheda "Compatibilità" e quindi selezionare la casella "Esegui come amministratore".

Il problema è che gli utenti che scaricheranno quella patch non la conoscono (e il mio exe viene eseguito solo quando fai clic con il pulsante destro del mouse e scegli "Apri come amministratore", altrimenti non si aprirà mai né visualizzerà il popup UAC).

Ho provato alcuni modi, come "Elevator Runner (Elevate me)", ecc., Ma in realtà sto cercando qualcosa di più semplice di.
Devo solo far funzionare exe come amministratore.


2
Nota per le mod: qui non è richiesta la migrazione a SO .
Karan,

Risposte:


15

Quello che devi fare è incorporare un manifest di applicazione in EXE.

  1. Salvare quanto segue come file di testo chiamato 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. Scarica Windows SDK.

  3. All'interno troverai mt.exe, cioè lo strumento manifest . Invocalo come segue:

    mt.exe -manifest "App.exe.manifest" -outputresource:"App.exe";#1
    
  4. Se non ci sono errori hai finito. È possibile eliminare il file manifest e distribuire solo il file EXE. L'esecuzione dovrebbe richiedere ogni volta l'accesso automatico all'amministratore.

fonte


Lo proverò. A proposito, è possibile migliorare un po 'questo "manifest"? Ti piace farlo come amministratore senza richiedere l'accesso come amministratore? Grazie
Rafael Vidal,

Vuol dire che vuoi elevare silenziosamente e ottenere l'accesso come amministratore? A meno che tu non disattivi l'UAC non sia possibile, altrimenti quale sarebbe lo scopo dell'UAC e non pensi che tutti i malware lo farebbero?
Karan,

Capisco il tuo punto, ma so che ci sono modi ... non è facile per certo, ma ci sono, come il programma "Elevate Me" ... Comunque, far funzionare exe come admin per ora. Davvero grazie in anticipo
Rafael Vidal,

1
Tutti questi programmi per aggirare la richiesta di elevazione utilizzano il noto trucco di Utilità di pianificazione che richiede l'accesso come amministratore. Dal momento che stai cercando di farlo su qualsiasi PC arbitrario in cui viene eseguito il tuo SFX, non puoi creare silenziosamente l'attività pianificata senza il consenso dell'utente standard. In effetti, se qualche programma lo facesse sul mio PC (creare silenziosamente un'attività pianificata per bypassare UAC), lo classificherei istantaneamente come malware ed eliminerei.
Karan,

Karan abbastanza buono, ha funzionato perfettamente. Vorrei solo suggerire di aggiungere alla risposta la necessità di eseguire CMD come ADMIN, altrimenti non funzionerà ... Grazie ancora
Rafael Vidal,

2

Durante la creazione dell'archivio, richiedere l'accesso amministrativo .inserisci qui la descrizione dell'immagine


MDMoore313 grazie per il tuo tempo, ma credo di non essermi spiegato bene. Non ho bisogno di eseguire SFX come amministratore. Devo eseguire un file specifico come admin ("my_app.exe"), che si trova all'interno del file SFX. Il punto è che facendo doppio clic su quel file, non lo farà funzionare. L'unico modo per eseguirlo è fare clic con il pulsante destro del mouse e selezionare "Esegui come amministratore"
Rafael Vidal

@RafaelVidal l'SFX avvia la tua applicazione? In tal caso, l'app avrà i diritti di amministratore. In caso contrario, aggiornerò la mia risposta.
MDMoore313,

No, non avvia l'applicazione. L'utente deve farlo manualmente, quindi può selezionare la casella "Esegui come amministratore" nella scheda "Compatibilità" o fare clic con il pulsante destro del mouse sul menu di scelta rapida "Esegui come amministratore"
Rafael Vidal

@RafaelVidal c'è un motivo per cui non si desidera che WinRAR avvii l'exe e che l'utente esegua l'SFX stesso? sembra che raggiungerebbe lo stesso obiettivo e risolverebbe il problema di amministrazione. Se ti concentri ancora sulla segnalazione del programma da eseguire come amministratore, avresti maggiori possibilità di una risposta sullo overflow dello stack (contrassegna la tua domanda per la migrazione)
MDMoore313

SFX avvia il file, ma gli utenti possono eseguire quel file da soli in seguito e quindi non ci sarà SFX per eseguirlo. Ecco perché l'exe deve essere segnalato come "corri come amministratore"
Rafael Vidal,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.