Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Gli account guest in Microsoft Entra ID consentono agli utenti esterni di accedere a risorse specifiche come file, team o siti senza essere membri completi dell'organizzazione. Questi account vengono in genere usati per la collaborazione con partner, terzisti o clienti che necessitano di accesso temporaneo alle risorse dell'organizzazione.
La gestione efficace degli account guest è fondamentale per mantenere la sicurezza e l'integrità dei dati dell'organizzazione. In qualità di amministratore, è necessario assicurarsi che agli account guest siano concesse solo le autorizzazioni necessarie e l'accesso per eseguire le attività desiderate. Esaminare e controllare regolarmente questi account è importante anche identificare eventuali account inattivi o scaduti che devono essere rimossi. Questo esercizio non solo aiuta a ridurre i potenziali rischi per la sicurezza, ma garantisce anche un uso efficiente delle risorse dell'organizzazione. Gestendo bene gli account guest, è possibile fornire un ambiente sicuro e produttivo per la collaborazione esterna.
Prerequisiti
Per gestire gli utenti guest con Microsoft Entra PowerShell, è necessario:
- Un account utente di Microsoft Entra. Se non è già disponibile, è possibile Creare un account gratuitamente.
- Uno dei ruoli seguenti:
- Modulo PowerShell Microsoft Entra installato. Seguire la guida Installare il modulo di PowerShell Microsoft Entra per installare il modulo.
Invitare account utente guest
È possibile invitare utenti guest all'organizzazione usando Microsoft Entra PowerShell. Questo processo consente agli utenti esterni di accedere a risorse specifiche nell'organizzazione senza essere membri completi. È possibile invitare un singolo utente guest o invitare in blocco più utenti guest contemporaneamente.
Invita un singolo account utente ospite
Per invitare un singolo utente guest nella tua organizzazione con almeno il ruolo Guest Inviter.
# 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'
Questo script invia un invito a un utente esterno con l'indirizzo di posta elettronica guestUser@contoso.com, reindirizzandolo a https://contoso.com dopo l'accettazione. L'output seguente mostra i dettagli dell'utente guest invitato.
Id InviteRedeemUrl
-- ---------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb https://login.microsoftonline.com/redeem?rd=https%3a%2f%2finvitation…
Invitare in blocco gli account utente guest
Per invitare in blocco gli utenti ospiti nella tua organizzazione:
Preparare il file CSV
In Microsoft Excel creare un file CSV con l'elenco di nomi utente e indirizzi di posta elettronica dell'invito. Assicurarsi di includere le intestazioni di colonna Nome e Email.
Ad esempio, creare un foglio di lavoro nel formato seguente:
Name E-mail Reed Smith rsmith@contoso.com Hayden Cook hcook@fabricam.com Isabel Garcia igarcia@contoso.com
Salvare il file come C:\BulkInvite\Invitations.csv o qualsiasi posizione desiderata.
Se non si dispone di Excel, è possibile creare un file CSV in qualsiasi editor di testo, ad esempio Blocco note. Separare ogni valore con una virgola e ogni riga con una nuova riga.
Connettiti a Microsoft Entra con almeno il ruolo Autore inviti guest.
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
}
Questo script importa un elenco di inviti da un file CSV. Definisce un messaggio personalizzato per gli utenti invitati e quindi scorre ogni invito per inviare un invito a ogni utente con il proprio indirizzo di posta elettronica.
L'output seguente mostra i dettagli degli utenti guest invitati.
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…
Visualizzare ed esportare gli account utente guest
Per visualizzare ed esportare gli utenti guest:
Connettiti a Microsoft Entra con almeno il ruolo di autore inviti guest.
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"
Lo script recupera tutti gli account utente guest da Microsoft Entra ID con i relativi nomi visualizzati, indirizzi di posta elettronica e date di creazione e quindi visualizza l'elenco di tali utenti guest.
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
Gestire il patrocinio degli utenti ospiti
In Microsoft Entra ID, la sponsorizzazione guest consente di designare utenti o gruppi specifici come sponsor per gli utenti guest, offrendo loro la possibilità di gestire l'accesso e le autorizzazioni dell'utente guest. Questa funzionalità è utile per le organizzazioni che vogliono controllare e monitorare l'accesso degli utenti esterni.
Per gestire la sponsorizzazione degli utenti guest, è possibile assegnare, visualizzare e rimuovere uno sponsor da un utente guest. Per eseguire queste azioni, è necessario almeno un ruolo di amministratore utenti .
Assegna uno sponsor a un utente ospite
Nell'esempio seguente viene illustrato come assegnare uno sponsor a un utente guest in Microsoft Entra ID. È possibile usare il New-EntraUserSponsor cmdlet per assegnare uno sponsor a un utente guest specificato.
Connect-Entra -Scopes 'User.ReadWrite.All'
$sponsor = Get-EntraUser -UserId 'SponsorEmail@contoso.com'
Set-EntraUserSponsor -UserId 'guestuser@contoso.com' -Type User -SponsorIds $sponsor.Id
Questo esempio assegna uno sponsor a un utente ospite in Microsoft Entra ID. Il UserId parametro specifica l'utente guest e il SponsorId parametro specifica lo sponsor.
Visualizzare gli sponsor di un utente guest
Nell'esempio seguente viene illustrato come visualizzare gli sponsor di un utente guest in Microsoft Entra ID. È possibile usare il Get-EntraUserSponsor cmdlet per recuperare gli sponsor di un utente guest specificato.
Connect-Entra -Scopes 'User.Read.All'
Get-EntraUserSponsor -UserId 'guestuser@contoso.com' -All | Select-Object Id, DisplayName, '@odata.type', CreatedDateTime | Format-Table -AutoSize
In questo esempio vengono recuperati gli sponsor di un utente guest in Microsoft Entra ID. Il UserId parametro specifica l'utente guest.
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
Rimuovere uno sponsor da un utente ospite
Nell'esempio seguente viene illustrato come rimuovere uno sponsor da un utente guest in Microsoft Entra ID. È possibile usare il Remove-EntraUserSponsor cmdlet per rimuovere uno sponsor da un utente guest specificato.
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
In questo esempio viene rimosso uno sponsor da un utente ospite in Microsoft Entra ID. Il UserId parametro specifica l'utente guest e il SponsorId parametro specifica lo sponsor da rimuovere.
Reimpostare lo stato di riscatto dell'utente guest
In Microsoft Entra ID, reimpostare lo stato di riscatto di un utente guest è necessario quando si desidera consentire all'utente di riscattare nuovamente l'invito. Questa funzionalità è utile se l'utente non completa il processo di riscatto o se lo stato deve essere reimpostato per qualsiasi motivo. Nell'esempio seguente viene illustrato come reimpostare lo stato di riscatto per un utente guest inviandogli un nuovo invito.
Identificare prima di tutto l'utente guest e inviare un nuovo invito: in questo modo lo stato di riscatto viene reimpostato invitando nuovamente l'utente guest.
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
Disabilitare gli account utente ospite
Gli esempi seguenti mostrano come disabilitare gli account utente guest in Microsoft Entra ID. È possibile disabilitare un singolo account guest o disabilitare tutti gli account guest in base alle esigenze.
Disattiva un singolo account utente ospite
Per disabilitare un singolo account utente guest:
Connettersi a Microsoft Entra con almeno un ruolo di amministratore utenti:
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
Disattiva tutti gli account utente ospite
Eseguire il cmdlet seguente per disabilitare tutti gli account utente guest.
Connect-Entra -Scopes 'User.ReadWrite.All'
# Disable the guest user account
Get-EntraUser | Where-Object { $_.UserType -eq 'Guest' } | Set-EntraUser -AccountEnabled $false
Visualizzare ed esportare gli account utente guest scaduti
Per visualizzare ed esportare gli account utente guest scaduti:
Espandere l'esempio precedente per recuperare gli utenti guest e verificarne la scadenza. In questo esempio si presuppone che gli account guest scadano 90 giorni dopo la creazione.
$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 } } }Esportare il report in un file CSV.
$report | Export-Csv -Path "ExpiredGuestAccounts.csv" -NoTypeInformation
Rimuovi gli account utente guest scaduti
Connettersi a Microsoft Entra con almeno un ruolo di amministratore utenti:
In questo esempio si presuppone che gli account guest scadano 90 giorni dopo la creazione.
Note
Questo script rimuove tutti gli utenti guest i cui account sono scaduti. Questa azione è irreversibile e deve essere usata con cautela. Assicurarsi sempre di disporre di un backup o di un piano di ripristino prima di rimuovere gli account utente.
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