En este artículo vamos a crear un usuario mediante Windows Powershell y para ello tendremos que seguir una serie de pasos que resumo a continuación:
1-. Conectar al contenedor, es decir a la OU donde crearemos el usuario (objeto).
2-. Ejecutar el comando «Create» del contenedor que hemos creado en el paso 1.
3-. Rellenar el objeto con los atributos que necesitemos utilizando el método «Put«.
4-. Hacer que se ejecuten los cambios en el Directory Activo con el método «SetInfo()» del objeto.
El usuario que vamos a crear será «Alberto Gutierrez» y lo crearemos en la OU «gente».
Ahora vamos a ir realizando cada uno de los pasos que he definido al comienzo.
1-. Conectar con la OU «gente».
Para ello, guardaremos la conexión en una variable que en este caso llamaremos: $objOU.
$objOU=[ADSI]»LDAP://OU=gente,DC=aic,DC=local»
Del comando anterior entendemos que Windows Powershell utiliza el tipo de adaptador «Active Directory Services Interface» (ADSI) para comunicarse con los objetos del Directorio Activo.
También utiliza una consulta LDAP para conectar con el objeto del Directorio Activo.
En cuanto al resto del comando, creo que está bastante claro.
Bien, ahora tenemos una variable ($objOU) que contiene la conexión a la OU gente, es decir, $objOU es una referencia al objeto «gente».
2-. Ejecutar el comando «Create».
Una vez que tenemos la referencia a la OU deseada, utilizaremos el comando Create del contenedor.
El comando Create requiere dos parámetros pasados como argumentos. La clase del objeto y el RDN del mismo.
Recordar que el RDN en este caso sería: «CN=Alberto Gutierrez».
Por supuesto, la clase del objeto que queremos crear es «user».
Por consiguiente, construimos el comando:
$objUser=$objOU.Create(«user»,»CN=Alberto Gutierrez»)
Ya vemos que volvemos a guardarlo en otra variable, en este caso «$objUser».
Hasta aquí, podemos observar que todavía no hemos realizado ninguna modificación en el Directorio Activo porque por el momento estamos guardando los comandos o consultas en variables.
Siguiente paso…
3-. Rellenar el objeto con el método Put.
Ya sabremos que hay atributos que son obligatorios a la hora de crear un objeto de usuario. Bien, pues si no lo sabemos os lo digo yo ahora. El atributo requerido es el «pre-Windows 2000 logon name».
El nombre LDAP para este atributo es: «sAMAccoutName». Quedaros bien con el porque lo tendremos que utilizar siempre que vayamos a crear usuarios mediante Powershell.
A parte de éste atributo requerido, existen muchos otros, algunos de ellos son:
userPrincipalName
displayName
givenName
sn
description
company
department
title
Ya os digo que hay muchos mas y si os interesan podéis indagar un poco en la ayuda o documentación de Windows Server 2008 para conocerlos.
Nosotros vamos a rellenar unas pocas propiedades.
$objUser.Put(«sAMAccountName», «agutierrez»)
$objUser.Put(«userPrincipalName», «agutierrez»)
$objUser.Put(«email», «[email protected]»)
Con esto tenemos suficiente para empezar, pero si queremos conocer todas las propiedades que podemos utilizar, lo podemos hacer desde la propiedades de un usuario del Directorio Activo. Pestaña «Attribute Editor«.
Podemos ver en la captura anterior que en la columna de la izquierda aparecen los nombres de las propiedades y en la de la derecha el valor que tienen si es que tienen.
4-. Hacer que los cambios tengan efecto.
Para hacer esto, sólo tenemos que lanzar el comando SetInfo() del objeto, como el siguiente:
$objUser.SetInfo()
Este comando no tiene ningún secreto.
5-. Resumen.
A modo de resumen, a continuación tenéis todos los comando ejecutados durante el tutorial:
$objOU=[ADSI]»LDAP://OU=gente,DC=aic,DC=local»
$objUser=$objOU.Create(«user»,»CN=Alberto Gutierrez»)
$objUser.Put(«sAMAccountName», «agutierrez»)
$objUser.Put(«userPrincipalName», «agutierrez»)
$objUser.Put(«email», «[email protected]»)
$objUser.SetInfo()
Tened en cuenta que no recibiréis ningún tipo de mensaje cuando ejecutéis estos comandos.
Eso es todo. Os animo a que probéis con algunas de las propiedades que no hemos visto aquí.
En el siguiente tutorial explicaré resumidamente como realizar un script con estos comandos para que nos sea mas sencillo y mas rápido.
Hasta la próxima.
—–
Oscar Abad
http://www.xulak.com – Consultoría informática
Programador WordPress freelance