2015-04-15 28 views
5

In Windows 8.1, sto provando ad avviare un programma da un file batch chiamato durante l'avvio e voglio che il programma venga eseguito come amministratore. Ecco quello che faccio:Avvio di Windows - come eseguire un programma come amministratore da un file batch

  1. Ho un programma di PROG.EXE sotto c: \ programmi \ MyProgram
  2. L'EXE è in posizione di "Esegui come amministratore"
  3. in C: \ program files \ MyProgram c'è un file batch chiamato RunEXE.bat. Contiene tutti i tipi di cose e alla fine contiene una riga "start prog.exe"
  4. in "C: \ programdata \ Microsoft \ Windows \ Menu Avvio \ Programmi \ Esecuzione automatica" è presente un collegamento a RunEXE.BAT.
  5. Quando riavvio il PC, mi aspetto che il collegamento avvii RunEXE.BAT che a sua volta eseguirà PROG.EXE.

Ma non succede. C'è un breve suono "bip" come se Windows visualizza un messaggio che chiede di confermare che il programma debba essere eseguito come amministratore ma nulla è visibile sullo schermo.

a) Se si contrassegna la scelta rapida & exe ​​NON per l'esecuzione come amministratore, viene avviato l'EXE.
b) Se contrassegno il collegamento & exe ​​per eseguire come amministratore, quindi il file EXE è non avviato.
c) Se la bandiera scorciatoia per NON per eseguire come amministratore e il file EXE per eseguire come amministratore quindi il file EXE è lanciato ma non viene eseguito come amministratore.
d) Collegamento all'avvio per l'EXE. (Nessun lotto). Collegamento non contrassegnato per l'esecuzione come amministratore, EXE è contrassegnato: EXE non in esecuzione.
e) Collegamento all'avvio per l'EXE. (Nessun lotto). Collegamento non contrassegnato come amministratore, EXE non contrassegnato: EXE è in esecuzione ma non come amministratore.

Ho provato a disattivare completamente il controllo dell'account utente - gli stessi risultati. Ho anche provato ad avere un altro EXE invece del batch, con gli stessi risultati.

Quindi, c'è un modo per avere un collegamento a un EXE all'avvio che eseguirà un EXE come amministratore?

risposta

6

si può fare con l'aiuto della Task Scheduler.

Open Run dialogo Win + R ed eseguire seguente comando:

%SystemRoot%\system32\taskschd.msc 

Hit Create Task...

  1. nome Set (ho impostato FooBar)
  2. check Run with highest privileges
  3. Passare alla Actions scheda, New.... , cerca il tuo prog.exe
  4. Salva compito

Vai al tuo bat di file e nel luogo in cui si desidera eseguire il PROG.EXE aggiungere

schtasks /run /tn "FooBar" 

file BAT non deve eseguire come amministratore (se non è necessario), prog.exe verrà avviato senza alcun prompt.

+1

Grazie Xeevis, ha funzionato. – yaronkl

0

E 'facile elevare uno script batch, fino a quando si dispone di PowerShell sul computer:

net file 1>nul 2>nul && goto :run || powershell -ex unrestricted -Command "Start-Process -Verb RunAs -FilePath '%comspec%' -ArgumentList '/c %~fnx0 %*'" 
Problemi correlati