Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Las cuentas de invitado de Microsoft Entra ID permiten a los usuarios externos acceder a recursos específicos, como archivos, equipos o sitios sin ser miembros completos de su organización. Estas cuentas se suelen usar para la colaboración con asociados, contratistas o clientes que necesitan acceso temporal a los recursos de la organización.
La administración eficaz de cuentas de invitado es fundamental para mantener la seguridad e integridad de los datos de la organización. Como administrador, debe asegurarse de que las cuentas de invitado solo tienen los permisos necesarios y el acceso para realizar sus tareas deseadas. Revisar y auditar periódicamente estas cuentas también es importante identificar las cuentas inactivas o expiradas que se deben quitar. Este ejercicio no solo ayuda a reducir los posibles riesgos de seguridad, sino que también garantiza un uso eficaz de los recursos de la organización. Al administrar bien las cuentas de invitado, puede proporcionar un entorno seguro y productivo para la colaboración externa.
Prerrequisitos
Para administrar usuarios invitados con Microsoft Entra PowerShell, necesita lo siguiente:
- Una cuenta de usuario de Microsoft Entra. Si aún no tiene una, puede crear una cuenta de forma gratuita.
- Uno de los siguientes roles:
- Módulo de PowerShell de Microsoft Entra instalado. Siga la guía instalar el módulo Microsoft Entra PowerShell para instalar el módulo.
Invitar cuentas de invitado
Puede invitar a usuarios invitados a su organización mediante Microsoft Entra PowerShell. Este proceso permite a los usuarios externos acceder a recursos específicos de su organización sin ser miembros completos. Puede invitar a un solo usuario invitado o invitar de forma masiva a varios usuarios invitados a la vez.
Invitar a una sola cuenta de usuario invitado
Para invitar a un único usuario invitado a su organización con al menos el rol de Invitador de invitados.
# Connect to Microsoft Entra
Connect-Entra -Scopes 'User.Invite.All'
#Invite the guest user
New-EntraInvitation `
-InvitedUserEmailAddress 'guestUser@contoso.com' `
-InviteRedirectUrl 'https://contoso.com' `
-SendInvitationMessage $true `
-InvitedUserDisplayName 'Guest User'
Este script envía una invitación a un usuario invitado con la dirección guestUser@contoso.comde correo electrónico , que los dirige a https://contoso.com tras la aceptación. La siguiente salida muestra los detalles del usuario invitado.
Id InviteRedeemUrl
-- ---------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb https://login.microsoftonline.com/redeem?rd=https%3a%2f%2finvitation…
Invitar en bloque a cuentas de usuario invitado
Para invitar de forma masiva a los usuarios invitados a su organización:
Preparación del archivo .csv
En Microsoft Excel, cree un archivo CSV con la lista de nombres de usuario invitados y direcciones de correo electrónico. Asegúrese de incluir los encabezados de columna Nombre y Correo electrónico .
Por ejemplo, cree una hoja de cálculo con el formato siguiente:
Nombre Correo electrónico Reed Smith rsmith@contoso.com Hayden Cook hcook@fabricam.com Isabel Garcia igarcia@contoso.com
Guarde el archivo como C:\BulkInvite\Invitations.csv o cualquier ubicación de su elección.
Si no tiene Excel, puede crear un archivo CSV en cualquier editor de texto, como el Bloc de notas. Separe cada valor con una coma y cada fila con una línea nueva.
Conéctese a Microsoft Entra con al menos el rol de Invitador de invitados.
Connect-Entra -Scopes 'User.Invite.All'
# Import the CSV file containing the invitations.
$invitations = Import-Csv -Path "c:\bulkinvite\invitations.csv"
# Define the message to be sent to the invited users.
$messageBody = "Hello. You are invited to the Contoso organization."
# Iterate over each invitation in the CSV file.
foreach ($invitation in $invitations) {
# Define the invitation parameters
$invitationParams = @{
InvitedUserEmailAddress = $invitation.Email # Ensure this matches your CSV column name
InviteRedirectUrl = "https://contoso.com"
SendInvitationMessage = $true
InvitedUserMessageInfo = @{
CustomizedMessageBody = $messageBody
}
}
# Create a new invitation using the defined parameters
New-EntraInvitation @invitationParams
}
Este script importa una lista de invitaciones de un archivo CSV. Define un mensaje personalizado para los usuarios invitados y, a continuación, recorre en iteración cada invitación para enviar una invitación a cada usuario con su dirección de correo electrónico.
La siguiente salida muestra los detalles de los usuarios invitados.
Id InviteRedeemUrl
-- ---------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb https://login.microsoftonline.com/redeem?rd=https%3a%2f%2finvitation…
bbbbbbbb-1111-2222-3333-cccccccccccc https://login.microsoftonline.com/redeem?rd=https%3a%2f%2finvitation…
Visualización y exportación de cuentas de usuario invitado
Para ver y exportar usuarios invitados:
Conéctese a Microsoft Entra con al menos el rol Guest Inviter.
Connect-Entra -Scopes 'User.Read.All'
# Retrieve all guest user accounts.
Get-EntraUser -Filter "userType eq 'Guest'" -All -Property "displayName", "mail", "createdDateTime", "AccountEnabled" | Select-Object "displayName", "mail", "createdDateTime", "AccountEnabled"
El script recupera todas las cuentas de usuario invitado de Microsoft Entra ID con sus nombres para mostrar, direcciones de correo electrónico y fechas de creación y, a continuación, muestra la lista de esos usuarios invitados.
DisplayName Id Mail createdDateTime AccountEnabled
----------- -- ---- --------------- --------------
externaluser1 externaluser1@externaldomain1.com 13/09/2024 18:37:33 True
externaluser2 externaluser2@externaldomain2.com 15/02/2024 15:05:31 True
Administración del patrocinio de usuarios invitados
En Microsoft Entra ID, el patrocinio de invitados le permite designar usuarios o grupos específicos como patrocinadores para los usuarios invitados, lo que les permite administrar el acceso y los permisos del usuario invitado. Esta característica es útil para las organizaciones que desean controlar y supervisar el acceso de los usuarios externos.
Para administrar el patrocinio de usuarios invitados, puede asignar, ver y quitar un patrocinador de un usuario invitado. Necesita al menos un rol administrador de usuarios para realizar estas acciones.
Asignar un patrocinador a un usuario invitado
En el ejemplo siguiente se muestra cómo asignar un patrocinador a un usuario invitado en Microsoft Entra ID. Puede usar el New-EntraUserSponsor cmdlet para asignar un patrocinador a un usuario invitado especificado.
Connect-Entra -Scopes 'User.ReadWrite.All'
$sponsor = Get-EntraUser -UserId 'SponsorEmail@contoso.com'
Set-EntraUserSponsor -UserId 'guestuser@contoso.com' -Type User -SponsorIds $sponsor.Id
En este ejemplo se asigna un patrocinador a un usuario invitado en Microsoft Entra ID. El UserId parámetro especifica el usuario invitado y el SponsorId parámetro especifica el patrocinador.
Ver los patrocinadores de un usuario invitado
En el ejemplo siguiente se muestra cómo ver los patrocinadores de un usuario invitado en Microsoft Entra ID. Puede usar el Get-EntraUserSponsor cmdlet para recuperar los patrocinadores de un usuario invitado especificado.
Connect-Entra -Scopes 'User.Read.All'
Get-EntraUserSponsor -UserId 'guestuser@contoso.com' -All | Select-Object Id, DisplayName, '@odata.type', CreatedDateTime | Format-Table -AutoSize
En este ejemplo se recuperan los patrocinadores de un usuario invitado en Microsoft Entra ID. El UserId parámetro especifica el usuario invitado.
id displayName @odata.type createdDateTime
-- ----------- ----------- ---------------
aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb GuestUser Sponsor 1 #microsoft.graph.user 5/6/2025 11:29:26 PM
bbbbbbbb-1111-2222-3333-bbbbbbbbbbbb GuestUser Sponsor 2 #microsoft.graph.user 5/6/2025 11:29:27 PM
Quitar un patrocinador de un usuario invitado
En el ejemplo siguiente se muestra cómo quitar un patrocinador de un usuario invitado en Microsoft Entra ID. Puede usar el Remove-EntraUserSponsor cmdlet para quitar un patrocinador de un usuario invitado especificado.
Connect-Entra -Scopes 'User.ReadWrite.All'
$sponsor = Get-EntraUserSponsor -UserId 'SawyerM@contoso.com' | Where-Object { $_.displayName -eq 'Adele Vance (Fabrikam)' }
Remove-EntraUserSponsor -UserId 'SawyerM@Contoso.com' -SponsorId $sponsor.Id
En este ejemplo se elimina un patrocinador de un usuario invitado en Microsoft Entra ID. El UserId parámetro especifica el usuario invitado y el SponsorId parámetro especifica el patrocinador que se va a quitar.
Restablecer el estado de canje del usuario invitado
En Microsoft Entra ID, restablecer el estado de canje de un usuario invitado es necesario cuando desea permitir que el usuario canjee su invitación de nuevo. Esta característica es útil si el usuario no completa el proceso de canje o si su estado debe restablecerse por cualquier motivo. En el ejemplo siguiente se muestra cómo restablecer el estado de canje para un usuario invitado mediante el envío de una nueva invitación.
En primer lugar, identifique al usuario invitado y envíe una nueva invitación: restablece el estado de canje invitando al usuario invitado de nuevo.
Connect-Entra -Scopes 'User.Invite.All'
$user = Get-EntraUser -Filter "startsWith(mail, 'johndoe@gmail.com')"
New-EntraInvitation `
-InvitedUserEmailAddress $user.Mail `
-InviteRedirectUrl "https://myapps.contoso.com" `
-ResetRedemption `
-SendInvitationMessage `
-InvitedUser $user
Deshabilitar cuentas de usuario invitado
En los ejemplos siguientes se muestra cómo deshabilitar las cuentas de usuario invitado en Microsoft Entra ID. Puede deshabilitar una sola cuenta de invitado o deshabilitar todas las cuentas de invitado en función de sus requisitos.
Deshabilitar una sola cuenta de usuario invitado
Para deshabilitar una sola cuenta de usuario invitado:
Conéctese a Microsoft Entra con al menos un rol administrador de usuarios:
Connect-Entra -Scopes 'User.ReadWrite.All'
# Disable the guest user account.
Get-EntraUser -Filter "userType eq 'Guest' and mail eq 'guestUser@contoso.com'" | Set-EntraUser -AccountEnabled $false
Deshabilitar todas las cuentas de usuario invitado
Ejecute el siguiente cmdlet para deshabilitar todas las cuentas de usuario invitado.
Connect-Entra -Scopes 'User.ReadWrite.All'
# Disable the guest user account
Get-EntraUser | Where-Object { $_.UserType -eq 'Guest' } | Set-EntraUser -AccountEnabled $false
Visualización y exportación de cuentas de usuario invitado expiradas
Para ver y exportar cuentas de usuario invitado expiradas:
Expanda el ejemplo anterior para recuperar usuarios invitados y comprobar cada uno para la expiración. En este ejemplo, se supone que las cuentas de invitado expiran 90 días después de la creación.
$report = @() $now = Get-Date # Retrieve all guest users. $guestUsers = Get-EntraUser -Filter "userType eq 'Guest'" -All foreach ($guest in $guestUsers) { # Calculate the expiration date based on the creation date $guestExpirationDate = $guest.CreatedDateTime.AddDays(90) # Check if the account is expired if ($guestExpirationDate -lt $now) { # Add expired guest account details to the report $report += [PSCustomObject]@{ Id = $guest.Id Name = $guest.DisplayName Mail = $guest.Mail Expiration = $guestExpirationDate CreatedDate = $guest.CreatedDateTime } } }Exporte el informe a un archivo CSV.
$report | Export-Csv -Path "ExpiredGuestAccounts.csv" -NoTypeInformation
Eliminación de cuentas de usuario invitado expiradas
Conéctese a Microsoft Entra con al menos un rol administrador de usuarios:
En este ejemplo, se supone que las cuentas de invitado expiran 90 días después de la creación.
Note
Este script quita todos los usuarios invitados cuyas cuentas han expirado. Esta acción es irreversible y debe usarse con precaución. Asegúrese siempre de tener una copia de seguridad o un plan de recuperación en su lugar antes de quitar cuentas de usuario.
Connect-Entra -Scopes "User.ReadWrite.All"
$age = (Get-Date).AddDays(-90).ToString("yyyy-MM-ddTHH:mm:ssZ")
Get-EntraUser -Filter "userType eq 'Guest' and createdDateTime le $age" -All | Remove-EntraUser