Saltar al contenido

¿Cómo detectar si CMD se está ejecutando como administrador / tiene privilegios elevados?

Solución:

Este truco solo requiere un comando: escriba net session en el símbolo del sistema.

Si usted es NO es un administrador, recibe un mensaje de acceso denegado.

System error 5 has occurred.

Access is denied.

Si tu Es un administrador, recibe un mensaje diferente, siendo el más común:

There are no entries in the list.

Desde MS Technet:

Utilizada sin parámetros, net session muestra información sobre todas las sesiones con la computadora local.

APÉNDICE: Para Windows 8 esto no funcionará; vea esta excelente respuesta en su lugar.


Encontré esta solución aquí: http://www.robvanderwoude.com/clevertricks.php

AT > NUL
IF %ERRORLEVEL% EQU 0 (
    ECHO you are Administrator
) ELSE (
    ECHO you are NOT Administrator. Exiting...
    PING 127.0.0.1 > NUL 2>&1
    EXIT /B 1
)

Suponiendo que eso no funcione y ya que estamos hablando de Win7, podría usar lo siguiente en Powershell si es adecuado:

$principal = new-object System.Security.Principal.WindowsPrincipal([System.Security.Principal.WindowsIdentity]::GetCurrent())
$principal.IsInRole([System.Security.Principal.WindowsBuiltInRole]::Administrator)

Si no es así (y probablemente no, ya que propuso explícitamente archivos por lotes), entonces podría escribir lo anterior en .NET y devolver un código de salida de un exe basado en el resultado para que lo use su archivo por lotes.

Me gusta la sugerencia de Rushyo de usar AT, pero esta es otra opción:

whoami /groups | findstr /b BUILTINAdministrators | findstr /c:"Enabled group" && goto :isadministrator

Este enfoque también le permitiría distinguir entre un administrador no administrador y un administrador no elevado si así lo desea. Los administradores no elevados todavía tienen BUILTIN Administrators en la lista de grupos, pero no está habilitado.

Sin embargo, esto no funcionará en algunos sistemas de idiomas distintos del inglés. En su lugar, intente

whoami /groups | findstr /c:" S-1-5-32-544 " | findstr /c:" Enabled group" && goto :isadministrator

(Esto debería funcionar en Windows 7, pero no estoy seguro de las versiones anteriores).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *