Archivo

Archivo para jueves, 15 de mayo de 2014

PowerShell: Creación de contactos en Exchange Online desde un CSV

jueves, 15 de mayo de 2014 Sin comentarios

Hola,

Si ayer os publicaba qué script usé para dar de alta a usuarios en Office 365, hoy os pongo otro script para la generación de Contactos.

Usamos, como en el caso anterior, un formato concreto de los datos a cargar desde el CSV, y es

Name Nombre del usuario (campo invisible, por cierto)
DisplayName Nombre para mostrar en Exchange Online
ExternalEmailAddress Dirección de correo del contacto
FirstName Nombre
LastName Apellido
Alias Alias del usuario, campo obligatorio.

 

El código no puede ser más sencillo, y es éste:

# Solicitud de credenciales para conectar a Office 365

$cred = Get-Credential

 

#Creación de sesión para conectar a Exchange Online

$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri https://ps.outlook.com/powershell/ -Credential $Cred -Authentication Basic -AllowRedirection

 

#Importación de la sesión Exchange Online

Import-PSSession $Session

 

#Petición de parth del fichero donde están los contactos

[void] [System.Reflection.Assembly]::LoadWithPartialName(«System.Windows.Forms»)

$ofd = New-Object System.Windows.Forms.OpenFileDialog

$ofd.ShowHelp=$true

if($ofd.ShowDialog() -eq «OK») { $ofd.FileName }

$Fichero = $ofd.Filename

 

#Alta de contactos en Office 365 de modo recursivo a través del fichero CSV

Write-Host «Inicio de la carga de contactos en Office 365»

 

Import-Csv -Path $Fichero | ForEach-Object {

    New-MailContact -Name $_.Name -DisplayName $_.Name -ExternalEmailAddress $_.ExternalEmailAddress -FirstName $_.FirstName -LastName $_.LastName -Alias $_.Alias

 

}

 

 

#Fin de la carga de contactos

Write-Host «Fin de la carga de contactos en Office 365»

 

#Cerramos la sessión con Exchange Online

Remove-PSSession $Session

 

Saludos,

Marc