¿Cómo añadir columnas al CSV de importar usuarios en Entra ID?

Fernando Martín 20 Puntos de reputación
2024-11-07T13:33:09.4433333+00:00

Hola, estoy probando a importar usuarios que quiero invitar al Tenant y, para hacerlo de forma más ágil, lo hago a través de la opción BULK INVITE.

Descargo el CSV, y veo que no tiene columna de "Nombre", "Apellido" ni de "Compañía", que al menos son las mínimas que necesitaría.

¿Hay alguna opción de añadirlas? En la web de Microsoft, indica que no se deben añadir columnas al fichero. Esto es un inconveniente al tener que invitar a 20 personas, por ejemplo, ya que necesito estos datos también para poder identificarlos correctamente.

Gracias.

Preguntas y respuestas (Q&A) de Microsoft
Preguntas y respuestas (Q&A) de Microsoft
Use esta etiqueta para compartir sugerencias, solicitudes de características y errores con el equipo de Microsoft Q&A. El equipo de Microsoft Q&A evaluará sus comentarios periódicamente y proporcionará actualizaciones a lo largo del proceso.
392 preguntas
0 comentarios No hay comentarios
{count} votos

Respuesta aceptada
  1. Gao Chen 4,135 Puntos de reputación Proveedor de Microsoft
    2024-12-09T23:49:17.16+00:00

    Hola Fernando Martín,

    ¡Espero que hayas tenido un lindo fin de semana!

    Sobre la automatización, podrías usar alguna de las siguientes herramientas de Microsoft para llegar a automatizar este proceso:

    Azure Automation:

    • Crea una cuenta de Azure Automation.
    • Importa los scripts como runbooks.
    • Configura un schedule para ejecutar el primer script (enviar invitaciones).
    • Configura un segundo schedule para ejecutar el segundo script (actualizar atributos) periódicamente.

    Azure Logic Apps:

    • Puedes usar Azure Logic Apps para crear un flujo de trabajo que ejecute estos scripts en respuesta a eventos específicos.

    Azure Functions:

    • Usa Azure Functions para ejecutar los scripts en respuesta a eventos, como la aceptación de una invitación.

    Espero que información brindada fuera útil. Si necesitas más asistencia, estoy a tu disposición.

    Saludos,

    Gao


    Si esta respuesta resolvió tu consulta, por favor haz clic en 'Aceptar respuesta'. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.

    0 comentarios No hay comentarios

5 respuestas adicionales

Ordenar por: Muy útil
  1. Gao Chen 4,135 Puntos de reputación Proveedor de Microsoft
    2024-11-07T18:57:34.6633333+00:00

    Hola Fernando Martín,

    ¡Bienvenido(a) a Microsoft Q&A!

    Entiendo tu frustración con el proceso de invitación masiva, actualmente, el archivo CSV que descargas para la opción de BULK INVITE solo permite columnas específicas, como la dirección de correo electrónico y la URL de redirección. No se pueden añadir columnas adicionales como "Nombre", "Apellido" o "Compañía" porque el sistema ignora cualquier columna que no esté en el formato predeterminado.

    Sin embargo, hay algunas alternativas que podrías considerar:

    1. Uso de PowerShell: Si tienes acceso a PowerShell, puedes crear un archivo CSV que incluya los nombres y correos electrónicos, y luego usar un script para enviar las invitaciones. Esto te permitiría personalizar más el proceso y mantener un registro de los nombres, en caso de que lo necesites, puedes seguir la siguiente documentación: Uso de PowerShell para invitar en bloque a usuarios de colaboración de Microsoft Entra B2B
    2. Gestión de usuarios después de la invitación: Una vez que los usuarios sean invitados y acepten la invitación, puedes agregar manualmente la información adicional en el portal de administración de Microsoft Entra. Esto puede ser un poco tedioso, pero te permitirá tener toda la información necesaria.
    3. Documentación externa: Considera llevar un registro externo (como una hoja de cálculo) donde puedas anotar los nombres y correos electrónicos de los usuarios que invites. Esto te ayudará a identificar a cada persona incluso si no puedes incluir esa información en el CSV.

    Espero que información brindada fuera útil. Si necesitas más asistencia, estoy a tu disposición.

    Atentamente,

    Gao


    Si esta respuesta resolvió tu consulta, por favor haz clic en 'Aceptar respuesta'. Esto nos ayuda a mejorar continuamente la calidad y relevancia de nuestras soluciones.


  2. Gao Chen 4,135 Puntos de reputación Proveedor de Microsoft
    2024-11-12T19:20:36.9066667+00:00

    Hola de nuevo Fernando Martín,

    Como se mencionó anteriormente, en este caso si se podría usando PowerShell. Para crear un script de PowerShell que te permita importar usuarios en Microsoft Entra ID y actualizar sus perfiles con información adicional, puedes seguir estos pasos:

    Instalar el módulo de Microsoft Graph PowerShell: Primero, necesitas instalar el módulo de Microsoft Graph PowerShell si aún no lo tienes. Abre PowerShell y ejecuta el siguiente comando:

    Install-Module Microsoft.Graph -Scope CurrentUser
    

    Conectar a Microsoft Entra ID: Luego, debes conectarte a Microsoft Entra ID usando el cmdlet Connect-MgGraph:

    Connect-MgGraph -Scopes "User.ReadWrite.All"
    

    Crear el script para importar usuarios: Aquí tienes un ejemplo de script que importa usuarios desde un archivo CSV y actualiza sus perfiles con información adicional como "Nombre", "Apellido" y "Compañía":

    # Importar el módulo de Microsoft Graph
    Import-Module Microsoft.Graph
    
    # Conectar a Microsoft Entra ID
    Connect-MgGraph -Scopes "User.ReadWrite.All"
    
    # Ruta del archivo CSV
    $csvPath = "C:\ruta\al\archivo\usuarios.csv"
    
    # Leer el archivo CSV
    $usuarios = Import-Csv -Path $csvPath
    
    # Iterar sobre cada usuario en el CSV
    foreach ($usuario in $usuarios) {
        # Crear el usuario en Microsoft Entra ID
        $nuevoUsuario = New-MgUser -AccountEnabled $true -DisplayName "$($usuario.Nombre) $($usuario.Apellido)" `
            -MailNickname $usuario.Email -UserPrincipalName $usuario.Email `
            -PasswordProfile @{Password = "ContraseñaTemporal123"; ForceChangePasswordNextSignIn = $true}
    
        # Actualizar el perfil del usuario con información adicional
        Update-MgUser -UserId $nuevoUsuario.Id -GivenName $usuario.Nombre -Surname $usuario.Apellido -CompanyName $usuario.Compañía
    }
    
    Write-Output "Usuarios importados y actualizados exitosamente."
    

    Preparar el archivo CSV:
    Asegúrate de que tu archivo CSV tenga las siguientes columnas: Email, Nombre, Apellido, Compañía. Aquí tienes un ejemplo de cómo debería verse el archivo CSV:

    Email,Nombre,Apellido,Compañía
    usuario1@ejemplo.com,Juan,Pérez,Compañía1
    usuario2@ejemplo.com,Ana,García,Compañía2
    

    Este script creará nuevos usuarios en Microsoft Entra ID y actualizará sus perfiles con la información adicional proporcionada en el archivo CSV. Asegúrate de ajustar las rutas y los detalles según tus necesidades específicas.

    Si la información te funciono, recuerda en dar click en "Aceptar respuesta" si la respuesta te resolvió tu consulta. Si tienes más actualizaciones sobre este tema, por favor no dude en hacérmelo saber.


  3. Gao Chen 4,135 Puntos de reputación Proveedor de Microsoft
    2024-11-29T21:05:43.51+00:00

    Hola de nuevo Fernando Martín,

    Para añadir columnas al CSV de importar usuarios en Entra ID y asegurarte de que se actualicen correctamente las propiedades como "Nombre", "Apellido" y "Compañía", puedes seguir estos pasos:

    Modificar el CSV: Verifica que tu archivo CSV tenga las columnas necesarias. Por ejemplo:

    Email,Name,Surname,Company
    user1@example.com,John,Doe,CompanyA
    user2@example.com,Jane,Smith,CompanyB
    

    Actualizar el script: Asegúrate de que tu script PowerShell esté correctamente configurado para leer y utilizar estas columnas. Aquí tienes una versión ajustada de tu script:

    # Conectar a Microsoft Graph
    Connect-MgGraph -Scopes "User.Invite.All", "User.ReadWrite.All"
    
    # Ruta del archivo CSV
    $csvPath = "C:\Software\Scripts\Usuarios.csv"
    
    # Importar usuarios desde el archivo CSV
    $usuarios = Import-Csv -Path $csvPath
    
    # Invitar usuarios y actualizar propiedades
    foreach ($usuario in $usuarios) {
        # Invitar usuario
        $invitation = New-MgInvitation -InvitedUserEmailAddress $usuario.Email -InviteRedirectUrl "https://myapps.microsoft.com" -SendInvitationMessage -InvitedUserDisplayName "$($usuario.Name) $($usuario.Surname)"
    
        if ($invitation -and $invitation.Status -eq "PendingAcceptance") {
            Write-Output "Invitación enviada a: $($usuario.Email)"
    
            # Obtener el ID del usuario invitado
            $invitedUser = Get-MgUser -Filter "userPrincipalName eq '$($usuario.Email)'"
    
            if ($invitedUser) {
                # Actualizar la propiedad Company
                Update-MgUser -UserId $invitedUser.Id -CompanyName $usuario.Company
                Write-Output "Propiedad Company actualizada para: $($usuario.Email)"
            } else {
                Write-Output "Error al obtener el usuario invitado: $($usuario.Email)"
            }
        } else {
            Write-Output "Error al enviar la invitación a: $($usuario.Email)"
        }
    }
    
    Write-Output "Proceso de invitación y actualización completado."
    n y actualización completado."
    

    Verificar permisos: Asegúrate de que la cuenta que estás utilizando para ejecutar el script tiene los permisos necesarios para invitar usuarios y actualizar sus propiedades en Microsoft Graph.

    Revisar errores: Si sigues teniendo problemas, revisa los mensajes de error específicos que se generan y asegúrate de que todos los campos en el CSV están correctamente formateados y que los usuarios existen en el directorio.

    Espero que estos consejos ayuden a resolver el problema. Si necesitas más asistencia, estoy a tu disposición.

    Atentamente,

    Gao


  4. Gao Chen 4,135 Puntos de reputación Proveedor de Microsoft
    2024-12-02T20:02:37.2+00:00

    Hola Fernando Martín,

    ¡Espero que hayas tenido un lindo fin de semana!

    En este caso, tienes razón en que hay una limitación ya que no se pueden actualizar ciertos campos del perfil del usuario hasta que la invitación haya sido aceptada.

    Cuando invitas a un usuario a través de la opción de BULK INVITE o mediante scripts, el usuario debe aceptar la invitación para que su cuenta se active completamente en Entra ID. Solo después de que el usuario acepte la invitación, podrás actualizar campos adicionales en su perfil.

    Por lo cual, podrías utilizar el siguiente flujo: Utiliza el script para enviar la invitación > Una vez que el usuario acepte la invitación, su cuenta estará activa > Puedes usar un script adicional para actualizar los campos "Name", "Surname" y "Company".

    Aca tienes un ejemplo de cómo podrías estructurar los scripts:

    Script de invitación:

    # Importar el módulo de Microsoft Graph
    Import-Module Microsoft.Graph
    
    # Conectar a Microsoft Entra ID
    Connect-MgGraph -Scopes "User.Invite.All"
    
    # Ruta del archivo CSV
    $csvPath = "C:\\ruta\\al\\archivo\\usuarios.csv"
    
    # Leer el archivo CSV
    $usuarios = Import-Csv -Path $csvPath
    
    # Iterar sobre cada usuario en el CSV
    foreach ($usuario in $usuarios) {
        # Enviar la invitación
        New-MgInvitation -InvitedUserEmailAddress $usuario.Email -InviteRedirectUrl "https://tu-redirect-url.com"
    }
    
    Write-Output "Invitaciones enviadas exitosamente."
    

    Script de actualización (después de la aceptación):

    # Importar el módulo de Microsoft Graph
    Import-Module Microsoft.Graph
    
    # Conectar a Microsoft Entra ID
    Connect-MgGraph -Scopes "User.ReadWrite.All"
    
    # Ruta del archivo CSV
    $csvPath = "C:\\ruta\\al\\archivo\\usuarios.csv"
    
    # Leer el archivo CSV
    $usuarios = Import-Csv -Path $csvPath
    
    # Iterar sobre cada usuario en el CSV
    foreach ($usuario in $usuarios) {
        # Obtener el usuario por correo electrónico
        $user = Get-MgUser -Filter "mail eq '$($usuario.Email)'"
    
        # Actualizar el perfil del usuario con información adicional
        Update-MgUser -UserId $user.Id -GivenName $usuario.Nombre -Surname $usuario.Apellido -CompanyName $usuario.Compañía
    }
    
    Write-Output "Perfiles de usuarios actualizados exitosamente."
    

    Me avisas si este otro flujo te funciono, quedo a la espera de su respuesta.

    Atentamente,

    Gao


Su respuesta

Las respuestas se pueden marcar como respuestas aceptadas por el autor de la pregunta, lo que ayuda a los usuarios a conocer la respuesta que resolvió el problema del autor.