Saltar al contenido
Categoría: Azure
2020-03-20

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