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


104

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

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

  1. Presione Win, escriba "cmd" y presioneEnter
  2. Mientras está en el Explorador, mantenga presionado Shifty haga clic con el botón derecho en una carpeta, y elija "Abrir ventana de comandos aquí"

Sin embargo, cuando abro la ventana de comandos de cualquiera de estas formas, no tengo todos los privilegios de administrador a los que siento que tengo derecho.

Soy administrador, pero cmd.exe no lo sabe

Para ejecutar aplicaciones solo de administrador, tengo que abrir la línea de comandos de esta manera relativamente laboriosa:

  1. Presione Win, escriba "cmd"
  2. Espera a que el menú se llene
  3. Levante la mano del teclado y colóquelo en el mouse
  4. Haga clic derecho en el elemento de menú "cmd.exe"
  5. Elija "Ejecutar como administrador"

Esto es inaceptable por varias razones:

  • La ventana siempre se abre en C: \ windows \ system32, en lugar de mi Usersdirectorio (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 los directorios 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 dedicado a hacer clic y esperar y cambiar el directorio.
  • Como programador, realizar una tarea robótica sin sentido me causa un gran dolor emocional.
  • Como programador, levantar mi mano es una tarea extenuante que me causa un gran dolor físico.

Es por eso que estoy buscando una solución única que permita que las técnicas aprobadas 1 y 2 abran mensajes de comando del administrador.

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

ingrese la descripción de la imagen aquí

¿Cómo hago que la ventana de comandos se ejecute como administrador de forma predeterminada (incluso cuando uso la opción de menú contextual "Abrir ventana de comandos aquí")?


¿Por qué no simplemente cambiar UAC para elevar solo?
surfasb

No veo una opción de "solo elevación" en mi control deslizante UAC. ¿Se está refiriendo a algo además de la ventana Configuración de control de cuenta de usuario?
Kevin

66
Creo que es tiempo de martillo ...
ThunderToes

Respuestas:


88

Para responder a la primera parte de su pregunta, cuando presiona la tecla de Windows y escribe "CMD" puede presionar Ctrl+ Shift+ Enterpara abrir como administrador.

Para responder la segunda parte de su pregunta, pegue lo siguiente en el bloc de notas y guárdelo con la 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. Fusionará los cambios en el registro y agregará la opción a sus menús contextuales. (No se necesita la tecla Mayús).


77
Nota; aún tendrá que aceptar el aviso de UAC en ambos casos.
Synetech

1
La edición del registro no funciona en Windows 8.
Biker John

El parche de registro funciona para Server 2012 R2
fiat

No funcionó para mí en Windows 7
Hello Universe

1
Si no ve el comando después de ejecutar el archivo reg,
cierre la

38

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

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

ingrese la descripción de la imagen aquí

Para establecer privilegios de administrador para los ejecutables de Windows, debe crear un acceso directo y usar la pestaña Acceso directoAdvanced(el elemento del símbolo del sistema en el menú Inicio ya es un acceso directo):

ingrese la descripción de la imagen aquí

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 los directorios para llegar a donde quiero ir.

Eso es normal y tiene sentido ya que si está abriendo un símbolo del sistema de administración, probablemente esté realizando algunas acciones del sistema para las cuales necesita privilegios de administrador en lugar de acciones de usuario para las que ya tiene permisos.

Puede establecer el directorio predeterminado globalmente agregando / editando la Autorunentrada del registro (ni siquiera tiene que ser una cadena expandible para usar variables de entorno):

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

Ahora, cada vez que abra un símbolo del sistema utilizando cualquier método , automáticamente cambiará (bueno, técnicamente cambiará el directorio ) a su directorio de perfil de usuario.

Aún mejor, puede agregar otros comandos para que se ejecuten automáticamente cada vez que abra un símbolo del sistema utilizando el &operador (por ejemplo, cd /d %userprofile% & cls & dir). Además, puede establecer el mismo valor en la misma clave debajo de la HKLMrama para configurarlo para todos los usuarios.


Tenga en cuenta que aún tendrá que aceptar la solicitud de UAC. Desafortunadamente, (¿actualmente?) No hay forma de crear una "lista blanca" de UAC de programas confiables para que el símbolo del sistema se pueda ejecutar como administrador sin tener que aceptarlo. Esto te deja con (a) pocas opciones.

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

En el primer caso, evita el UAC por completo, mientras que en los dos últimos, solo ingresa sus credenciales una vez al crear el acceso directo.


Hay un problema con la configuración del directorio actual mediante la ejecución automática. Con ese valor establecido, las cd /d "%userprofile%"ejecuciones automáticas no solo al abrir una nueva ventana de consola, sino también cada vez que se invoca un nuevo hilo de ejecución. Esto puede causar problemas, por ejemplo, con for /fbucles. Prueba esto en un símbolo del cmd: cd "\Program Files"a continuación for /f "delims=" %I in ('cmd /c cd') do @echo %I. Verá que el for /fbucle cree que su directorio de trabajo actual es $ home, no Program Files. Es más seguro modificar el cmdacceso directo y establecer el objetivo como "%comspec%" /k cd /d "%userprofile%".
rojo

Si desea conservar la versión de Windows y la información de copyright al abrir una nueva ventana de consola, establezca el objetivo del acceso directo a%comspec% /c cd /d "%USERPROFILE%" & %comspec%
rojo

+1 para la respuesta de edición sin registro. La otra respuesta podría haber estado bien en 2012, pero no quiero probarla en Windows 10 hoy.
Alan

19

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


1
¿Hay alguna alternativa que no requiera "búsqueda"? (porque por lo que sé, escribir cosas en el cuadro realmente busca)
Pacerier

La otra forma que sé es la respuesta de Luke, deshabilitar UAC. La búsqueda de cmd es bastante rápida, ni siquiera puede presionar Ctrl + Shift + Enter antes de encontrarlo.
Dracs

Lo hago todo el tiempo en las computadoras de los clientes. Encuentra CMD bastante rápido
Canadian Luke

¿Esto lo cargará como administrador?
barlop

@barlop Sí, esa tecla de acceso rápido (Ctrl + Shift + Enter) iniciará el programa resaltado en el menú Inicio como administrador.
Dracs

12

Para ejecutar automáticamente CMDcomo administrador cada vez que simplemente se hace clic (sin tener que hacer clic 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

    • Si no hay una Layerscarpeta , tendrá que crear una y nombrarla:
      haga clic con el botón derecho en la AppCompatFlagscarpeta, seleccione NewKey
  2. Haga clic derecho Layers, seleccione NewString Value. Establezca el Nombre de su nuevo valor de cadena en la ruta completa al CMD.EXEsímbolo del sistema ( C:\Windows\System32\cmd.exe)

  3. Haga doble clic en el nuevo valor de cadena para modificarlo y configure los "Datos del valor" en RUNASADMIN.

Tenía la misma molestia, y esto funcionó para mí.


11

Si desea que CMD.exe se ejecute siempre como administrador, simplemente agregue el siguiente código de registro a su 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"

2
Esto funcionó para mí en Windows 8.1. Ahora solo presiono Windows-R, cmd, Enter. También funciona para abrir una ventana de comandos desde el Explorador de archivos a través de Shift-RightClick> Abrir ventana de comandos aquí.
Troy Gizzi

1
Si esto funciona, esta es la respuesta correcta, a pesar de la versión más larga actualmente aceptada.
Xodarap777

Esto también funciona para Windows 10. Ponga el contenido en el bloc de notas, guárdelo con una extensión .reg y ejecútelo
Chris Halcrow

No funciono para mi. La parte HKLM ni siquiera se registró, por alguna razón. Debate si esto aún funciona: superuser.com/questions/961573/… , con alternativas.
Ray Woodcock

4

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

Antes, cuando salió por primera vez de Vista, Microsoft salió con un " elevar " powertoy que era bastante útil y no el trabajo y aún así, yo creo (no se han probado) funciona para Windows 7. caída en su entorno de ruta y usted podría funcionar "elevar iisreset" desde un símbolo del sistema normal (o incluso "elevar cmd" desde el inicio / ejecución o crear un acceso directo)


Aquí hay un enlace directo a la descarga.
ashleedawg

4

La forma más fácil de evitar todo el dolor de UAC, etc. es configurar una entrada de Programa de tareas para ejecutar cmd.exe utilizando los privilegios más altos. No cree un evento Trigger para él y asegúrese de que la casilla de verificación Permitir que la tarea se ejecute bajo demanda esté seleccionada en la pestaña Configuración. También en la pestaña Configuración, asegúrese de que el menú desplegable "Si la tarea ya se está ejecutando, entonces se aplica la siguiente regla" está configurado en No iniciar una nueva instancia.

Luego cree un acceso directo a esto en su escritorio y ejecútelo desde allí, o mediante una tecla de acceso directo o ancle el acceso directo a la barra de tareas.

Lo hice en mi sistema Windows 7 y funciona perfectamente.


1
Vaya, olvidé especificar una cosa importante. Aquí está la ruta de destino para el acceso directo a la tarea. C: \ Windows \ System32 \ schtasks.exe / run / TN "símbolo del sistema sin UAC". El texto dentro de las comillas es el nombre que le dé a la Tarea cuando la crea.
Peter Wills

no incluya su identificación de correo electrónico en sus respuestas
BlueBerry - Vignesh4303

2

Simplemente copie y pegue cmd.exe y renómbrelo como "cmda.exe" en la carpeta \ system32 \ (337 KB ni siquiera es un gran problema ...). La opción "ejecutar como administrador" en las propiedades de cmda.exe ya no estará atenuada y puede configurarla para que siempre se ejecute como administrador. Ahora tendrá dos mensajes de comando: el primero es regular, el segundo tiene un (a) privilegio dmin. ¡Es tan fácil escribir "cmda" en la Winbarra de búsqueda como lo hace con "cmd"!

Para el cmd en el menú contextual con privilegio de administrador, asegúrese de que ya tiene cmda.exe en su lugar, agréguelo al nuevo archivo .reg y ejecútelo

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 mismas líneas en el menú contextual (shift); un símbolo del sistema no elevado y otro con "(Administrador)" agregado.

Eso es...


1

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


1

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

Windows Registry Editor Version 5.00

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

Pegue eso en el bloc de notas o algo y guárdelo como archivo .reg. Nota: Esto hace que el símbolo del sistema se ejecute como administrador para todos los usuarios. Para ejecutar siempre como administrador solo en su usuario, simplemente cambie HKEY_LOCAL_MACHINE a HKEY_CURRENT_USER


1

Todo gracias a Jesse Brohinsky

Una versión más mejorada. Esto también incluye el directorio de fondo que también le permite abrir cmd desde el interior de la carpeta. También por el bien de esto, puede abrir el símbolo del sistema como no administrador.

También puede deshabilitar AdminApprovalMode. De esta forma, no necesita ejecutar como administrador cuando es administrador. 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\""

0

La única otra forma, aparte de lo que Dracs mencionó, es deshabilitar UAC completamente


0

Lo siguiente funciona para mi

@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"
:--------------------------------------

obtendrá el mismo aviso de uac que confirma a runas admin .. lo encontré hace algún tiempo @ stackexchange

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.