Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gastkonten in Microsoft Entra ID externen Benutzern den Zugriff auf bestimmte Ressourcen wie Dateien, Teams oder Websites ermöglichen, ohne Vollmitglieder Ihrer Organisation zu sein. Diese Konten werden in der Regel für die Zusammenarbeit mit Partnern, Auftragnehmern oder Kunden verwendet, die temporären Zugriff auf die Ressourcen Ihrer Organisation benötigen.
Die effektive Verwaltung von Gastkonten ist entscheidend für die Aufrechterhaltung der Sicherheit und Integrität der Daten Ihrer Organisation. Als Administrator müssen Sie sicherstellen, dass Gastkonten nur über die erforderlichen Berechtigungen und den Zugriff auf die gewünschten Aufgaben verfügen. Die regelmäßige Überprüfung und Überwachung dieser Konten ist auch wichtig, um inaktive oder abgelaufene Konten zu identifizieren, die entfernt werden sollten. Diese Übung hilft nicht nur, potenzielle Sicherheitsrisiken zu reduzieren, sondern sorgt auch für eine effiziente Nutzung der Ressourcen Ihrer Organisation. Indem Sie Gastkonten gut verwalten, können Sie eine sichere und produktive Umgebung für die externe Zusammenarbeit bereitstellen.
Voraussetzungen
Um Gastbenutzer mit Microsoft Entra PowerShell zu verwalten, benötigen Sie Folgendes:
- Ein Microsoft Entra Benutzerkonto. Wenn Sie noch kein Konto besitzen, können Sie kostenlos ein Konto erstellen.
- Eine der folgenden Rollen:
- Microsoft Entra PowerShell-Modul installiert. Befolgen Sie die Anleitung zum Installieren des Microsoft Entra PowerShell-Moduls, um das Modul zu installieren.
Einladen von Gastbenutzerkonten
Sie können Gastbenutzer mithilfe von Microsoft Entra PowerShell zu Ihrer Organisation einladen. Dieser Vorgang ermöglicht externen Benutzern den Zugriff auf bestimmte Ressourcen in Ihrer Organisation, ohne Vollmitglieder zu sein. Sie können einen einzelnen Gastbenutzer einladen oder mehrere Gastbenutzer gleichzeitig einladen.
Einladen eines einzelnen Gastbenutzerkontos
Einen einzelnen Gastbenutzer mit mindestens der Rolle „Gasteinladender“ in Ihre Organisation einladen.
# 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'
Dieses Skript sendet eine Einladung an einen Gastbenutzer mit der E-Mail-Adresse guestUser@contoso.comund leitet sie bei der Annahme an https://contoso.com . Die folgende Ausgabe zeigt die Details des eingeladenen Gastbenutzers.
Id InviteRedeemUrl
-- ---------------
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb https://login.microsoftonline.com/redeem?rd=https%3a%2f%2finvitation…
Masseneinladung von Gastbenutzerkonten
So laden Sie Gastbenutzer in Ihre Organisation massenweise ein:
Vorbereiten der CSV-Datei
Erstellen Sie in Microsoft Excel eine CSV-Datei mit der Liste der eingeladenen Benutzernamen und E-Mail-Adressen. Achten Sie darauf, die Spaltenüberschriften "Name " und " E-Mail " einzuschließen.
Erstellen Sie beispielsweise ein Arbeitsblatt im folgenden Format:
Name E‑Mail Reed Smith rsmith@contoso.com Hayden Cook hcook@fabricam.com Isabel García igarcia@contoso.com
Speichern Sie die Datei als C:\BulkInvite\Invitations.csv oder an einem beliebigen Speicherort Ihrer Wahl.
Wenn Sie Excel nicht haben, können Sie eine CSV-Datei mit einem beliebigen Texteditor erstellen, z. B. mit dem Editor. Trennen Sie Werte durch Kommas und Zeilen durch eine neue Zeile.
Stellen Sie eine Verbindung zu Microsoft Entra mit mindestens der Rolle „Guest Inviter“ her.
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
}
Dieses Skript importiert eine Liste von Einladungen aus einer CSV-Datei. Dabei wird eine benutzerdefinierte Nachricht für die eingeladenen Benutzer definiert, und anschließend wird jede Einladung durchlaufen, um jedem Benutzer eine Einladung an seine E-Mail-Adresse zu senden.
Die folgende Ausgabe zeigt die Details der eingeladenen Gastbenutzer.
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…
Anzeigen und Exportieren von Gastbenutzerkonten
So zeigen Sie Gastbenutzer an und exportieren sie:
Stellen Sie eine Verbindung mit Microsoft Entra mit mindestens einer Rolle "Guest Inviter" her.
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"
Das Skript ruft alle Gastbenutzerkonten aus Microsoft Entra ID mit ihren Anzeigenamen, E-Mail-Adressen und Erstellungsdaten ab und zeigt dann die Liste dieser Gastbenutzer an.
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
Verwalten von Patenschaften für Gastbenutzer
In Microsoft Entra ID können Sie mithilfe des Gastsponsorings bestimmte Benutzer oder Gruppen als Sponsoren für Gastbenutzer festlegen und ihnen die Möglichkeit geben, den Zugriff und die Berechtigungen des Gastbenutzers zu verwalten. Dieses Feature ist nützlich für Organisationen, die den Zugriff externer Benutzer steuern und überwachen möchten.
Um das Sponsoring von Gastbenutzern zu verwalten, können Sie einen Sponsor von einem Gastbenutzer zuweisen, anzeigen und entfernen. Sie benötigen mindestens eine Benutzeradministratorrolle , um diese Aktionen auszuführen.
Zuweisen eines Sponsors zu einem Gastbenutzer
Das folgende Beispiel zeigt, wie Sie einem Gastbenutzer in Microsoft Entra ID einen Sponsor zuweisen. Sie können das New-EntraUserSponsor Cmdlet verwenden, um einem angegebenen Gastbenutzer einen Sponsor zuzuweisen.
Connect-Entra -Scopes 'User.ReadWrite.All'
$sponsor = Get-EntraUser -UserId 'SponsorEmail@contoso.com'
Set-EntraUserSponsor -UserId 'guestuser@contoso.com' -Type User -SponsorIds $sponsor.Id
In diesem Beispiel wird einem Gastbenutzer in Microsoft Entra ID ein Sponsor zugewiesen. Der UserId Parameter gibt den Gastbenutzer an, und der SponsorId Parameter gibt den Sponsor an.
Sponsoren eines Gastbenutzers anzeigen
Das folgende Beispiel zeigt, wie Sie die Sponsoren eines Gastbenutzers in Microsoft Entra ID anzeigen. Sie können das Get-EntraUserSponsor Cmdlet verwenden, um die Sponsoren eines angegebenen Gastbenutzers abzurufen.
Connect-Entra -Scopes 'User.Read.All'
Get-EntraUserSponsor -UserId 'guestuser@contoso.com' -All | Select-Object Id, DisplayName, '@odata.type', CreatedDateTime | Format-Table -AutoSize
In diesem Beispiel werden die Sponsoren eines Gastbenutzers in Microsoft Entra ID abgerufen. Der UserId Parameter gibt den Gastbenutzer an.
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
Entfernen eines Sponsors von einem Gastbenutzer
Das folgende Beispiel zeigt, wie Sie einen Sponsor aus einem Gastbenutzer in Microsoft Entra ID entfernen. Sie können das Remove-EntraUserSponsor Cmdlet verwenden, um einen Sponsor aus einem angegebenen Gastbenutzer zu entfernen.
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 diesem Beispiel wird ein Sponsor von einem Gastbenutzer in Microsoft Entra ID entfernt. Der UserId Parameter gibt den Gastbenutzer an, und der SponsorId Parameter gibt den Sponsor an, der entfernt werden soll.
Einlösestatus des Gastbenutzers zurücksetzen
In Microsoft Entra ID ist das Zurücksetzen des Einlösungsstatus eines Gastbenutzers erforderlich, wenn Sie dem Benutzer erlauben möchten, seine Einladung erneut einzulösen. Dieses Feature ist hilfreich, wenn der Benutzer den Einlösungsprozess nicht abgeschlossen hat oder sein Status aus irgendeinem Grund zurückgesetzt werden muss. Das folgende Beispiel zeigt, wie der Einlösungsstatus eines Gastbenutzers zurückgesetzt wird, indem ihm eine neue Einladung gesendet wird.
Identifizieren Sie zuerst den Gastbenutzer und senden Sie eine neue Einladung: Dadurch wird der Einlösungsstatus zurückgesetzt, indem der Gastbenutzer erneut eingeladen wird.
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
Deaktivieren von Gastbenutzerkonten
Die folgenden Beispiele zeigen, wie Sie Gastbenutzerkonten in Microsoft Entra ID deaktivieren. Sie können ein einzelnes Gastkonto deaktivieren oder alle Gastkonten basierend auf Ihren Anforderungen deaktivieren.
Deaktivieren eines einzelnen Gastbenutzerkontos
So deaktivieren Sie ein einzelnes Gastbenutzerkonto:
Stellen Sie eine Verbindung mit Microsoft Entra mit mindestens einer Benutzeradministratorrolle her:
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
Alle Gastbenutzerkonten deaktivieren
Führen Sie das folgende Cmdlet aus, um alle Gastbenutzerkonten zu deaktivieren.
Connect-Entra -Scopes 'User.ReadWrite.All'
# Disable the guest user account
Get-EntraUser | Where-Object { $_.UserType -eq 'Guest' } | Set-EntraUser -AccountEnabled $false
Anzeigen und Exportieren abgelaufener Gastbenutzerkonten
So zeigen Sie abgelaufene Gastbenutzerkonten an und exportieren sie:
Erweitern Sie das vorherige Beispiel, um Gastbenutzer abzurufen und bei jedem einzelnen zu prüfen, ob er abgelaufen ist. In diesem Beispiel wird davon ausgegangen, dass Gastkonten 90 Tage nach der Erstellung ablaufen.
$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 } } }Exportieren Sie den Bericht in eine CSV-Datei.
$report | Export-Csv -Path "ExpiredGuestAccounts.csv" -NoTypeInformation
Abgelaufene Gastbenutzerkonten entfernen
Stellen Sie eine Verbindung mit Microsoft Entra mit mindestens einer Benutzeradministratorrolle her:
In diesem Beispiel wird davon ausgegangen, dass Gastkonten 90 Tage nach der Erstellung ablaufen.
Hinweis
Dieses Skript entfernt alle Gastbenutzer, deren Konten abgelaufen sind. Diese Aktion ist unumkehrbar und sollte mit Vorsicht verwendet werden. Stellen Sie immer sicher, dass Sie über eine Sicherung oder einen Wiederherstellungsplan verfügen, bevor Sie Benutzerkonten entfernen.
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