Törölt felhasználók tömeges visszaállítása a Microsoft Entra-azonosítóban
A Microsoft Entra részét képező Microsoft Entra ID támogatja a felhasználók tömeges visszaállítási műveleteit, és támogatja a felhasználók, csoportok és csoporttagok listájának letöltését.
A CSV-sablon ismertetése
Töltse le és töltse ki a CSV-sablont, hogy segítsen a Microsoft Entra-felhasználók tömeges visszaállításában. A letöltött CSV-sablon az alábbi példához hasonlóan nézhet ki:
CSV-sablonstruktúra
A letöltött CSV-sablon sorai a következők:
- Verziószám: A verziószámot tartalmazó első sort fel kell venni a feltöltési CSV-be.
- Oszlopfejlécek: Az oszlopfejlécek< formátuma elemnév> [PropertyName] <Kötelező vagy üres>. Például:
Object ID [objectId] Required
. Előfordulhat, hogy a sablon néhány régebbi verziója kisebb változatokkal rendelkezik. - Példák sor: A sablonban példákat tartalmaztunk az egyes oszlopok elfogadható értékeire. Távolítsa el a példák sorát, és cserélje le a saját bejegyzéseire.
További útmutatás
- A feltöltési sablon első két sora nem távolítható el vagy módosítható, vagy a feltöltés nem dolgozható fel.
- Először a szükséges oszlopok jelennek meg.
- Nem javasoljuk, hogy új oszlopokat adjon hozzá a sablonhoz. A hozzáadott további oszlopok figyelmen kívül lesznek hagyva, és nem lesznek feldolgozva.
- Javasoljuk, hogy a lehető leggyakrabban töltse le a CSV-sablon legújabb verzióját.
Felhasználók tömeges visszaállítása
Tipp.
A cikkben szereplő lépések a portáltól függően kissé eltérhetnek.
Jelentkezzen be a Microsoft Entra felügyeleti központba legalább felhasználói rendszergazdaként.
Válassza ki a Microsoft Entra ID.
Válassza az Összes törölt felhasználó>>lehetőséget.
A Törölt felhasználók lapon válassza a Tömeges visszaállítás lehetőséget a visszaállítandó felhasználók tulajdonságainak érvényes CSV-fájljának feltöltéséhez.
Nyissa meg a CSV-sablont, és adjon hozzá egy sort minden visszaállítani kívánt felhasználóhoz. Az egyetlen kötelező érték az ObjectID. Ezután mentse a fájlt.
A Tömeges visszaállítás lapon, a Csv-fájl feltöltése csoportban keresse meg a fájlt. Amikor kijelöli a fájlt, és a Küldés gombra kattint, elindul a CSV-fájl ellenőrzése.
A fájl tartalmának ellenőrzésekor látni fogja a fájl sikeres feltöltését. Ha hibák jelentkeznek, javítania kell azokat ahhoz, hogy elküldhesse a feladatot.
Amikor a fájl megfelel az ellenőrzésnek, válassza a Küldés lehetőséget a felhasználókat visszaállító tömeges művelet elindításához.
Amikor a visszaállítási művelet befejeződik, megjelenik egy értesítés arról, hogy a tömeges művelet sikeres volt.
Ha hibákat tapasztal, letöltheti és megtekintheti az eredményfájlt a Tömeges művelet eredményei lapon. A fájl az egyes hibák okát is tartalmazza. A fájlbeküldésnek meg kell egyeznie a megadott sablonnal, és tartalmaznia kell a pontos oszlopneveket. A tömeges műveletek korlátozásával kapcsolatos további információkért lásd a tömeges visszaállítási szolgáltatás korlátait.
Állapot ellenőrzése
Az összes függőben lévő tömeges kérés állapotát a Tömeges művelet eredményei lapon tekintheti meg.
Ezután ellenőrizheti, hogy a visszaállított felhasználók a Microsoft Entra-szervezetben léteznek-e a Microsoft Entra azonosítójával vagy a PowerShell-lel.
Visszaállított felhasználók megtekintése az Azure Portalon
- Jelentkezzen be a Microsoft Entra felügyeleti központba legalább felhasználói rendszergazdaként.
- Válassza ki a Microsoft Entra ID.
- Válassza az Összes felhasználó a kezelés alatt lehetőséget, majd válassza a Felhasználók lehetőséget.
- A Megjelenítés csoportban válassza a Minden felhasználó lehetőséget, és ellenőrizze, hogy a visszaállított felhasználók szerepelnek-e a listában.
Felhasználók megtekintése a PowerShell-lel
Futtassa az alábbi parancsot:
Get-MgUser -Filter "UserType eq 'Member'"
Látnia kell, hogy a visszaállított felhasználók megjelennek a listában.
Feljegyzés
Az Azure AD- és MSOnline PowerShell-modulok 2024. március 30-ától elavultak. További információkért olvassa el az elavulás frissítését. Ezen dátum után ezeknek a moduloknak a támogatása a Microsoft Graph PowerShell SDK-ra való migrálásra és a biztonsági javításokra korlátozódik. Az elavult modulok 2025. március 30-ától működnek tovább.
Javasoljuk, hogy migráljon a Microsoft Graph PowerShellbe a Microsoft Entra ID (korábbi nevén Azure AD) használatához. Gyakori migrálási kérdésekért tekintse meg a migrálással kapcsolatos gyakori kérdéseket. Megjegyzés: Az MSOnline 1.0.x verziói 2024. június 30. után fennakadást tapasztalhatnak.
Tömeges visszaállítási szolgáltatáskorlátok
Tisztában kell lennie azzal, hogy az egyes tömeges műveletek akár egy óráig is futhatnak.
A Microsoft Entra felügyeleti portálon végzett tömeges műveletek időtúllépést okozhatnak, és nagyon nagy bérlők esetén meghiúsulhatnak. Ez a korlátozás a méretezési korlátozások miatt ismert probléma. A Microsoft mérnöki csapata egy új szolgáltatáson dolgozik, amely végül orvosolni fogja ezt a korlátozást.
Feljegyzés
Tömeges műveletek( például importálás vagy létrehozás) végrehajtásakor problémát tapasztalhat, ha a tömeges művelet nem fejeződik be egy órán belül. A probléma megoldásához javasoljuk, hogy ossza fel a kötegenként feldolgozott rekordok számát. Az exportálás megkezdése előtt például korlátozhatja az eredményhalmazt úgy, hogy egy csoporttípusra vagy felhasználónévre szűrve csökkenti az eredmények méretét. A szűrők finomításával lényegében korlátozza a tömeges művelet által visszaadott adatokat.
A probléma másik megkerülő megoldása, hogy a PowerShell használatával közvetlen Microsoft Graph API-hívásokat indít. A felhasználók és csoportok tömeges letöltésének sikertelensége esetén javasoljuk a PowerShell-parancsmagok GET-MgGroup -All
és GET-MgUser -All
a .
Az alábbi PowerShell-kód példák a következő tömeges műveletekre használhatók:
Felhasználók
Az összes felhasználó tömeges letöltése
# Import the Microsoft Graph module
Import-Module Microsoft.Graph
# Authenticate to Microsoft Graph (you may need to provide your credentials)
Connect-MgGraph -Scopes "User.Read.All"
# Get all users using Get-MgUser
$users = Get-MgUser -All -ConsistencyLevel eventual -Property Id, DisplayName, UserPrincipalName,UserType,OnPremisesSyncEnabled,CompanyName,CreationType
# Specify the output CSV file path
$outputCsvPath = "C:\\Users\\YourUsername\\Documents\\Users.csv"
# Create a custom object to store user data
$userData = @()
# Loop through each user and collect relevant data
foreach ($user in $users) {
$userObject = [PSCustomObject]@{
Id = $user.Id
DisplayName = $user.DisplayName
UserPrincipalName = $user.UserPrincipalName
UserType = $user.UserType
OnPremisesSyncEnabled = $user.OnPremisesSyncEnabled
CompanyName = $user.CompanyName
CreationType = $user.CreationType
}
$userData += $userObject
}
# Export user data to a CSV file
$userData | Export-Csv -Path $outputCsvPath -NoTypeInformation
# Disconnect from Microsoft Graph
Disconnect-MgGraph
Write-Host "User data exported to $outputCsvPath"
Felhasználók tömeges létrehozása
# Import the Microsoft Graph module
Import-Module Microsoft.Graph
# Authenticate to Microsoft Graph (you may need to provide your credentials)
Connect-MgGraph -Scopes "User.ReadWrite.All"
# Specify the path to the CSV file containing user data
$csvFilePath = "C:\\Path\\To\\Your\\Users.csv"
# Read the CSV file (adjust the column names as needed)
$usersData = Import-Csv -Path $csvFilePath
# Loop through each row in the CSV and create users \
foreach ($userRow in $usersData) {
$userParams = @{
DisplayName = $userRow.'Name [displayName] Required'
UserPrincipalName = $userRow.'User name [userPrincipalName] Required'
PasswordProfile = @{
Password = $userRow.'Initial password [passwordProfile] Required'
}
AccountEnabled = $true
MailNickName = $userRow.mailNickName
}
try {
New-MgUser @userParams
Write-Host "User $($userRow.UserPrincipalName) created successfully."
} catch {
Write-Host "Error creating user $($userRow.UserPrincipalName): $($_.Exception.Message)"
}
}
# Disconnect from Microsoft Graph
Disconnect-MgGraph
Write-Host "Bulk user creation completed."
Feljegyzés
Győződjön meg arról, hogy a CSV-fájl tartalmazza a szükséges oszlopokat (például; DisplayName
, UserPrincipalName
stb.). Módosítsa a szkriptet úgy is, hogy megfeleljen a CSV-fájl tényleges oszlopneveinek.
Felhasználók tömeges törlése
# Import the Microsoft Graph module
Import-Module Microsoft.Graph
# Authenticate to Microsoft Graph (you may need to provide your credentials)
Connect-MgGraph -Scopes "User.ReadWrite.All"
# Specify the path to the CSV file containing user data
$csvFilePath = "C:\\Path\\To\\Your\\Users.csv"
# Read the CSV file (adjust the column names as needed)
$usersData = Import-Csv -Path $csvFilePath
# Loop through each row in the CSV and delete users
foreach ($userRow in $usersData) {
try {
Remove-MgUser -UserId $userRow.UserPrincipalName -Confirm:$false
Write-Host "User $($userRow.UserPrincipalName) deleted successfully."
} catch {
Write-Host "Error deleting user $($userRow.UserPrincipalName): $($_.Exception.Message)"
}
}
# Disconnect from Microsoft Graph
Disconnect-MgGraph
Write-Host "Bulk user deletion completed."
Feljegyzés
Győződjön meg arról, hogy a CSV-fájl tartalmazza a szükséges oszlopokat (például UserPrincipalName
). Módosítsa a szkriptet úgy is, hogy megfeleljen a CSV-fájl tényleges oszlopneveinek.
Csoportok
Az összes csoport tömeges letöltése
Import-Module Microsoft.Graph.Groups
# Authenticate to Microsoft Graph (you may need to provide your credentials)
Connect-MgGraph -Scopes "Group.Read.All"
# Get the group members
$groups = Get-MgGroup -All | Select displayName, Id, groupTypes,mail
# Create a custom object to store group data
$groupData = @()
# Loop through each group and collect relevant data
foreach ($group in $groups) {
if ($group.groupTypes -contains "Unified"){$groupType = "Microsoft 365"}
else {$groupType = "Security"}
if ($group.groupTypes -contains "DynamicMembership"){$membershipType = "Dynamic"}
else {$membershipType = "Assigned"}
$groupObject = [PSCustomObject]@{
Id = $group.Id
DisplayName = $group.displayName
Mail = $group.mail
GroupType = $groupType
MemebershipType = $membershipType
}
$groupData += $groupObject
}
# Specify the output CSV file path
$outputCsvPath = "C:\\Users\\cewu\\Documents\\Groups.csv"
$groupData| Export-Csv -Path $outputCsvPath -NoTypeInformation
Write-Host "Group members exported to $outputCsvPath"
Csoport tagjainak tömeges letöltése
Import-Module Microsoft.Graph.Groups
# Authenticate to Microsoft Graph (you may need to provide your credentials)
Connect-MgGraph -Scopes "Group.Read.All,GroupMember.Read.All"
# Set the group ID of the group whose members you want to download
$groupId = "your_group_id"
# Get the group members
$members = Get-MgGroupMember -GroupId $groupId -All | select * -ExpandProperty additionalProperties | Select-Object @(
'id'
@{ Name = 'userPrincipalName'
Expression = { $_.AdditionalProperties["userPrincipalName"] }
}
@{ Name = 'displayName'
Expression = { $_.AdditionalProperties["displayName"] }
}
)
# Specify the output CSV file path
$outputCsvPath = "C:\\Users\\YourUserName\\Documents\\GroupMembers.csv"
$members| Export-Csv -Path $outputCsvPath -NoTypeInformation
# Disconnect from Microsoft Graph
Disconnect-MgGraph
Write-Host "Group members exported to $outputCsvPath"
Tagok hozzáadása tömegesen
Import-Module Microsoft.Graph.Groups
# Authenticate to Microsoft Graph (you may need to provide your credentials)
Connect-MgGraph -Scopes "GroupMember.ReadWrite.All"
# Import the CSV file
$members = Import-Csv -Path "C:\path\to\your\file.csv"
# Define the Group ID
$groupId = "your-group-id"
# Iterate over each member and add them to the group
foreach ($member in $members) {
try{
New-MgGroupMember -GroupId $groupId -DirectoryObjectId $member.memberObjectId
Write-Host "Added $($member.memberObjectId) to the group."
}
Catch{
Write-Host "Error adding member $($member.memberObjectId):$($_.Exception.Message)"
}
}
# Disconnect from Microsoft Graph
Disconnect-MgGraph
Tagok tömeges eltávolítása
Import-Module Microsoft.Graph.Groups
# Authenticate to Microsoft Graph (you may need to provide your credentials)
Connect-MgGraph -Scopes "GroupMember.ReadWrite.All"
# Import the CSV file
$members = Import-Csv -Path "C:\path\to\your\file.csv"
# Define the Group ID
$groupId = "your-group-id"
# Iterate over each member and add them to the group
foreach ($member in $members) {
try{
Remove-MgGroupMemberByRef -GroupId $groupId -DirectoryObjectId $member.memberObjectId \
Write-Host "Removed $($member.memberObjectId) from the group."
}
Catch{
Write-Host "Error removing member $($member.memberObjectId):$($_.Exception.Message)"
}
}
# Disconnect from Microsoft Graph
Disconnect-MgGraph
Eszközök
Az összes eszköz tömeges letöltése
Import-Module Microsoft.Graph
# Authenticate to Microsoft Graph (you may need to provide your credentials)
Connect-MgGraph -Scopes "Device.Read.All"
# Get all devices
$devices = Get-MgDevice -All |select displayName,deviceId,operatingSystem,operatingSystemVersion,isManaged,isCompliant,mdmAppId,registeredOwners,TrustType
# Specify the output CSV file path
$outputCsvPath = "C:\\Users\\YourUserName\\Documents\\Devices.csv"
$devices| Export-Csv -Path $outputCsvPath -NoTypeInformation
Write-Host "Devices exported to $outputCsvPath"