lunes, 16 de junio de 2014

Powershell Script para dar de alta mailbox de Exchange


Esta mañana tenia que crear varias cuentas de correo a partir de un listado de Excel, con usuarios en el que no sabia que usuarios estaban ya dados de alta, que usuarios tenian Mailbox y cuales eran usuarios nuevos.

Como eran un montón de usuarios me he dedicado ha hacer un script de Powershell que lea un CSV (creado a partir del Excel)  que comprueba si el usuario existe y crea el buzón con los parámetros deseados.

Lo primero es decir que el Excel tiene que tener un formato parecido a este:

Name;Alias;Username;Password
Hannibal Smith;asmith;asmith@ateam.local;password
M. A. Barracus;mabarracus;mabarracus@ateam.local;password
H. M. Murdock;murdock;murdock@ateam.local;password

Una vez tenemos el CSV con un formato parecido, el powershell script es el siguiente:


$listado = Import-Csv '.\<listado>.csv' -Delimiter ';'

$basededatos = "<base de datos>"
$unidadorganizativa = "<unidad organizativa>"
foreach ($user in $listado) {

$usuario = $user.Usernameecho "//////////////////////////////////"echo "## CREAR BUZON USUARIO $usuario ##"If (get-mailbox $user.username -ErrorACtion SilentlyContinue) {
echo "EL BUZON $usuario YA EXISTE"
}Else{
echo "El buzón de $usuario no existe" If (get-user $usuario -ErrorACtion SilentlyContinue) {
get-user -Identity $usuario echo "HABILITAR BUZON DEL USUARIO $usuario" enable-mailbox -identity $usuario -Database $basededatos -Alias $user.alias
}Else{
If (!(get-user $usuario -ErrorACtion SilentlyContinue)){ echo "CREAR USUARIO Y HABILITAR BUZON PARA $usuario" new-mailbox -UserprincipalName $usuario -Alias $user.alias -Name $user.name -Database $basededatos -OrganizationalUnit $unidadorganizativa -Password (ConvertTo-SecureString $user.Password –AsPlainText –force)}
}
}echo "\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\"
}





1 comentario: