Script de creación de nuevos usuarios con buzones de correo en Exchange 2010

22/04/2013

Una de las funcionalidades que hace más hincapié Exchange 2010 es PowerShell. PowerShell es una consola de comandos muy potente que permite administrar la gran mayoría de los softwares de Microsoft: Exchange, Sharepoint, SQL Server, Windows Server…

La gran potencia de PowerShell reside en que podemos automatizar gran parte de las tareas. Por ejemplo, imaginemos que todos los años o meses tenemos que crear 100 buzones de correos nuevos en Exchange. Sino tuviésemos PowerShell, entonces tendríamos que crear un usuario cada vez y necesitaríamos una persona dedicado a ello un par de días. Con PowerShell es tarea fácil y rápida.

Este  Script de ejemplo, lee 4 usuarios de un fichero csv y crea automáticamente los usuarios y buzones de correo.

Inicialmente tenemos un fichero denominado DemoUsers.csv que contiene un listado de 4 usuarios. Dicho listado se puede generar fácilmente con Excel guardándolo como fichero delimitado con comas con extensión csv. La primera fila contiene una cabecera que representa los campos que utilizará PowerShell: el nombre, apellidos, la contraseña y la unidad organizativa donde se importará el usuario. Las 4 filas restantes contienen los usuarios que serán creados.

Fichero csv que vamos a importar en Exchange

Fichero csv que vamos a importar en Exchange

Además tenemos un fichero denominado BulkUsers.ps1 que contiene el script en PowerShell para importar los usuarios. El código del script es este:

## Script para crear usuarios con buzones de correo en Exchange 2010

## Declaramos la base de datos
$db=”Mailbox Database 1″

## Definimos el dominio principal
$upndom=”Adatum.com”

## Importamos el csv en la variable $users
$users = import-csv $args[0]

## Función para convertir strings de contraseñas en strings de contraseñas seguros
function SecurePassword([string]$plainPassword)
{
     $secPassword = new-object System.Security.SecureString

     Foreach($char in $plainPassword.ToCharArray())
     {
          $secPassword.AppendChar($char)
     }

     $secPassword
}

## Creación de los buzones de correo y los usuarios
foreach ($i in $users)
{
     $sp = SecurePassword $i.password
     $upn = $i.FirstName + “@” + $upndom
     $display = $i.FirstName + ” ” + $i.LastName
     New-Mailbox -Password $sp -Database $db -displayName $display -UserPrincipalName$upn
-Name $i.FirstName
  -FirstName $i.FirstName -LastName $i.LastName
-OrganizationalUnit $i.OU
}

El script contiene varias variables en donde se asigna la base de datos donde se van a crear los buzones de correo, el dominio que tendrán las cuentas de correo y variables para formar el resto de campos.

También tiene una llamada al cmdlet  import-csv que nos permite importar un csv y tratarlo desde PowerShell.

http://technet.microsoft.com/en-us/library/hh849891.aspx

Existe una función denominada SecurePassword que sirve para crear las contraseñas. Para poder importar las contraseñas en Exchange, deben ser seguras y el csv sólo proporciona strings. Para poder cifrar las contraseñas, la función principal llama a la función System.Security.SecureString de .NET, la cuál se encargará de cifrar las contraseñas.

http://msdn.microsoft.com/es-es/library/system.security.securestring.aspx

Por último, sólo queda llamar al cmdlet New-Mailbox para crear los nuevos usuarios con sus buzones y pasarle como parámetros todas las variables declaradas previamente.

http://technet.microsoft.com/es-es/library/aa997663(v=exchg.150).aspx

Para llamar al script desde PowerShell pasándole  el fichero cvs con los usuarios, lo hacemos de esta manera:

.\BulkUsers.ps1 DemoUsers.csv

y vemos que la ejecución del script es correcta. PowerShell mostrará los usuarios importados correctamente.

Buzones de correo creados correctamente

Buzones de correo creados correctamente

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: