Inicio > Exchange > Crear usuarios masivos en Exchange 2007 (Bulk create users)

Crear usuarios masivos en Exchange 2007 (Bulk create users)


Ayer estaba en el departamento de mi hermano y él estaba tratando de crear masivamente cuentas de usuario para su empresa usando Exchange 2007, pero estaba detenido ya que se encontró con los siguientes problemas:

1. Podía crear cuentas de usuario usando Exchange Management Console, pero tendría que crear una a una cada cuenta.
2. Si usaba el Exchange PowerShell, podía crear cuentas masivamente pero te encuentras con la problemática de como manejar las claves, ya que no se pueden colocar como texto plano (Exchange pide que sea un SecureString).
3. Si no usaba claves, la cuenta automáticamente queda bloqueada, por lo tanto tendría que colocar la clave de cada uno de los usuarios y desbloquearlos cada vez que creara cuentas, lo que es sumamente complejo y requiere intervencion manual.
4. El comando new-mailbox no tiene la opción de agregar la direccion de correo electronico. Esto, que parece sumamente raro, es debido a que Exchange tiene un e-mail address Policy (Exchange EAP) que define automaticamente la direccion de correo del usuario en base a la definicion del administrador. El problema aparece cuando no tienes una Policy que haga match con el usuario, o cuando quieres agregar más de una dirección de correo electrónico.

Con esto en mente, y pagando con trabajo el almuerzo que estaba preparando mi hermano :D, me dedique a buscar en internet algunas consultas para crear usuarios masivamnete  usando CSV. Pero lamentablemente no pude encontrar ninguna que hiciera todo lo que necesitaba.
Al final, tome una consulta que convertía texto plano a Secure String, y me hice un PS1 que cumpliera mis requerimientos:

 

Los requerimeintos de mi hermano para crear usuarios eran los siguientes:

Name: Nombre completo del usuario (Nombre y Apellido)
Alias: alias del usuario
FirstName: Nombres
LastName: Apellidos
UPN: Nombre de usuario compuesto por el cn (nombre comun)
Password: Clave del usuario
Emailaddress: Direccion de correo del usuario

Usando estos datos tenemos como resultado el siguiente CSV:

name,Alias,FirstName,LastName,UPN,Password,Emailaddress
"Christian Aguilera",CAguilera,”Christian”,”Aguilera”,caguilera@dominio.com,MiClave,caguilera@internet.com

Nota: Se puede modificar el CSV para que incluya más registros (como la OU) pero tambien deben modificar el archivo PS1.

Una vez con eso, simplemente ejecutas el script de la siguiente forma:

1. Abrir una EMS (Exchange Management Shell) y dirigirse al directorio donde se guardo el Script

2. Escribir: usuariosmasivos.ps1 “Archivo.csv”, por ejemplo “usuariosmasivos.ps1 cargainicial.csv” 

y listo 🙂

 

 

Este es el script, deben copiarlo a un Notepad y guardarlo como    usuariosmasivos.PS1

Pueden modificar el script para que calce con sus requerimientos de base de datos, y unidad organizativa.

_______________________________________________________Inicio______________________________________________________

## Import data from csv and store it in variable ‘data’

$data = import-csv $args[0]

## Function to convert password into a secure string

function New-SecureString([string] $plainText)
{
   $secureString = new-object System.Security.SecureString

   foreach($char in $plainText.ToCharArray())
   {
      $secureString.AppendChar($char)
   }

   $secureString
}

foreach ($i in $data)
{

$ss = new-securestring $i.password
$upn = $i.upn
New-Mailbox -name $i.name -alias $i.Alias -FirstName $i.FirstName  -LastName $i.LastName -Password $ss  -UserPrincipalName $upn  -Database "Mailbox Database" -OrganizationalUnit "OU=Users,DC=domain,DC=com" -ResetPasswordOnNextLogon:$false
}

foreach ($i in $data)
{
$Temp = Get-Mailbox -identity $i.UPN
$Temp.EmailAddresses.Add($i.Emailaddress)
Set-Mailbox -Instance $Temp -EmailAddressPolicyEnabled:$False -PrimarySmtpAddress $i.Emailaddress -WindowsEmailAddress $i.Emailaddress
}

 

_______________________________________________________Fin______________________________________________________

Categorías: Exchange
  1. Javier
    abril 28, 2009 a las 9:51 am

    No se si es el sitio adecuado. Pero no se donde preguntarlo.Intento instalar el Office Communicator Server 2007 R2 Enterprise en un Windows Server 2008 con SQL Server 2008, IIS 7 y una autoridad certificadora (todo en el mismo servidor)…. Y llega a un sitio en el que me dice que no tengo la cola de MSMQ o una cola transaccional.He ido a funciones al MSMQ, he creado un par de colas públicas y privadas transaccionales pero no consigo pasar de ese paso de la instalación.¿Puedes decirme como hacerlo?, como pasar de ahí?¿Hay algún sitio donde se diga paso a paso como se instala un OCS 2007 R2 Entreprise?.Un saludo.

  1. No trackbacks yet.

Deja un comentario