2011-11-23 30 views
110

Tengo un archivo por lotes llamado test.bat. Estoy llamando a las siguientes instrucciones en el archivo test.bat:¿Cómo ejecutar una aplicación como "ejecutar como administrador" desde el símbolo del sistema?

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

Cuando ejecuto esto a través de la línea de comandos, mi testscript está funcionando correctamente. Quiero ejecutarlo como administrador (como si hubiera creado un acceso directo en el escritorio y se ejecutara como administrador. No debería solicitar ningún nombre de usuario o contraseña).

He intentado agregar los parámetros /elevate y /NOUAC en el test.bat anterior, pero no tuve suerte. ¿Cómo soluciono este problema?

Sé cómo hacerlo manualmente, pero quiero que esto se ejecute desde el símbolo del sistema.

(Por Marnix Klooster): ... sin necesidad de herramientas adicionales, como los sugeridos en an answer to Super User question How to run program from command line with elevated rights)

+1

posible duplicado de [Ejecutar archivo por lotes como administrador - Windows 7 - Comando "Ejecutar como" desde el sistema de archivos de red] (http://stackoverflow.com/questions/10415653/run-batch-file-as-administrator-windows -7-command-run-as-from-network-file) –

+75

Esta pregunta está bien para preguntar aquí y no se debe cerrar como fuera del tema. Es una pregunta relacionada con la programación y el desarrollo de software. El programa DotNet y C++ tienen la capacidad iterativa con el sistema y otros programas mediante el comando invoke console o simplemente a través de un archivo por lotes. –

+1

Esto fue útil para mí: http://superuser.com/questions/55809/how-to-run-program-from-command-line-with-elevated-rights Algunas veces "ejecutar como administrador" se espera que signifique "ejecutar" con derechos elevados ". – User

Respuesta

21

ver este artículo TechNet:. Runas command documentation

Desde un símbolo del sistema:

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

O, si está conectado a un dominio:

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

Releí tu pregunta y no quieres ser incitado. Mi sugerencia generará una solicitud de contraseña. ¡Lo siento! –

+8

intenté este comando, está pidiendo credencial, no debería pedir credenciales. como mencioné en mi consulta.si hago clic con el botón derecho en el elemento del escritorio, ejecutarlo como administrador es el comportamiento esperado. –

80

Prueba esto:

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

guarda la contraseña la primera vez y nunca se pregunta de nuevo. Tal vez cuando cambie la contraseña de administrador se le preguntará nuevamente.

+1

Si bien esto puede funcionar correctamente, es una idea absolutamente horrible ya que socava todo el concepto de UAC. –

+7

@BenVoigt por favor sugiera una alternativa luego –

+6

Pruebe 'powershell -Command" Start-Process 'C: \ program.exe' -Verb runAs "' (reemplace 'C: \ program.exe' por su comando), vea http://superuser.com/questions/55809/how-to-run-program-from-command-line-with-elevated-rights –

6

Parece que psexec -h es la manera de hacer esto:

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

... Lo que no parece que se enumeran en la documentación en línea en Sysinternals - PsExec.

Pero funciona en mi máquina.

+0

No funciona aquí. En cambio, solo recibo la ayuda de salida. – ygoe

+6

Esto no parece funcionar para mí a menos que lo ejecute desde un proceso que ya tiene privilegios de administrador: "No se pudo instalar el servicio PSEXESVC" – Vince

+1

Ni siquiera tengo este comando en Windows 10. - No desde el símbolo del sistema, o desde Power Shell. – BrainSlugs83

Cuestiones relacionadas