Causar una ventana emergente UAC desde la línea de comandos sin herramientas personalizadas


8

En Win7, un usuario puede hacer clic derecho en un programa y elegir 'Ejecutar como administrador'. Aparece una ventana emergente, pero no tiene que ingresar la contraseña de administrador.

Me gustaría obtener la misma funcionalidad, pero desde la línea de comandos, en particular, desde el interior de un .batarchivo.

Soy consciente del runascomando incorporado , pero no he encontrado una manera de usar que no termine pidiendo una contraseña en algún momento.

También conozco el Process.StartInfo.Verb = "runas";método, que hace exactamente lo que quiero, pero requiere que cree una aplicación .NET personalizada.

¿Hay alguna manera, usando solo herramientas de línea de comandos incorporadas en Win7, para lograr esto?


Actualización: Gracias a uSlackr, elaboré este comando:

powershell Start-Process cmd.exe -Verb RunAs

Por supuesto, el cmd.exees solo un marcador de posición.

Respuestas:


4

Puede usar el cmdlet Start-Process en Powershell con el verbo RunAs. Más aquí: http://technet.microsoft.com/en-us/library/dd347667.aspx


Perfecto, gracias. Actualicé la pregunta con un ejemplo de trabajo.
jwd

¿Algún equivalente en Windows XP?
Maxbester

Powershell está disponible para XP.
uSlackr

XP no tiene UAC, por lo que la pregunta no es relevante para él
nponeccop

@nponeccop Supongo que la motivación para querer ejecutarse en Windows XP es dejar que se ejecute un solo script en Windows 7 y Windows XP, no tener una ruta para Windows 7 que tenga PowerShell y UAC y una segunda ruta para Windows XP que no tenga PowerShell y sin UAC.
Damian Yerrick

1

Simplemente ejecute cmd.exe como administrador.

El método abreviado de teclado para esto es [shift] + [enter] después de haber seleccionado la línea de comando desde el menú de inicio. Debería aparecer una ventana UAC.

O

Ejecuta todo como administrador

No se recomienda para el uso diario, pero también hay una cuenta de administrador incorporada que puede activar en Windows que simplemente ejecutará todas y cada una de las aplicaciones como root. En un cmd administrativo:

net user administrator /active:yes

Cambie eso a '/ active: no' si desea deshabilitar la cuenta. Una breve introducción aquí .


Con respecto a su primera sugerencia: Lo siento, no estaba claro. Quiero hacer esto desde dentro de un archivo .bat (pregunta actualizada).
jwd

Con respecto a su segunda sugerencia: ejecuté esto y obtuve el mensaje "Se produjo el error 5 del sistema. Acceso denegado".
jwd

Incluso ejecutando cmd.exe como administrador?
A. Hayes

1
El punto principal de esta pregunta es que estoy ejecutando este comando como usuario no administrador y quiero elevar temporalmente los permisos.
jwd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.