¿Supiste lo que acaba de lanzar LagriHost? Sí, como lo estabas esperando, ahora vendemos Web Hosting y Dominios. Conoce más :)


Calificación:
  • 0 voto(s) - 0 Media
  • 1
  • 2
  • 3
  • 4
  • 5
PowerShell: Alta masiva de usuarios en Office 365 desde un CSV
#1
0
Hola a todos,

No sé si trabajáis con Office 365 y os gusta PowerShell. Particularmente, no suelo usar mucho el segundo pero de vez en cuando (algún proyecto) lo requiere y, aun sabiendo que por Internet está lleno de scripts, me gusta montármelos yo mismo.

En este caso, he creado un script que ayuda a realizar la carga de usuarios desde un CSV hacia un tenant de Office 365 completamente cloud.

Los parámetros de entrada en el CSV son:

FirstName Nombre del usuario que vamos a crear
LastName Apellido del usuario
DisplayName Nombre que se mostrará en Office 365
UserPrincipalName Login name, o cómo el usuario se validará en Office 365
UsageLocation Ubicación del usuario. Importante o no podremos dar de alta correctamente al usuario.
Para España, el código es ES
Office Oficina de nuestro usuario
Department Departamento de trabajo del usuario
PhoneNumber Teléfono al que localizar a nuestro usuario
Veréis que en el código se establece un valor por defecto a la variable –Password.

Esto se hace así ya que por defecto se genera una contraseña aleatoria que tendríamos que guardar de algún modo. Si la establecemos por defecto, y por defecto caduca, el usuario pondrá la suya en el primer inicio de sesión.

Veréis que guardo en la variable $Licencias los valores de los diferentes tipos de licencias. Puede que en vuestro caso sólo tengáis un valor pero en el mío había 2 diferentes, una StandarPack y otra EnterprisePack–

El código resultante es:



# Solicitud de credenciales para conectar a Office 365
$cred = Get-Credential

# Conexión a Office 365 con las credenciales solicitadas
Connect-MsolService –Credential $cred

# Consulta del tipo de licencias. Se guardan en una variable
$Licencias = Get-MsolAccountSku

#Mostrar las licencias del cliente y separarlas para asignar según los usuarios
$option1 = $Licencias.AccountSkuID.Item(0)
$option2 = $Licencias.AccountSkuID.Item(1)

#Petición de parth del fichero donde están los usuarios
[void] [System.Reflection.Assembly]:Ojos llenos de amoroadWithPartialName(“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 usuarios en Office 365 de modo recursivo a través del fichero CSV
Write-Host “Inicio de la carga de usuarios en Office 365”

Import-Csv -Path $Fichero | ForEach-Object {
New-MsolUser -FirstName $_.FirstName -LastName $_.LastName
-UserPrincipalName $_.UserPrincipalName
-DisplayName “$($_.FirstName) $($_.LastName)“
-LicenseAssignment $option1
-UsageLocation $_.UsageLocation
-Department $_.Department
-PhoneNumber $_.PhoneNumber `
-Password P@ssw0rd

}

#Fin de la carga de usuarios
Write-Host “Fin de la carga de usuarios en Office 365”


Saludos
Si te Agrado o Sirvió El Tema Dame Reputación Lengua

Responder



Posibles temas similares...
Tema Autor Respuestas Vistas Último mensaje
  Conectar automáticamente con Lync Online siempre que se inicie Windows PowerShell Kevin Alfonso 0 271 03-11-2017, 12:08 PM
Último mensaje: Kevin Alfonso
  CREAR GRUPOS Y AGREGAR MIEMBROS DE FORMA MASIVA-ACTIVE DIRECTORY Kevin Alfonso 0 257 03-11-2017, 11:39 AM
Último mensaje: Kevin Alfonso
  Almacenar credenciales a un archivo (Powershell) Kevin Alfonso 0 184 03-11-2017, 11:27 AM
Último mensaje: Kevin Alfonso
  Muchos de los usuarios de Windows XP no van a cambiar nada aburtomarvin 9 3,191 27-01-2015, 10:32 AM
Último mensaje: Ihering



Usuarios navegando en este tema:
1 invitado(s)


Forum software by © MyBB Theme © Kevinex & iAndrew 2018