2011-11-23 19 views
110

Ho un file batch chiamato test.bat. Io chiamo le istruzioni riportate di seguito nel file test.bat:Come eseguire un'applicazione come "Esegui come amministratore" dal prompt dei comandi?

start /min powershell.exe %sysdrive%\testScripts\testscript1.ps1 

Quando ho eseguito questo attraverso il prompt dei comandi, il mio testscript sta funzionando con successo. Voglio eseguirlo come amministratore (come se avessi creato un collegamento sul desktop ed eseguito come amministratore. Non dovrebbe richiedere alcun nome utente o password).

Ho provato ad aggiungere /elevate e /NOUAC parametri nello test.bat precedente, ma senza fortuna. Come posso risolvere questo problema?

So come farlo manualmente, ma voglio che venga eseguito dal prompt dei comandi.

(By Marnix Klooster): ... senza utilizzare strumenti aggiuntivi, come quelli suggeriti nel an answer to Super User question How to run program from command line with elevated rights)

+1

possibile duplicato di [Esegui file batch come amministratore - Windows 7 - Comando "Esegui come" dal file system di rete] (http://stackoverflow.com/questions/10415653/run-batch-file-as-administrator-windows-windows -7-command-run-as-from-network-file) –

+75

Questa domanda è OK per chiedere qui e non dovrebbe essere chiusa come fuori tema. È una domanda relativa alla programmazione e allo sviluppo del software. Il programma DotNet e C++ hanno tutti la capacità di iterativo con il sistema e altri programmi invocando il comando della console o semplicemente attraverso un file batch. –

+1

Questo mi è stato utile: http://superuser.com/questions/55809/how-to-run-program-from-command-line-with-elevated-rights A volte "run as administrator" si intende "run" con diritti elevati ". – User

risposta

21

Vai a questa TechNet articolo:. Runas command documentation

Dal prompt dei comandi:

C:\> runas /user:<localmachinename>\administrator cmd 

Oppure, se si è connessi a un dominio:

C:\> runas /user:<DomainName>\<AdministratorAccountName> cmd 
+0

rileggo la tua domanda e non vuoi essere richiesto. Il mio suggerimento causerà una richiesta di password. Scusate! –

+8

ho provato questo comando, sta chiedendo le credenziali, non dovrebbe chiedere le credenziali. come ho menzionato nella mia domanda.se faccio clic destro sulla voce del desktop eseguirlo come amministratore è il comportamento previsto. –

80

Prova questa:

runas.exe /savecred /user:administrator "%sysdrive%\testScripts\testscript1.ps1" 

Si salva la password la prima volta e non chiede di nuovo. Forse quando cambi la password dell'amministratore ti verrà chiesto di nuovo.

+1

Anche se può funzionare correttamente, è un'idea assolutamente orribile in quanto mina l'intero concetto di UAC. –

+7

@BenVoigt suggerire un'alternativa quindi –

+6

Provare 'powershell -Command" Start-Process 'C: \ program.exe' -Verb runAs "' (sostituire 'C: \ program.exe' dal comando), vedere http://superuser.com/questions/55809/how-to-run-program-from-command-line-with-elevated-rights –

6

Sembra psexec -h è il modo per farlo:

-h   If the target system is Windows Vista or higher, has the process 
      run with the account's elevated token, if available. 

Il che ... non sembra essere elencati nella documentazione online in Sysinternals - PsExec.

Ma funziona sulla mia macchina.

+0

Non funziona qui. Invece ottengo solo l'output di aiuto. – ygoe

+6

Questo non sembra funzionare per me a meno che non venga eseguito da un processo che ha già privilegi di amministratore: "Impossibile installare il servizio PSEXESVC" – Vince

+1

Non ho nemmeno questo comando in Windows 10. - Non dal prompt dei comandi, o da Power Shell. – BrainSlugs83

Problemi correlati