2012-07-25 13:57:17 +0000 2012-07-25 13:57:17 +0000
106

¿Cómo puedo ejecutar siempre el símbolo del sistema como administrador?

Como desarrollador, a menudo tengo la necesidad de abrir un símbolo del sistema para diversos fines. Por ejemplo, uso iisreset para reiniciar mi servidor web local.

Normalmente abro la ventana de comandos de una de estas dos maneras:

  1. Pulsar Win, escribir "cmd" y pulsar Enter
  2. Mientras estoy en el Explorador, mantengo pulsada la tecla Shift y hago clic con el botón derecho del ratón en una carpeta, y elijo "Abrir ventana de comandos aquí"

Sin embargo, cuando abro la ventana de comandos de cualquiera de estas maneras, no tengo los privilegios completos de administrador a los que creo que tengo derecho.

I am an administrator, but cmd.exe doesn't know that

Para poder ejecutar aplicaciones sólo para administradores, tengo que abrir la línea de comandos de esta manera relativamente laboriosa:

  1. Pulsar Win, escribir "cmd"
  2. Esperar a que se despliegue el menú Esperar a que se despliegue el menú
  3. Levantar la mano del teclado y ponerla en el ratón
  4. Haga clic con el botón derecho del ratón en el elemento de menú "cmd.exe"
  5. Elegir "Ejecutar como administrador"

Esto es inaceptable por varias razones:

  • La ventana siempre se abre en C:\windows\system32, en lugar de mi directorio Users (como en la técnica aprobada 1) o la carpeta en la que quiero estar (como en la técnica aprobada 2). Así que a menudo tengo que cambiar de directorio para llegar a donde quiero ir.
  • Este proceso es varios milisegundos más lento que cualquiera de mis métodos preferidos. Realizado varias veces al día, todos los días durante el resto de mi carrera, suma unos diez días de tiempo perdido haciendo clic y esperando y cambiando de directorio.
  • Como programador, realizar una tarea robótica sin sentido me causa un gran dolor emocional.
  • Como programador, levantar la mano es una tarea extenuante que me causa un gran dolor físico.

Por eso estoy buscando una solución de una sola vez que permita que las técnicas aprobadas 1 y 2 abran las peticiones de comandos del administrador.

Muchos programas te permiten cambiar permanentemente su nivel de privilegio por defecto desde el menú de Propiedades. El Símbolo del sistema no es uno de esos programas.

enter image description here

¿Cómo puedo hacer que la ventana de comandos se ejecute como administrador por defecto (incluso cuando se utiliza la opción del menú contextual "Abrir ventana de comandos aquí")?

Respuestas [13]

88
2012-07-25 14:12:02 +0000

Para responder a la primera parte de tu pregunta, cuando pulses la tecla de Windows y escribas "CMD" puedes pulsar Ctrl + Shift + Enter para abrir como administrador.

Para responder a la segunda parte de tu pregunta, pega lo siguiente en el bloc de notas y guárdalo con una extensión ".reg":

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""

Luego ejecuta el archivo. Este fusionará los cambios en el registro y añadirá la opción a tus menús contextuales. (No se necesita la tecla de mayúsculas).

88
38
2012-07-25 14:56:43 +0000

Muchos programas le permiten cambiar permanentemente su nivel de privilegio por defecto desde el menú de Propiedades. El Símbolo del sistema no es uno de esos programas.

La pestaña Compatibilidad está completamente deshabilitada para todos los ejecutables de Windows:

REGEDIT4
[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"Autorun"="cd /d \"%userprofile%\""

Para establecer los privilegios de administrador para los ejecutables de Windows, es necesario crear un acceso directo y utilizar la pestaña→Advanced (el elemento del Símbolo del sistema en el menú Inicio ya es un acceso directo):

enter image description here

La ventana siempre se abre en C:\windows\system32, en lugar de mi directorio de Usuarios (como en la técnica aprobada 1) o la carpeta en la que quiero estar (como en la técnica aprobada 2). Así que a menudo tengo que cambiar de directorio para llegar a donde quiero ir.

Eso es normal y tiene sentido, ya que si estás abriendo una ventana de comandos de administrador, probablemente estás haciendo algunas acciones del sistema para las que necesitas privilegios de administrador en lugar de acciones de usuario para las que ya tienes permisos de todos modos.

Puede establecer el directorio por defecto de forma global añadiendo/editando la entrada del registro Autorun (ni siquiera tiene que ser una cadena expandible para usar variables de entorno):

enter image description here

Ahora, cada vez que abra una ventana de comandos usando cualquier método automáticamente se pondrá por defecto (bueno, técnicamente cambiar-directorio) en su directorio de perfil de usuario.

Aún mejor, puedes añadir otros comandos para que se ejecuten automáticamente cada vez que abras un símbolo de sistema utilizando el operador & (por ejemplo, cd /d %userprofile% & cls & dir). Además, puede establecer el mismo valor en la misma clave bajo la rama HKLM para establecerlo para todos los usuarios.

Tenga en cuenta que todavía tendrá que aceptar el aviso de UAC. Desgraciadamente no hay (¿actualmente?) ninguna manera de crear una "lista blanca" UAC de programas de confianza para que el comando-pregunta pueda ser ejecutado como administrador sin tener que aceptar la pregunta. Esto te deja con (a) pocas opciones.

  • Puede desactivar el UAC o desactivarlo por completo (useraccountcontrolsettings.exe)
  • Puede utilizar un programa de elevación de privilegios como Elevator aka Elevate Me o el Elevation PowerToy
  • Crear una tarea programada elevada introduzca las credenciales (una vez) para ella, y luego cree un acceso directo a la tarea

En el primer caso, se evita el UAC por completo mientras que en los dos últimos, sólo se introducen las credenciales una vez al crear el acceso directo.

38
20
2011-11-13 07:15:41 +0000

La solución que utilizo es abrir el símbolo del sistema abriendo el menú de inicio, escribiendo 'cmd' y pulsando Ctrl+Mayús+Enter. Esto hará que el programa seleccionado se inicie como administrador.

20
12
2013-03-10 22:08:33 +0000

Para autoejecutar CMD como administrador cada vez que se hace clic simplemente (sin tener que hacer clic con el botón derecho o crear accesos directos adicionales), hay una solución fácil para esto:

  1. En el Editor del Registro , navegue hasta:
    HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers

  2. Haga clic con el botón derecho en Layers, seleccione NuevoValor de cadena. Establezca el Nombre de su nuevo valor de cadena a la ruta completa a (CMD.EXE) símbolo del sistema (es decir, C:\Windows\System32\cmd.exe)

  3. Haga doble clic en el nuevo valor de cadena para modificarlo, y establezca el "Value data" a RUNASADMIN.

Yo tenía la misma molestia, y esto me funcionó.

12
11
2014-01-04 17:10:28 +0000

Si quieres que CMD.exe se ejecute siempre como administrador, sólo tienes que añadir el siguiente código reg a tu Registro:

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\Windows\System32\cmd.exe"="~ RUNASADMIN"
"C:\Windows\SysWOW64\cmd.exe"="~ RUNASADMIN"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\Windows\System32\cmd.exe"="~ RUNASADMIN"
"C:\Windows\SysWOW64\cmd.exe"="~ RUNASADMIN"
11
4
2012-07-25 14:31:14 +0000

Ha habido un par de herramientas que he utilizado que eran otras soluciones (además de lo que Jesse mencionó).

Cuando Vista salió por primera vez, Microsoft sacó un powerToy elevate " que era bastante útil y hacía el trabajo y todavía, creo (no lo he probado) funciona para Windows 7. Colócalo en tu entorno de rutas y podrás ejecutar "elevate iisreset" desde un símbolo del sistema normal (o incluso "elevate cmd" desde el inicio/ejecución o un crear un acceso directo)

4
4
2013-09-25 01:03:59 +0000

La forma más fácil de evitar todas las molestias del UAC, etc., es configurar una entrada del Programa de Tareas para ejecutar cmd.exe utilizando los privilegios más altos. No cree un evento de activación para ello y asegúrese de que la casilla Permitir que la tarea se ejecute bajo demanda esté seleccionada en la pestaña Configuración. Además, en la pestaña de Configuración, asegúrese de que el menú desplegable "Si la tarea ya se está ejecutando, se aplica la siguiente regla" esté establecido en No iniciar una nueva instancia.

A continuación, cree un acceso directo a esta tarea en su escritorio y ejecútela desde allí, o a través de una tecla de acceso directo o fije el acceso directo a la barra de tareas.

Yo lo he hecho en mi sistema Windows 7 y funciona perfectamente.

4
2
2013-09-23 10:28:31 +0000

Sólo tienes que copiar y pegar cmd.exe y renombrarlo como "cmda.exe" en la carpeta \system32\ (337 KB no es gran cosa...). La opción "ejecutar como administrador" en las propiedades de cmda.exe dejará de estar en gris y podrás establecer que se ejecute siempre como administrador. Ahora tendrás dos solicitudes de comando: la primera es regular, la segunda tiene un privilegio (a)dmin. Es tan fácil escribir "cmda" en la barra de búsqueda de Win como hacerlo con "cmd".

Para el cmd en el menú contextual con privilegio de administrador, asegúrese de que ya tiene cmda.exe en su sitio, añada esto en un nuevo archivo .reg y láncelo

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmda]
@="Open command window here (Administrator)"
"HasLUAShield"=""
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmda\Command]
@="cmda.exe /s /k pushd \"%V\""

Verá dos líneas iguales en el menú contextual (shift); un Símbolo del sistema no elevado y otro con "(Administrador)" añadido.

Eso es todo...

2
1
2013-12-15 03:45:32 +0000

Creo que la forma más fácil de ejecutar siempre cmd como admin es hacer el archivo .reg con el código de abajo:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
@="C:\Windows\System32\cmd.exe"="RUNASADMIN"

Pegar eso en el bloc de notas o algo así y guardar como archivo .reg. Nota: Esto hace que el símbolo del sistema se ejecute como administrador para todos los usuarios. Para que se ejecute siempre como administrador sólo en su usuario, cambie HKEYLOCALMACHINE a HKEY_CURRENT_USER

1
1
2012-07-25 16:59:21 +0000

Cree un acceso directo a cmd.exe, haga clic con el botón derecho y seleccione propiedades, en la pestaña Acceso directo seleccione Avanzado, marque Ejecutar como administrador.

1
1
2015-01-15 09:26:51 +0000

Todo gracias a Jesse Brohinsky

Una versión más mejorada. Esto también incluye el directorio de fondo que le permite abrir cmd desde dentro de la carpeta aswell. También por si acaso se puede abrir el commandpromt como no admin.

También puedes desactivar el AdminApprovalMode. De esta manera no necesitas ejecutar como admin cuando eres admin http://helpdeskgeek.com/windows-7/turn-off-admin-approval-mode-in-windows-7/

Windows Registry Editor Version 5.00
;write minus before to unreg example: [-HKEY_CLASSES_ROOT\Directory\shell\cmdhere]

[HKEY_CLASSES_ROOT\Directory\shell\cmdhere]
@="Open Command Window Here"

[HKEY_CLASSES_ROOT\Directory\shell\cmdhere\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmdhere]
@="Open Command Window Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cmdhere\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas]
@="Open Command Window Here as Administrator"

[HKEY_CLASSES_ROOT\Directory\Background\shell\runas\command]
@="cmd.exe /s /k pushd \"%V\""
1
0
2014-09-23 08:41:15 +0000

Lo siguiente me funciona

@echo off
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
    pushd "%CD%"
    CD /D "%~dp0"
:--------------------------------------

te saldrá el mismo prompt de uac confirmando que corras como admin.. lo encontré hace tiempo @ stackexchange

0
0
2011-11-13 08:30:56 +0000

La única otra manera, aparte de lo que mencionó Dracs, es desactivar el UAC por completo

0