Cómo dar de Alta Usuarios en Office 365 con PowerShell

Como muchos ya sabréis, en la plataforma de Office365 se pueden realizar las tareas de forma automática, lo que implica una simplificación y ahorro de tiempos.
En el post de hoy os voy a explicar como dar de alta usuarios en Office365 , así como su asignación de licencias con PowerShell. De esta forma, será mucho más cómodo dar de alta usuarios masivamente que si lo hiciéramos de forma manual.
A continuación, os enseño cuáles son los Dos pasos que vamos que seguir:
1.Crear un Fichero CSV
En primer lugar, crearemos un fichero CSV con el siguiente nombre “CreacionUsuarioOffice365.csv” y con estos datos (Aqui teneis la plantilla para descargar):
- DisplayName: nombre de usuario completo
- userPrincipalName: Aquí se debe poner le logín que va a tener el usuario ej.: eduardo.rodado@contoso.com
- passwordProfile: Aquí debemos poner la contraseña que va tener el usuario según
- GiveName: nombre de usuario
- Surname: apellidos del usuario
- JobTitle: nombre de trabajo
- Departament: nombre del Departamento
- UsageLocation: código de país o región de 2 caracteres
- streetAddress: calle
- state: nombre de estado
- country: nombre de país
- physicalDeliveryOfficeName
- city: nombre de la ciudad
- postalCode: Código postal
- telephoneNumber: número de teléfono de la oficina
- mail: Dirección de correo electrónico
- License: Licencia que se va a asignar
- MailNickName: alias del usuario
*Nota: Os he dejado el enlace para que os podáis descargar el fichero y solo tengáis que añadir los datos de los usuarios que deseéis dar de alta en Office365
Aquí tenéis un Ejemplo de como debería quedar el fichero de datos cumplimentado.

2. Ejecución del Script
Una vez insertados los datos en el fichero “CreacionUsuarioOffice365.csv” lo guardaremos en la carpeta de Mis Documentos.
Cuando lo tengamos guardado procedemos a la Ejecución del Script “CreacionUsuarios_V2.ps1”.
$date = Get-Date -UFormat "%Y%m%dT%H%M%S"
$DesktopUser = $env:USERNAME
$File = "C:\Users\" + $DesktopUser + "\Documents\CreacionUsuarioOffice365.csv"
$PasswordProfile= New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$CredO365AD = Get-Credential
Connect-AzureAD -Credential $CredO365AD
Connect-MsolService -Credential $CredO365AD
Function LEERUsuarios
{
$ReadF = Import-Csv -Path $File -Delimiter ";" -Encoding ASCII
foreach($user in $ReadF)
{
$user.userPrincipalName
IF(Get-AzureADUser -All $true | ? {$_.userPrincipalName -eq $user.userPrincipalName})
{
Write-Host "El usuario exite..." -ForegroundColor Yellow
Modificar
}
Else
{
Write-Host "`n`tEl usuario no existe" -ForegroundColor Green
$USer.DisplayName
$PasswordProfile.Password = $user.passwordProfile
$USer.userPrincipalName
$user.accountEnabled
$user.GiveName
$user.Surname
$user.JobTitle
$user.country
$user.city
$user.postalCode
New-AzureADUser -DisplayName $USer.DisplayName -PasswordProfile $PasswordProfile -UserPrincipalName $USer.userPrincipalName -AccountEnabled $true -GivenName $user.GiveName -Surname $user.Surname -JobTitle $user.JobTitle -Country $user.country -City $user.city -PostalCode $user.postalCode -MailNickName $user.MailNickName
}
}
}
Function Modificar
{
Write-Host "Se va a actualizar el Usuarios" -ForegroundColor DarkYellow
$GetLicense = Get-MsolUser -UserPrincipalName $USer.userPrincipalName
foreach($Licenses in $GetLicense)
{
IF($licenses.IsLicensed -eq $false)
{
Write-Host "`n`t******************" -ForegroundColor Green
$Licenses.UserPrincipalName
$licenses.IsLicensed
$user.License
Set-MsolUserLicense -UserPrincipalName $Licenses.UserPrincipalName -AddLicenses $user.License
Write-Host
}
Else
{
Write-Host "`t`t*****************************" -ForegroundColor White
$Licenses.UserPrincipalName
$licenses.IsLicensed
Write-Host "`t`t*****************************`n" -ForegroundColor White
}
IF($Licenses.UsageLocation -eq $Null)
{
Write-Host "`n`t******************" -ForegroundColor Cyan
Set-Msoluser -UserPrincipalName $USer.userPrincipalName -UsageLocation $user.country
Get-MsolUser -UserPrincipalName $USer.userPrincipalName | where {$_.UsageLocation -eq $null}
}
Else
{
Write-Host "`n`t******************" -ForegroundColor DarkMagenta
$Licenses.UsageLocation
Get-MsolUser -UserPrincipalName $USer.userPrincipalName | where {$_.UsageLocation -ne $null}
}
}
}
LEERUsuarios
Mientras el script se va ejecutando podremos ver el resultado de la consola de administración de “Usuarios Activos” de Office365.

Si quieres que ayudemos a tu negocio o empresa contacta con nosotros en info@aleson-itc.com o llámanos al +34 962 681 242

Consultor en plataformas Microsoft con más de 20 años de experiencia y con las de 15 años de experiencia en Microsoft Sharepoint