A felhasználói fényképek kezelése a Microsoft Graph PowerShell segítségével
A Microsoft Entrában csak egyetlen felhasználó profilképét állíthatja be vagy módosíthatja. A PowerShell segítségével több felhasználó felhasználói fotóit is letöltheti, letöltheti, beállíthatja és eltávolíthatja. Ebből a cikkből megtudhatja, hogyan kezelheti a felhasználói fényképeket a Microsoft Graph PowerShell segítségével.
A felhasználói fénykép megváltoztatása a Microsoft Entrában
Kövesse az alábbi lépéseket a felhasználói fénykép módosításához a Microsoft Entra felügyeleti központban:
- Nyissa meg a Microsoft Entra felügyeleti központot
- Bontsa ki az Identity elemet
- Kattintson a Felhasználók > Minden felhasználó lehetőségre
- Kattintson egy felhasználóra
- Kattintson a kamera ikonra
- Húzd át a fájlokat vagy Tallózás a fájlok között
- Kattintson a Feltöltés lehetőségre
- Sikeresen feltöltötte Amanda Hansen felhasználói profilfotóját
Ha több felhasználói fényképet szeretne feltölteni, akkor ez időt vesz igénybe a Microsoft Entra felügyeleti központban. A fényképek tömeges feltöltésének leggyorsabb és legpontosabb módja a PowerShell használata.
A következő lépésekben megmutatjuk, hogyan szerezhet be, tölthet le, állíthat be és távolíthat el tömegesen felhasználói fotókat.
Csatlakozzon a Microsoft Graph PowerShellhez
Mielőtt elkezdené, telepítenie kell a Microsoft Graph PowerShell modult.
Indítsa el a Windows PowerShellt rendszergazdaként, és futtassa az alábbi parancsot.
Install-Module Microsoft.Graph -ForceFontos: Mindig telepítse a Microsoft Graph PowerShell modul legújabb verzióját, mielőtt parancsmagot vagy szkriptet futtatna, hogy elkerülje a hibákat és a helytelen eredményeket.
Futtassa a Connect-MgGraph parancsmagot az alábbi hatókörökkel a Microsoft Graph hitelesítéshez.
Connect-MgGraph -Scopes "User.ReadWrite.All"Most, hogy minden készen áll, használhatja a parancsokat a Microsoft Graph PowerShell-lel.
Szerezzen be felhasználói fényképet a PowerShell segítségével
A Get-MgUserPhoto PowerShell-parancsmagot kell használnia annak ellenőrzéséhez, hogy egy felhasználói fiókban van-e feltöltött fénykép. Megjeleníti a felhasználó fénykép tulajdonságait.
Szerezzen be felhasználói fényképet egyetlen fiókhoz
Egyetlen fiók felhasználói fényképének megszerzéséhez meg kell adnia a felhasználói azonosítót.
Futtassa az alábbi PowerShell parancsot.
Get-MgUserPhoto -UserId "0f38d53f-cbe0-4844-86e9-1032a45ba31b"A PowerShell kimeneti eredménye a felhasználó fényképének méreteit mutatja pixelben.
Id Height Width
-- ------ -----
default 855 740 Ha a felhasználónak nincs profilfotója, az alábbi hibaüzenetet kapja.
Get-MgUserPhoto_Get: Exception of type 'Microsoft.Fast.Profile.Core.Exception.ImageNotFoundException' was thrown.
Status: 404 (NotFound)
ErrorCode: ErrorEntityNotFound
Date: 2023-12-13T21:14:21
Headers:
Transfer-Encoding : chunked
Vary : Accept-Encoding
Strict-Transport-Security : max-age=31536000
request-id : da195fb5-bc40-403b-b913-5e29686f5a36
client-request-id : 7547fa3b-973f-4366-baf9-846c8d177d2b
x-ms-ags-diagnostic : {"ServerInfo":{"DataCenter":"West Europe","Slice":"E","Ring":"5","ScaleUnit":"004","RoleInstance":"AM2PEPF0001E31A"}}
Date : Thu, 21 Dec 2023 11:27:00 GMTA felhasználói fotó követelmények:
- Felbontás: korlátlan (10 000 x 10 000 képponttal tesztelve)
- Méret: max. 4 MB
- Fájl: támogatja a PNG, JPEG, JPG, BMP fájlokat
Ha a méret nagyobb, mint 4 MB, tömörítse a képet. Ne használjon semmilyen online eszközt, mert egyesek a képeket a szerverükre mentik. Használjon helyi vagy más biztonságos eszközt, hogy a képek privátak maradjanak, amikor feltölti őket a webhelyükre.
Az összes felhasználói fotó tömeges lekérése
A felhasználói tulajdonságok összes fényképének megtekintéséhez futtassa az alábbi PowerShell-szkriptet.
- Adja meg a fájl elérési útját a 2. sorban
# Set CSV file path to save the results
$CSVPath = "C:\temp\PhotosStatus.csv"
# Connect with privileges
Connect-MgGraph -Scopes "User.ReadWrite.All"
$users = Get-MgUser -All
$results = foreach ($user in $users) {
$photo = Get-MgUserPhoto -UserId $user.Id -ErrorAction SilentlyContinue
$photoSet = ![string]::IsNullOrEmpty($photo)
$height = if ($photoSet) { $photo.Height } else { $null }
$width = if ($photoSet) { $photo.Width } else { $null }
[PSCustomObject]@{
UserPrincipalName = $user.UserPrincipalName
PhotoSet = $photoSet
Height = $height
Width = $width
}
}
$results | Sort-Object UserPrincipalName | Out-GridView -Title "Photos Status"
$results | Sort-Object UserPrincipalName | Export-Csv -Path "$CSVPath" -NoTypeInformation -Encoding UTF8Ez egy Out-GridView-ban adja ki a fénykép tulajdonságait.
A fotótulajdonságok eredményeit a C:\temp CSV-fájlba is exportálja. Az eredmények megtekintéséhez nyissa meg a CSV-fájlt a Microsoft Excel programmal.
Töltse le a felhasználói fényképet a PowerShell segítségével
A felhasználói fénykép letöltéséhez a Get-MgUserPhotoContent PowerShell parancsmagot kell használnia.
Felhasználói fénykép letöltése egyetlen fiókhoz
Szeretnénk letölteni Brenda Smith felhasználói fotóját. Tehát meg kell adnunk egy elérési utat az -OutFile paraméterben. Példánkban a C:\temp mappát, majd a UserPrincipalName mappát használjuk a hibák elkerülése érdekében.
Futtassa az alábbi PowerShell parancsot.
Get-MgUserPhotoContent -UserId "0f38d53f-cbe0-4844-86e9-1032a45ba31b" -OutFile "C:\temp\Brenda.Smith@m365info.com.png"Letölti a képet a megadott útvonalra.
Az összes felhasználói fénykép tömeges letöltése
Az összes felhasználói fotót letöltheti egy mappába, ahol minden kép a UserPrincipalName attribútummal lesz elnevezve.
Kövesse az alábbi lépéseket az összes felhasználói fénykép tömeges letöltéséhez:
- Hozzon létre egy új mappát a C:\temp mappában, és nevezze el UserPhotos
- Adja meg az útvonalat a 2. sorban
- Adja meg, hogy milyen típusú fájlba szeretné letölteni a képeket (png, jpg, jpeg vagy bmp) a következő után:$userUPN. a 20-as sorban
- Futtassa az alábbi PowerShell-szkriptet
# Specify the folder path where the user photos will be saved
$photoFolderPath = "C:\temp\UserPhotos"
# Connect with privileges
Connect-MgGraph -Scopes "User.ReadWrite.All"
# Get all Entra ID accounts
$users = Get-MgUser -All
# Iterate over each user in the $users collection
foreach ($user in $users) {
$userId = $user.Id
$userUPN = $user.UserPrincipalName
# Check if user photo content is available
$photo = Get-MgUserPhoto -UserId $userId -ErrorAction SilentlyContinue
if ($photo -ne $null) {
# Construct the path to save the user's photo using the Join-Path cmdlet
$photoPath = Join-Path $photoFolderPath "$userUPN.png"
# Download the user's photo
$userPhotoContent = Get-MgUserPhotoContent -UserId $userId -OutFile $photoPath -ErrorAction SilentlyContinue
if ($userPhotoContent -eq $null) {
Write-Host "Photo downloaded for user: $userUPN" -ForegroundColor Green
}
}
else {
Write-Host "Photo not found for user: $userUPN" -ForegroundColor Yellow
}
}Letölti az összes felhasználói fotót a megadott mappában.
Állítsa be a felhasználói fényképet a PowerShell segítségével
Nézzük meg, hogyan lehet beállítani vagy módosítani egy felhasználó és több felhasználói fiók felhasználói fényképét.
A felhasználói fénykép PowerShellre történő beállításához vagy lecseréléséhez a Set-MgUserPhotoContent parancsmagot használjuk.
Megjegyzés: Ha futtatja a Set-MgUserPhotoContent parancsmagot, és már van egy felhasználói fénykép, az felülírja azt.
Felhasználói fénykép beállítása egyetlen fiókhoz
Egy felhasználói fiók felhasználói fényképének beállításához meg kell adnia a kép elérési útját.
Be akarjuk állítani Brenda Smith felhasználói fotóját. Tehát meg kell adnunk egy elérési utat az -InFile paraméterben. Példánkban a C:\temp mappát, majd a UserPrincipalName mappát használjuk a hibák elkerülése érdekében.
Futtassa az alábbi PowerShell parancsot.
Set-MgUserPhotoContent -UserId "0f38d53f-cbe0-4844-86e9-1032a45ba31b" -Infile "C:\temp\Brenda.Smith@m365info.com.png"Beállítja vagy lecseréli a felhasználói fényképet a Microsoft Entrában.
Felhasználói fénykép beállítása több fiókhoz
Megmutatjuk, hogyan állíthat be felhasználói fényképeket több felhasználói fiókhoz. Ez a szkript lehetővé teszi több felhasználói fénykép módosítását CSV-fájl létrehozása nélkül.
Kövesse az alábbi lépéseket több felhasználói fénykép módosításához:
- Hozzon létre egy új mappát a C:\temp mappában, és nevezze el UserPhotos
- Mentsd el az összes frissíteni kívánt felhasználói képet a UserPhotos mappába
- Nevezze el az egyes felhasználói fotókat a UserPrincipalName névvel
- Adja meg a felhasználói képek útvonalát a 2. sorban
- Futtassa az alábbi PowerShell-szkriptet
# Specify the folder path where the user photos will be saved
$PhotoLocation = "c:\temp\UserPhotos\"
# Connect with privileges
Connect-MgGraph -Scopes "User.ReadWrite.All"
if (!(Test-Path ($PhotoLocation))) {
Write-Host "Can't find $PhotoLocation - Double check the user photos folder path"; break
}
$i = 0
# Get all Entra ID accounts
$Users = Get-MgUser -All
$ProgDelta = 100 / ($Users.Count); $CheckCount = 0; $UserNumber = 0
ForEach ($User in $Users) {
$UserNumber++
$UserStatus = $User.DisplayName + " [" + $UserNumber + "/" + $Users.Count + "]"
Write-Progress -Activity "Updating photo for" -Status $UserStatus -PercentComplete $CheckCount
$CheckCount += $ProgDelta
$UserPhoto = $PhotoLocation + $User.UserPrincipalName
$UserPhotoExtensions = @(".png", ".jpg", ".jpeg", ".bmp")
$UserPhotoPath = $UserPhotoExtensions | Where-Object { Test-Path ($UserPhoto + $_) } | Select-Object -First 1
if ($UserPhotoPath) {
# Update the photo
Write-Host "Updating photo for" $User.UserPrincipalName -ForegroundColor Green
Set-MgUserPhotoContent -UserId $User.Id -Infile ($UserPhoto + $UserPhotoPath)
$i++
}
else {
Write-Host "No photo available for" $User.UserPrincipalName
}
}
Write-Host "All done. $i User Photos updated" -ForegroundColor GreenTávolítsa el a felhasználói fényképet a PowerShell segítségével
Nézzük meg, hogyan lehet törölni egyetlen felhasználó és több felhasználói fiók felhasználói fényképét.
A felhasználói fénykép PowerShell segítségével történő eltávolításához a Remove-MgUserPhoto parancsmagot használjuk.
Egyetlen fiók felhasználói fényképének eltávolítása
Egyetlen felhasználói fiók fényképének eltávolításához meg kell adnia a felhasználói azonosítót.
Futtassa az alábbi PowerShell parancsot.
Remove-MgUserPhoto -UserId "0f38d53f-cbe0-4844-86e9-1032a45ba31b" -Confirm:$FalseTávolítsa el tömegesen az összes felhasználói fotót
Az összes felhasználói fénykép tömeges eltávolításához futtassa az alábbi PowerShell-szkriptet.
# Get all Entra ID accounts
$users = Get-MgUser -All
# Iterate over each user profile in the $users collection
foreach ($user in $users) {
$userId = $user.Id
$userUPN = $user.UserPrincipalName
# Check if user photo is available
$userPhoto = Get-MgUserPhoto -UserId $userId -ErrorAction SilentlyContinue
if ($userPhoto -ne $null) {
# Remove user photo if available
Remove-MgUserPhoto -UserId $userId
Write-Host "User photo removed for user: $userUPN" -ForegroundColor Green
}
else {
Write-Host "User photo not available to remove from user: $userUPN" -ForegroundColor Yellow
}
}Ez az!
További információ: Frissítse az Azure AD-felhasználókat a Microsoft Graph PowerShell segítségével »
Következtetés
Megtanulta a felhasználói fényképek kezelését a Microsoft Graph PowerShell segítségével. A folyamat megkönnyítése érdekében elengedhetetlen, hogy rendelkezzen a megfelelő PowerShell-parancsokkal vagy szkriptekkel. Letöltheti, letöltheti, beállíthatja és eltávolíthatja a felhasználói fotókat egyetlen felhasználóhoz, és az összes felhasználót tömegesen.
Tetszett ez a cikk? Azt is kedvelheti az Azure AD-felhasználók visszaállítása a Microsoft Graph PowerShell segítségével. Ne felejtsen el követni minket és megosztani ezt a cikket.









