martes, 24 de julio de 2012

Creacion masiva buzones correo con powershell para Exchange 2007

Mediante estas notas, pretendemos explicar como dar de alta cuentas en nuestro servidor de correo Exchange 2007 y a su vez en el directorio activo de forma masiva.

Para ello lo primero que tendremos que hacer es crear con nuestro bloc de notas (notepad) un fichero con extensión csv.

Que tenga este formato.



Como podemos ver la primera línea ha de contener el nombre de los campos separados por comas y sin espacios entre ellos. Estos campos son los que luego utilizaremos en nuestro segundo fichero,que será ejecutado desde el Powershell de nuestro servidor Exchange.
El primer campo es el nombre del usuario

El segundo campo es el alias que no debe de contener espacios en blanco y que luego será el que utilizará para formar parte de la dirección de correo electrónico.

El tercer campo es la dirección de correo completa.

El cuarto campo es el nombre del usuario y será lo que rellene en nuestro directorio activo en el campo nombre

Y el quinto campo es el apellido, y lo mismo será lo que rellene en nuestro directorio activo en el campo apellidos, podemos poner si queremos los dos apellidos.

Una vez tengamos así nuestro fichero con las n cuentas que deseamos crear. Procedemos a guardarlo siempre con extensión csv (¡Ojo! A esto es muy importante, pues de lo contrario no funcionara el siguiente paso.

Después de haber guardado nuestro archivo csv.

Volvemos a abrir nuestro bloc de notas (notepad), para guardar nuestro script de powershell, para ello tendremos que guardarlo con extensión ps1.

Aquí podemos ver el archivo con lo que tenemos que poner.



Bien como en nuestra imagen no podemos ver toda la línea de comandos que tenemos que poner pasamos a incluirlos aquí y luego iremos explicando que es cada uno de ellos.

New-Mailbox -Name $_.Nombre1 -Alias $_.Alias1 -OrganizationalUnit 'dc01.local/Spain' -UserPrincipalName $_.Upn1 -SamAccountName $_.Alias1 -FirstName $_.Firstname1 -Initial '' -LastName $_.Lastname1 -Password $Password -ResetPasswordOnNextLogon $false -Database 'dc01\First Storage Group\Mailbox Database'


Lo primero que vemos en nuestro fichero es que nos pedirá un password que será el password que se pondrá a todas y cada una de las cuentas que creemos.

Lo guarda en formato seguro.

Después lo que hace es una llamada al Cmlet Import-csv y le decimos como se llama nuestro fichero csv que hemos creado antes.

Después lee línea a línea dicho fichero y va danto de alta el buzón. Como vemos donde ponemos $_.Nombre1 quiere decir que tomara del fichero csv lo que hay en ese campo y así sucesivamente.

Como vemos hay campos que no están en el fichero csv pero que serán comunes para todas las cuentas, por lo cual lo añadimos entre ‘ ‘ como por ejemplo la unidad organizativa en la cual vamos a dejar las cuentas, en el ejemplo (-OrganizationalUnit ‘dc01.local/spain’ )

Como vemos en el parámetro password, le vamos a pasar el valor de la variable que nos pidió al principio. $password

Después tenemos la opción de decirle que forcemos al usuario a que cambie la contraseña la próxima vez que entre o no. Es una cosa que tenemos que tener en cuenta pues si el usuario solo entrará por via (owa) tendremos que poner el valor $false, en caso de que pueda hacer login en nuestro controlador de dominio podríamos dejarlo como $true, para que hiciera el cambio de contraseña.

El parámetro es -ResetPasswordOnNextLogon $false (siendo $false para que no la cambie y $true para que la cambie)

Y por ultimo hay que decirle en que base de datos de nuestro Exchange queremos que cree el buzón. Para ello ponemos el parámetro –Database y entre comillas el nombre de nuestra base de datos Exchange

-Database 'dc01\First Storage Group\Mailbox Database'

Guardamos nuestro archivo en este caso con las extensión .ps1 no olvidarnos y ya tendremos nuestro script que podemos ejecutar en nuestro powershell del servidor Exchange.

Veamos un ejemplo.

Como podemos ver no tenemos creados los buzones de los dos usuarios que tenemos dados de alta en nuestro fichero csv.




Y tampoco están en nuestro directorio activo.


Bien, ahora iniciamos el Powershell de Exchange

Para ello vamos a Start à All Programs à Microsoft Exchange Server 2007 à Exchange Management Shell


Nos aparece una pantalla como la del sistema operativo pero con PS delante.
Nos posicionamos en el directorio raíz que en nuestro caso es en donde tenemos tanto el fichero .csv como el fichero con nuestro script a ejecutar.

Y ejecutamos el script en nuestro caso lo hemos llamado au.ps1 por lo cual tendremos que poner .\au.ps1
Al ejecutarlo vemos que lo primero que hace es pedirnos una clave que será la que ponga a todas las cuentas, que vamos a crear
Si todo va bien, nos tiene que salir una pantalla como esta en la cual nos da el resumen de lo que ha realizado.
Y ahora podemos ver en nuestro Directorio Activo como están creadas las cuentas. Tal y como podemos ver en la siguiente imagen que hemos resaltado
Y ahora podemos hacer lo propio en nuestra consola de Exchange para ver que realmente se han creado los buzones.
Como podemos imaginar este proceso es útil y cómodo cuando tenemos que crear muchas cuentas, para un par de ellas no nos merece la pena, pero para demostrar el procedimiento es mas que suficiente.
Espero que os sirva.
Saludos.

No hay comentarios:

Publicar un comentario