Crear usuarios con un batch

Iniciado por juntacadaveres, 19 Abril 2019, 23:46 PM

0 Miembros y 1 Visitante están viendo este tema.

juntacadaveres

Me han mandado hacer un script de batch para crear usuarios
pero con unos matices:

-si el usuario que abre el script no es administrador
debe aparecer un echo diciendo que no tiene permisos y se cierre la consola

-si el que lo abre es el administrador y la cuenta no existe
que aparezca un echo anunciando que la operación se realizó exitosamente

-el administrador abre el script pero ya existe el usuario.
echo el usuario a crear ya existe

Bien, aquí el problema son los errorlevels
-Si un usuario es creado el valor del errorlevel es cero
-Si un usuario que no es administrador intenta crear un usuario con el script el valor del errorlevel es un dos
-Si un administrador intenta crear un usuario que ya existe mediante el script el errorlevel también me da un dos

BUENO
Sabiendo que en dos situaciones el errorlevel es de dos. ya no sé cómo seguir.. ni empezar

set /p usuario=Nombre de usuario a crear >
net user %usuario% /add && echo usuario creado || echo (el usuario ya existe | no eres administrador)


Pero yo quiero hacerlo mediante errorlevels

IF %ERRORLEVEL% EQU 2  (
ECHO NO ERES ADMINISTRADOR
)

IF %ERRORLEVEL% EQU 2  (
ECHO EL USUARIO YA EXISTE
)

pero ambos casos los valores son 2. No sé cómo seguirla. Estoy aprendiendo batch.

juntacadaveres

Hola he mejorado el script

Código ("batch") [Seleccionar]
@echo off
setlocal enabledelayedexpansion
@echo. && echo ==================== && echo creacion de usuarios && echo ==================== && echo.
set /p nombre="Nombre de usuario> "
net user %nombre% /ADD >nul (
   IF ERRORLEVEL 2 (
       echo ALGO SALIO MAL
   )

   IF NOT ERRORLEVEL 1 (
       echo EXITOSO
   )
)
   
pause>nul


Pero no sé cómo hacer el echo específico cuando sea el usuario sin permisos quien abra el batch
y el echo específico cuando el usuario a crear ya existe
además de borrar este mensaje al realizar el comando net user


====================
creacion de usuarios
====================

Nombre de usuario> lola
Error de sistema 5.

Acceso denegado.

No tienes permisos o no eres administrador


EdePC

Saludos,

- Lo más simple es hacer el chequeo sobre los permisos de administrador mediante otro comando, por ejemplo se usa bastante net session >Nul 2>&1

- Puedes ver los detalles en este enlace:
https://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights

juntacadaveres

#3
Cita de: EdePC en 20 Abril 2019, 01:58 AM
Saludos,

- Lo más simple es hacer el chequeo sobre los permisos de administrador mediante otro comando, por ejemplo se usa bastante net session >Nul 2>&1

- Puedes ver los detalles en este enlace:
https://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights

Hola muchas gracias
al final el script me quedó así:

Código ("dos") [Seleccionar]
@echo off
setlocal enabledelayedexpansion
echo ======================
echo  Creacion de usuarios
echo ======================
echo.
rem COMPROBAR SI EL USUARIO QUE ABRE EL FICHERO ES ADMINISTRADOR
net session >NUL 2>NUL
   IF NOT ERRORLEVEL 1 (
       GOTO CREACION
   )
    IF ERRORLEVEL 1 (
        ECHO NO TIENE PERMISOS PARA USAR ESTE FICHERO
        PAUSE>NUL
        GOTO SALIDA
    )

:CREACION
SET /P NOMBRE="NOMBRE DE USUARIO A SER CREADO > "
NET USER %NOMBRE% /ADD >NUL 2>NUL
   IF NOT ERRORLEVEL 1 (
       ECHO EL USUARIO %NOMBRE% HA SIDO CREADO EXITOSAMENTE
       GOTO SALIDA
   )
   IF ERRORLEVEL 1 (
       ECHO EL USUARIO %NOMBRE% YA EXISTE
       PAUSE>NUL
       CLS
       GOTO CREACION
   )

:SALIDA
FOR /L %%A IN (3,-1,1) DO (
   echo EL PROGRAMA SE CERRA EN %%A SEGUNDOS... && TIMEOUT 1 /NOBREAK >NUL
)
EXIT