Creación y Modificación de Usuarios de Active Directory con PowerShell

Embed Size (px)

Citation preview

Creacin y Modificacin de Usuarios de Active Directory con PowerShell (BulkUsers)Hoy les dejo un articulo que realic exclusivamente para el Grupo Latinoamericano de Usuarios de Active Directory (GLAD). As es, acaba de nacer una nueva comunidad de usuarios, en este caso de Active Directory, de la mano de reconocidos MVPs de Latinoamerica. Entre ellos se encuentran Oscar Soto, Gonzalo Balladares, Carlos Dinapoli, Jorge Diaz entre otros colaboradores. El sitio web para que lo visiten es www.msglad.org donde podrn inscribirse a una lista de distribucin para realizar consultas y debatir sobre AD. Si quieren conocer un poco mas sobre que es GLAD, pueden ver ste link de Microsoft TechNet:http://www.microsoft.com/latam/technet/articulos/tn/2008/jun08-16.mspx Saludos, Alejandro.

Creacin y Modificacin de Usuarios de Active Directory con PowerShell (Bulk-Users)Introduccin En este documento utilizaremos la nueva consola de comandos de Windows denominada PowerShell para crear y modificar usuarios en el Active Directory. Desde ella, podremos administrar desde un usuario hasta el nmero que necesiten. Existen muchos escenarios en los cuales debemos crear una gran cantidad de usuarios (nuevo dominio, nuevos empleados, etc), como as tambin podramos necesitar modificar varios datos de usuarios ya existentes (modificacin de telfono, puesto, direccin, etc). En el ejemplo de sta gua crearemos 13 usuarios de Active Directory y luego modificaremos ciertos datos para poder ejemplificar el script de modificacin. Por ltimo, activaremos el Mailbox de cada usuario en Microsoft Exchange 2007 SP1, por medio de PowerShell o bien por medio de la GUI. Escenario Nuestro escenario es muy simple, el cual consta de un servidor que es nuestro controlador de dominio principal, es DNS Server y posee Microsoft Exchange Server 2007 SP1 instalado. En nuestro caso tenemos instalado todo en un solo servidor debido a cuestiones prcticas de la gua. Recuerden que no es recomendable instalar el servidor de correo en el mismo servidor que es controlador de nuestro dominio.

Requisitos Nuestro controlador de dominio posee Microsoft Windows Server 2003 Standard Edition con Service Pack 2 y la actualizacin de R2 instalada, siendo sta ltima no necesaria. Adicionalmente debemos tener las siguientes aplicaciones instaladas: Powershell 1.0 http://www.microsoft.com/windowsserver2003/technologies/management/powershell/d ownload.mspx Microsoft Core XML Services (MSXML) 6.0 http://www.microsoft.com/downloads/details.aspx?FamilyID=993c0bcf-3bcf-4009-be2127e85e1857b1&displaylang=en PowerShell Commands for Active Directory (ActiveRoles Management Shell) by Quest Software http://www.quest.com/powershell/activeroles-server.aspx PowerShell Commands for Active Directory es un agregado para Microsoft PowerShell realizado por la firma Quest Software, el cual es gratuito y agrega comandos de PowerShell para administrar objetos de nuestro Active Directory.

Creando Bulk-Users en Active Directory con PowerShellLista de Usuarios Una vez que dispongamos de nuestro servidor (Controlador de Dominio) instalado, procederemos a utilizar PowerShell para crear Usuarios de Active Directory a partir de una lista de usuarios, que en principio podramos tener en Microsoft Excel pero que en definitiva debemos tenerla en un archivo CSV.

Figura 1. Lista completa de usuarios con datos adicionales En la Figura 1 tenemos una lista completa de usuario con todos sus datos. En ella tenemos: nombre, apellido, nombre a mostrar, nombre de usuario, telfono, area de trabajo, cargo laboral, empresa, direccin postal de trabajo, cdigo postal y ciudad y password. Una vez completada toda la lista la debemos guardar como CSV (archivo delimitado por coma), el cual utilizaremos en nuestro script de PowerShell. Conociendo los cmdlets de Quest Software para PowerShell Para crear usuarios debemos utilizar el cmdlet New-QADuser. Sintaxis La sintaxis que utilizaremos en el script de PowerShell para crear los usuarios es la siguiente:

New-QADUser [-Name] -ParentContainer [-City ] [-Company ] [-Department ] [-Fax ] [-FirstName ] [-HomePhone ]

[-Initials ] [-LastName ] [-Manager] [-MobilePhone ] [-Notes ] [-Office ] [-Pager ] [-PhoneNumber ] [-PostalCode ] [-PostOfficeBox ] [-SamAccountName ] [-StateOrProvince ] [-StreetAddress ] [-Title ] [-UserPrincipalName ] [-WebPage ] [-UserPassword ] [-ObjectAttributes ] [-Description ] [-DisplayName ] [-ExcludedProperties ] [-IncludedProperties ] [-DeserializeValues] [-UseDefaultExcludedProperties] [-UseDefaultExcludedPropertiesExcept ] [-Proxy] [-Service ] [-ConnectionAccount ] [-ConnectionPassword ] [-Credential ] [-Connection ] [-UseGlobalCatalog]A continuacin se listan los atributos/sintaxis posibles a usar con el cmdlet para modificar los atributos de los usuarios.

Atributo l company description department displayName facsimileTelephoneNumber givenName homePhone initials

Sintaxis -City -Company -Description -Department -DisplayName -Fax -FirstName -HomePhone -Initials

sn manager mobile info physicalDeliveryOfficeName pager Parametro para setear la clave del usuario telephoneNumber postalCode postOfficeBox samAccountName st streetAddress title userPrincipalName wWWHomePageCreando la Unidad Organizacional

-LastName -Manager -MobilePhone -Notes -Office -Pager -UserPassword -Phone -PostalCode -PostOfficeBox -SamAccountName -StateOrProvince -StreetAddress -Title -UserPrincipalName -WebPage

El siguiente paso comprende en crear una nueva Unidad Organizacional (OU) en nuestro dominio al cual denominaremos UsuariosNuevos, tal como podemos ver en la Figura 2.

Figura 2. Aqu es donde estarn los nuevos usuarios que crearemos con PowerShell

Armando el script de creacin de usuarios Ahora solo nos queda por crear el script final acorde a nuestra lista de usuarios. Para ello, primero analizaremos el script y luego lo ejecutaremos.

Import-CSV c:\users.csv | ForEach-Object { New-QADUser -Name $_.display -SamAccountName $_.SamAccountName -UserPrincipalName $_.user1 -FirstName $_.first -LastName $_.last -DisplayName $_.display -Phone $_.phone -Department $_.departamento -Title $_.Title -Company $_.company -Streetaddress $_.street PostalCode $_.zip -City $_.city -StateOrProvince $_.state -UserPassword $_.password ParentContainer mazzite.com/UsuariosNuevos }En este script utilizaremos el cmdlet Import-CSV para importar la lista de nuestros usuarios, la cual habamos creado anteriormente, que tomar de la ubicacin que le indiquemos. Luego por cada objeto de la lista se ejecutara el cmdlet New-QADUser seguido de los parmetros con sus variables correspondientes. El cdigo resaltado en verde son los nombres que le hemos dado a cada columna de datos en nuestra lista de usuarios. Por ltimo, el dato resaltado en rojo, es la OU en donde se crearan los nuevos usuarios. Cabe destacar que estamos utilizando solo algunos de los parmetros para modificar atributos. Si quisiramos agregar algn otro dato, solo es cuestin de agregar la sintaxis segn la tabla vista anteriormente y agregar la columna en nuestra lista de usuarios.

Figura 3. Aqu vemos el nuestro script ejecutado desde la Quest Managemente Shell

Figura 4. Como resultado vemos que se han creado los usuarios correspondientes. Como hemos visto con ste script, crear grandes cantidades de usuarios toma tan solo pocos minutos. Lo ms importante es tener la lista de usuarios completa y con todos los datos actualizados, aunque esto no sera un problema ya que existe otro cmdlet que nos permitir realizar cambios en los atributos de cada usuario de una forma bastante similar a la que hemos utilizado para crear usuarios. Crear Cuentas de E-Mail desde PowerShell Como opcional, veremos cmo crear en forma muy sencilla una cuenta de e-mail por cada uno de los usuarios que hemos creado anteriormente.

Figura 5. Management Console de Microsoft Exchange Server 2007. Tan solo vemos dos usuarios con cuenta de e-mail. Para crear las cuentas de e-mail a cada usuario tan solo debemos correr el siguiente script luego de haber creado los usuarios:

Get-User OrganizationalUnit MAZZITE.COM/UsuariosNuevos | EnableMailbox -Database SRV1\Mailbox Database

Es importante aclarar que el script para crear las cuentas de e-mail lo debemos ejecutar desde la consola de PoweShell de Microsoft Exchange Server 2007. Una vez que ejecutemos el script de PowerShell obtendremos algo similar como la Figura 6.

Figura 6. Ahora los usuarios poseen cuenta de e-mail en nuestra empresa. Si entramos nuevamente a la consola grafica de administracin de Microsoft Exchange Server 2007 veremos que ahora vemos mas de dos cuentas de e-mail. Ahora se suman todos los usuarios que hay en la OU UsuariosNuevos.

Figura 7. Management Console de Microsoft Exchange Server 2007. Con tan solo un script hemos creado las cuentas de e-mail de todos los usuarios de una determinada OU. Es importante aclarar que Microsoft Exchange Server 2007 permite crear cuentas de email para usuarios existentes con muy pocos pasos, utilizando la seleccin mltiple a travs de la consola grfica desde Service Pack 1 de Exchange 2007. Sin Service Pack 1, solo hubiera sido posible a travs de la GUI realizando la creacin usuario por usuario.

Modificacin de atributos en Active Directory con PowerShell (Bulk-Users)

Anteriormente hemos visto como crear usuarios con todos sus datos en nuestro Active Directory. Ahora veremos cmo podemos modificar atributos para grandes cantidades de usuarios en muy pocos pasos. Modificando la lista de Usuarios Existen muchos casos en el cual debamos modificar un mismo dato para todos los usuarios o bien para cierta cantidad de ellos. En nuestro caso veremos cmo agregar un dato y modificar otro dos datos para todos los usuarios que hemos creado. Este caso, ejemplifica la modificacin de la direccin y cdigo postal, ya que la empresa se ha mudado de oficina y se ha agrega una descripcin a cada uno de los usuarios.

Figura 8. En nuestra lista de usuarios debemos modificar los datos necesarios y agregar otra columna con los nuevos datos. Tal como vemos en la Figura 8, hemos modificado la direccin de cada usuario, el cdigo postal y al final hemos agregado la columna de descripcin. Una vez finalizada la modificacin volvemos a guardar el archivo como CSV. Armando el script de modificacin de Usuarios

Ahora tan solo debemos crear y ejecutar el script de PowerShell para modificar los atributos de los usuarios en nuestro Active Directory.Import-CSV c:\users.csv | ForEach-Object { Set-QADUser -Identity $_.SamAccountName -Streetaddress $_.street -PostalCode $_.zip -description $_.descripcion }

Una vez ejecutado el script, veremos como resultado algo similar como vemos en las siguientes Figuras:

Figura 9. Aqu vemos el script en accin.

Figura 10. Active Directory Users and Computers: La descripcin ha sido agregada a cada usuario

Figura 11. La direccin y el cdigo postal han sido modificados. Resumen

A lo largo de sta gua hemos visto el potencial de PowerShell para la administracin de Active Directory y Microsoft Exchange Server 2007. Existen una gran cantidad de parmetros y opciones que en esta gua no hemos visto, por lo cual les recomiendo que revisen toda la documentacin de Microsoft PowerShell y de Quest Software para que puedan adaptar y utilizar sta fascinante herramienta que nos permitir automatizar gran parte de nuestro trabajo.