Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gästkonton i Microsoft Entra ID låta externa användare komma åt specifika resurser som filer, team eller webbplatser utan att vara fullständiga medlemmar i din organisation. Dessa konton används vanligtvis för samarbete med partner, entreprenörer eller klienter som behöver tillfällig åtkomst till organisationens resurser.
Att hantera gästkonton effektivt är avgörande för att upprätthålla säkerheten och integriteten för organisationens data. Som administratör måste du se till att gästkonton endast får de behörigheter och den åtkomst som krävs för att utföra sina avsedda uppgifter. Det är också viktigt att regelbundet granska och granska dessa konton för att identifiera inaktiva eller utgångna konton som ska tas bort. Den här övningen bidrar inte bara till att minska potentiella säkerhetsrisker, utan garanterar också effektiv användning av organisationens resurser. Genom att hantera gästkonton väl kan du tillhandahålla en säker och produktiv miljö för externt samarbete.
Förutsättningar
Om du vill hantera gästanvändare med Microsoft Entra PowerShell behöver du:
- Ett Microsoft Entra användarkonto. Om du inte redan har ett konto kan du Skapa ett konto kostnadsfritt.
- En av följande roller:
- Microsoft Entra PowerShell-modul installerad. Följ modulguiden Installera Microsoft Entra PowerShell för att installera modulen.
Bjud in gästanvändarkonton
Du kan bjuda in gästanvändare till din organisation med hjälp av Microsoft Entra PowerShell. Den här processen gör det möjligt för externa användare att komma åt specifika resurser i din organisation utan att vara fullständiga medlemmar. Du kan bjuda in en enskild gästanvändare eller massinbjuda flera gästanvändare samtidigt.
Bjud in ett enskilt gästanvändarkonto
Om du vill bjuda in en enskild gästanvändare till din organisation med minst en gästinbjudningsroll .
# 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'
Det här skriptet skickar en inbjudan till en gästanvändare med e-postadressen guestUser@contoso.comoch dirigerar dem till https://contoso.com vid godkännande. Följande utdata visar information om den inbjudna gästanvändaren.
Id InviteRedeemUrl
-- ---------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb https://login.microsoftonline.com/redeem?rd=https%3a%2f%2finvitation…
Massinbjuda gästanvändarkonton
Massinbjuda gästanvändare till din organisation:
Förbered CSV-filen
I Microsoft Excel skapar du en CSV-fil med listan över inbjudna användarnamn och e-postadresser. Se till att inkludera kolumnrubrikerna Namn och E-post .
Du kan t.ex. skapa ett kalkylblad i följande format:
Name E-post Reed Smith rsmith@contoso.com Hayden Kock hcook@fabricam.com Isabel Garcia igarcia@contoso.com
Spara filen som C:\BulkInvite\Invitations.csv eller valfri plats.
Om du inte har Excel kan du skapa en CSV-fil i valfri textredigerare, till exempel Anteckningar. Avgränsa varje värde med ett kommatecken och varje rad med en ny rad.
Anslut till Microsoft Entra med minst en gästinbjudarroll.
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
}
Det här skriptet importerar en lista med inbjudningar från en CSV-fil. Det definierar ett anpassat meddelande för de inbjudna användarna och itererar sedan via varje inbjudan för att skicka en inbjudan till varje användare med sin e-postadress.
Följande utdata visar information om de inbjudna gästanvändare.
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…
Visa och exportera gästanvändarkonton
Så här visar och exporterar du gästanvändare:
Anslut till Microsoft Entra med minst en gästinbjudarroll.
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"
Skriptet hämtar alla gästanvändarkonton från Microsoft Entra ID med deras visningsnamn, e-postadresser och skapandedatum och visar sedan listan över dessa gästanvändare.
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
Hantera sponsring av gästanvändare
I Microsoft Entra ID kan du med gästsponsring utse specifika användare eller grupper till sponsorer för gästanvändare, vilket ger dem möjlighet att hantera gästanvändarens åtkomst och behörigheter. Den här funktionen är användbar för organisationer som vill styra och övervaka åtkomsten för externa användare.
Om du vill hantera sponsring av gästanvändare kan du tilldela, visa och ta bort en sponsor från en gästanvändare. Du behöver minst en användaradministratörsroll för att utföra dessa åtgärder.
Tilldela en sponsor till en gästanvändare
I följande exempel visas hur du tilldelar en sponsor till en gästanvändare i Microsoft Entra ID. Du kan använda cmdleten New-EntraUserSponsor för att tilldela en sponsor till en angiven gästanvändare.
Connect-Entra -Scopes 'User.ReadWrite.All'
$sponsor = Get-EntraUser -UserId 'SponsorEmail@contoso.com'
Set-EntraUserSponsor -UserId 'guestuser@contoso.com' -Type User -SponsorIds $sponsor.Id
I det här exemplet tilldelas en sponsor till en gästanvändare i Microsoft Entra ID. Parametern UserId anger gästanvändaren och parametern SponsorId anger sponsorn.
Visa en gästanvändares sponsorer
I följande exempel visas hur du visar en gästanvändares sponsorer i Microsoft Entra ID. Du kan använda cmdleten Get-EntraUserSponsor för att hämta sponsorerna för en angiven gästanvändare.
Connect-Entra -Scopes 'User.Read.All'
Get-EntraUserSponsor -UserId 'guestuser@contoso.com' -All | Select-Object Id, DisplayName, '@odata.type', CreatedDateTime | Format-Table -AutoSize
Det här exemplet hämtar sponsorerna för en gästanvändare i Microsoft Entra ID. Parametern UserId anger gästanvändaren.
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
Ta bort en sponsor från en gästanvändare
I följande exempel visas hur du tar bort en sponsor från en gästanvändare i Microsoft Entra ID. Du kan använda cmdleten Remove-EntraUserSponsor för att ta bort en sponsor från en angiven gästanvändare.
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
Det här exemplet tar bort en sponsor från en gästanvändare i Microsoft Entra ID. Parametern UserId anger gästanvändaren och parametern SponsorId anger vilken sponsor som ska tas bort.
Återställ gästanvändares inlösenstatus
I Microsoft Entra ID är det nödvändigt att återställa inlösenstatusen för en gästanvändare när du vill att användaren ska kunna lösa in sin inbjudan igen. Den här funktionen är användbar om användaren inte slutför inlösningsprocessen eller om deras status behöver återställas av någon anledning. I följande exempel visas hur du återställer inlösenstatusen för en gästanvändare genom att skicka en ny inbjudan till dem.
Identifiera först gästanvändaren och skicka en ny inbjudan: Detta återställer inlösningsstatusen genom att bjuda in gästanvändaren igen.
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
Inaktivera gästanvändarkonton
I följande exempel visas hur du inaktiverar gästanvändarkonton i Microsoft Entra ID. Du kan inaktivera ett enskilt gästkonto eller inaktivera alla gästkonton baserat på dina krav.
Inaktivera ett enskilt gästanvändarkonto
Så här inaktiverar du ett enskilt gästanvändarkonto:
Anslut till Microsoft Entra med minst en användaradministratörsroll:
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
Inaktivera alla gästanvändarkonton
Kör följande cmdlet för att inaktivera alla gästanvändarkonton.
Connect-Entra -Scopes 'User.ReadWrite.All'
# Disable the guest user account
Get-EntraUser | Where-Object { $_.UserType -eq 'Guest' } | Set-EntraUser -AccountEnabled $false
Visa och exportera utgångna gästanvändarkonton
Så här visar och exporterar du utgångna gästanvändarkonton:
Expandera föregående exempel för att hämta gästanvändare och kontrollera var och en för förfallodatum. I det här exemplet förutsätter vi att gästkonton upphör att gälla 90 dagar efter skapandet.
$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 } } }Exportera rapporten till en CSV-fil.
$report | Export-Csv -Path "ExpiredGuestAccounts.csv" -NoTypeInformation
Ta bort utgångna gästanvändarkonton
Anslut till Microsoft Entra med minst en användaradministratörsroll:
I det här exemplet förutsätter vi att gästkonton upphör att gälla 90 dagar efter skapandet.
Note
Det här skriptet tar bort alla gästanvändare vars konton har upphört att gälla. Den här åtgärden är oåterkallelig och bör användas med försiktighet. Se alltid till att du har en säkerhetskopia eller en återställningsplan på plats innan du tar bort användarkonton.
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