Está en la página 1de 5

1. Introducción.

Como todo informático que debe controlar la gestión que se realiza de los recursos
software y hardware de una empresa, siempre aborrecemos tener que repetir nuestro trabajo.
Cuando hemos logrado diseñar una configuración satisfactoria para una determinada situación,
después debemos rehacerla para otras situaciones semejantes.
En este tema pretenderemos automatizar algunos aspectos relacionados con la creación
de usuarios y grupos de usuarios, configuración de cuentas y gestión de permisos.
Dado que se trata de un curso no muy extenso, no profundizaremos mucho, pero, al
menos, quedará el camino abierto para que cada uno pueda continuar en la medida de sus
necesidades.
Vamos a atacar el problema desde dos puntos de vista diferentes.
Por un lado, haremos uso de los comandos de consola, del tipo del comando NET y
otros, creando ficheros “.bat”.
Por otro lado, intentaremos aprovechar más la potencia de la programación, haciendo
uso de la gestión de los objetos de Active Directory con Windows Script Host (WSH),
programando con VBScript.

2. Comandos NET y Ficheros BAT.
Existen muchos comandos relacionados con la gestión de usuarios que comienzan con
NET (no todos), de ahí ese agrupamiento común. La gran mayoría de estos comandos los
podemos utilizar tanto en Windows NT como en Windows 2003 Server, incluso en máquinas
independientes con Windows XP.

Naturalmente, para conseguir crear unas tareas que merezcan la pena, habrá que
colocar varios comandos en un fichero “.bat” que ejecutaremos después. Además, este fichero
podrá leer datos de un fichero de texto para facilitarnos la creación de varios usuarios de
manera desatendida.

Hay que tener en cuenta, que si los comandos se ejecutan en un equipo cliente, se
aplicarán a sus usuarios (y otros objetos) locales, a nos ser que se indique, mediante un
parámetro, el nombre del Dominio. Cuando se ejecutan en un Controlador de dominio se
aplican a los usuarios (y otros objetos) del dominio.

2.1. Comandos NET.
Algunos de los principales comandos los comentaremos a continuación, aunque se
adjunta con el tema una relación más completa.

Net User
Agrega o modifica cuentas de usuario o muestra información acerca de ellas.
net user [nombre_usuario [contraseña | *] [opciones]] [/domain]
net user nombre_usuario {contraseña | *} /add [opciones] [/domain]
net user nombre_usuario [/delete] [/domain]

net user, sin parámetros: para ver una lista de las cuentas de usuario del equipo.

nombre_usuario: nombre de la cuenta de usuario que se desea agregar, eliminar, modificar o
ver.
contraseña: asigna o cambia una contraseña para la cuenta de usuario. Si ponemos * pedirá la
contraseña en tiempo de ejecución. Los caracteres no se muestran en pantalla a medida que
se escriben.

/add: agrega una cuenta de usuario a la base de datos de cuentas de usuario.

/delete: quita una cuenta de usuario de la base de datos de cuentas de usuario.

/homedir:ruta_acceso: establece la ruta de acceso del directorio particular del usuario.aa. /expires:{fecha | never}: establece una fecha de caducidad de la cuenta de usuario o una duración ilimitada.. Los nombres de grupos que vayan precedidos por un asterisco (*). dd/mm/aa o mm. El valor predeterminado es yes (activa). Especifique un nombre de grupo para ver la lista de los usuarios correspondientes. con una contraseña obligatoria y el nombre completo del usuario: net user enriquep pswenriquep /add /passwordreq:yes /fullname:"Enrique Pérez" Para establecer /homedirreq en yes para enriquep y asignarle \\SERVIDOR\USUARIOS\\ENRIQUEP como directorio particular: net user enriquep /homedirreq:yes /homedir \\SERVIDOR\USUARIOS\ENRIQUEP Net Group Agrega. /passwordchg:{yes | no}: especifica si los usuarios pueden o no cambiar su contraseña. /profilepath[:ruta_acceso]: establece una ruta de acceso para el perfil del usuario. Ejemplos: Para mostrar una lista de todas las cuentas de usuario: net user Para ver información acerca de la cuenta juanh: net user juanh Para agregar una cuenta de usuario para Enrique Pérez. El valor predeterminado es yes. Puede tener hasta 48 caracteres. serán aquellos que incluyan usuarios y grupos. El texto debe ir entre comillas.Opciones: /active:{no | yes}: desactiva o activa la cuenta de usuario. debe ser relativa a %raíz_sistema%\SYSTEM32\REPL\IMPORT\SCRIPTS. muestra o modifica grupos globales en dominios de Windows NT/2003 Server. Este comando sólo está disponible en los dominios de Windows Server. /scriptpath:ruta_acceso: ruta del archivo de comandos de inicio de sesión. El valor predeterminado es yes. /passwordreq:{yes | no}: especifica si una cuenta de usuario debe tener una contraseña. . dependiendo de /countrycode. Dicho comentario puede tener hasta 48 caracteres. /comment:"texto": proporciona un comentario descriptivo acerca de la cuenta de usuario. Debe ser una ya existente. expandirse o eliminarse.dd. /fullname:"nombre": agrega un nombre al usuario en lugar de su nombre de usuario normal. /comment:"texto": agrega un comentario para un grupo nuevo o existente. entre comillas. net group [nombre_grupo [/comment:"texto"]] [/domain] net group nombre_grupo {/add [/comment:"texto"] | /delete} [/domain] net group nombre_grupo nombre_usuario[.] {/add | /delete} [/domain] net group.. Las fechas pueden darse en el formato mm/dd/aa. nombre_grupo: grupo que va a agregarse. sin parámetros: para mostrar el nombre de un servidor y los nombres de los grupos de dicho servidor.

net share recurso_compartido net share recurso_compartido=unidad:ruta_de_acceso [/users:número | /unlimited] [/remark:"texto"] net share recurso_compartido [/users:número | unlimited] [/remark:"texto"] net share {recurso_compartido | unidad:ruta_de_acceso} /delete net share. nombre_usuario[. net localgroup [nombre_grupo [/comment:"texto"]] [/domain] net localgroup nombre_grupo {/add [/comment:"texto"] | /delete} [/domain] net localgroup nombre_grupo nombre [. “rafar” y “jesust” al grupo “ejec”: net group ejec esterv rafar jesust /add Net Localgroup Agrega. /remark:"texto": agrega un comentario descriptivo acerca del recurso. debe escribirse la ruta completa del directorio (incluyendo la unidad) entre comillas (" ").] {/add | /delete} [/domain] Net Share Crea. /delete: deja de compartir un recurso. Los nombres de usuario se separan con un espacio en blanco. la operación se realizará en el equipo local..]: lista de uno o más usuarios que se agregarán o quitarán de un grupo." . los equipos Server realizan las operaciones en el controlador principal del dominio. /delete: para quitar un grupo o un nombre de usuario de un grupo. Si no se especifica este parámetro. Para compartir un directorio con una ruta de acceso que contiene un carácter en blanco. unidad:ruta_de_acceso: especifica la ruta de acceso absoluta del directorio que va a compartirse. /add: para agregar un grupo o un nombre de usuario a un grupo. Ejemplos: Para ver una lista de todos los grupos en el servidor local: net group Para crear un grupo llamado “ejec”: net group ejec /add Para agregar las cuentas de usuario ya existentes “esterv”. elimina o muestra recursos compartidos. La explicación de su uso es similar a la del comando Net Group. Ejemplos: Para mostrar información acerca de los recursos compartidos en el equipo: net share Para compartir el directorio C:\CARTAS de un equipo con el nombre compartido SECRETARIA e incluir un comentario: net share secretaria=c:\cartas /remark:"Para el departamento 123. sin parámetros: para mostrar información de todos los recursos compartidos... muestra o modifica grupos locales./domain: realiza la operación sobre el controlador principal del dominio actual.. /users:número: establece el número máximo de usuarios que pueden tener acceso simultáneamente al recurso compartido. /unlimited: puede tener acceso simultáneamente un número ilimitado de usuarios. Esto se aplica únicamente a equipos clientes de un dominio.

El servicio Inicio de sesión de red debe estar en ejecución en el equipo para el que desee cambiar los parámetros de cuenta. perm puede ser: N (ninguno). W (escribir). Se pueden usar comodines para especificar más de un archivo en el comando.. /G usuario:perm: Concede derechos de acceso al usuario.. Ejemplos: Para modificar los permisos NTFS de la carpeta D:\ALUMNOS.Para dejar de compartir el directorio CARTAS: net share secretaria /delete Net Use Conecta (o desconecta) un equipo a un recurso compartido o muestra información acerca de las conexiones del equipo. dando permiso de cambio al grupo de alumnos. W (escribir).. dejando unos nuevos. perm puede ser: R (leer). net use [nombre_dispositivo] [\\nombre_equipo\recurso_compartido [\volumen]] [contraseña | *]] [/user:[nombre_dominio\]nombre_usuario] [[/delete] | [/persistent:{yes | no}]] net use nombre_dispositivo [/home[contraseña | *]] [/delete:{yes | no}] net use [/persistent:{yes | no}] Ejemplos: Para asignar la unidad de disco E: al directorio compartido CARTAS del servidor FINANCIERO: net use e: \\financiero\cartas Para asignar la unidad de disco H: al directorio particular del usuario mario: net use h: \\contabilidad\usuarios /home /user:mario Para desconectarse del directorio \\FINANCIERO\NOTAS: net use f: \\financiero\notas /delete Net Accounts Actualiza la base de datos de cuentas de usuario y modifica los requisitos de contraseña e inicio de sesión para todas las cuentas.. /C: Continúa cambiando ACLs. C (cambiar) o (F) (control total) /R usuario: suspende los derechos del usuario (sólo con /E). /T: Cambia las ACLs de los archivos especificados en el directorio actual y en todos los subdirectorios. /E: Modifica la ACL en vez de remplazarla. C (cambiar) o F (control total) /D usuario: deniega acceso al usuario especificado. Se puede especificar más de un usuario en el comando. net accounts [/forcelogoff:{minutos | no}] [/minpwlen:longitud] [/maxpwage:{días | nlimited}] [/minpwage:días] [/uniquepw:número] [/domain] net accounts [/sync] [/domain] CACLS Muestra o modifica las listas de control de acceso (ACL) de archivos.]] [/D usuario [. omitiendo errores. /P usuario:perm: sustituye los derechos de acceso del usuario.. También controla las conexiones de red persistentes..]] [/P usuario:perm [. CACLS archivo [/T] [/E] [/C] [/G usuario:perm] [/R usuario [. control total al Administrador y quitando todos los permisos al grupo Todos: cacls D:\ALUMNOS /e /g Alumnos:C Administrador:F /r TODOS . R (leer).]] archivo: Muestra sus ACLs.

txt (profesor y asignatura) pjose 123_jose ppedro FP pluis 123_luis pjose RAL ppedro 123_pedro pluis SIMM Los datos del primero los recibe bat_prof. Los alumnos no se crean hasta que la matrícula sea definitiva. Los datos se incluirán en dos ficheros de texto: Profesores. por lo que se creará después (como práctica) un proceso para ellos. Desde uno se hacen llamadas a los otros dos.BAT rem Crea un usuario por cada profesor y lo agrega al grupo de profesores net user %1 %2 /add net group profesores %1 /add Los datos del segundo los recibe bat_asig. Se pretende automatizar la organización de los accesos a un servidor de aula.BAT: @ECHO OFF rem Fichero: CURSO.2. A continuación. El fichero bat principal es CURSO.txt) do call bat_asig %%i %%j ECHO --.txt sólo contiene una “s”. En otros casos no es necesario. Con los ficheros bat aprovechamos la simplicidad de los comandos de consola y del paso de parámetros.BAT rem Crea una carpeta para cada asignatura y añade permisos totales rem para el profesor de dicha asignatura. para ello.txt rem Lee el fichero de profesores y llama al BAT de profesores ECHO Procesando profesores. una para cada asignatura.2" %%i in (profesores.2" %%i in (asignaturas.. Tiene en cuenta los permisos rem que se heredan y modifica a sólo lectura los de los profesores (grupo) md C:\CURSO\%2 CACLS C:\CURSO\%2 /e /g %1:F /p profesores:R . Se asignaran permisos totales al Administrador y a cada profesor sobre su asignatura..Trabajo finalizado --- Pause El fichero resp..BAT rem Crea el grupo profesores y la carpeta del curso rem Comparte la carpeta rem Asigna permisos totales al Administrador y profesores. quitando los que hubiese net group profesores /add md C:\CURSO net share CURSO=C:\CURSO CACLS C:\CURSO /g Administrador:F profesores:F < resp. for /f "tokens=1. Este modificador hace que se mantengan los permisos previos de la carpeta. solicita confirmación. Se ha decidido crear una carpeta (C:\CURSO) y dentro de ella. for /f "tokens=1.2.txt (usuario y contraseña) Asignaturas. Ficheros BAT. al no ponerlo se quitan los permisos heredados y..bat: @ECHO OFF rem Fichero: BAT_ASIG. mostraremos un ejemplo en el que es necesario el uso de tres ficheros bat.bat: @ECHO OFF rem Fichero: BAT_PROF. Se necesita como respuesta de esa orden al no poner el /e.txt) do call bat_prof %%i %%j rem Lee el fichero de asignaturas y llama al BAT de asignaturas ECHO Procesando asignaturas. y la posibilidad de leer ficheros con la ayuda de la orden FOR.