Weboldal keresés

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:

  1. Nyissa meg a Microsoft Entra felügyeleti központot
  2. Bontsa ki az Identity elemet
  3. Kattintson a Felhasználók > Minden felhasználó lehetőségre
  4. Kattintson egy felhasználóra

  1. Kattintson a kamera ikonra

  1. Húzd át a fájlokat vagy Tallózás a fájlok között

  1. Kattintson a Feltöltés lehetőségre

  1. 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 -Force

Fontos: 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 GMT

A 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 UTF8

Ez 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:

  1. Hozzon létre egy új mappát a C:\temp mappában, és nevezze el UserPhotos
  2. Adja meg az útvonalat a 2. sorban
  3. 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
  4. 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:

  1. Hozzon létre egy új mappát a C:\temp mappában, és nevezze el UserPhotos
  2. Mentsd el az összes frissíteni kívánt felhasználói képet a UserPhotos mappába
  3. Nevezze el az egyes felhasználói fotókat a UserPrincipalName névvel

  1. Adja meg a felhasználói képek útvonalát a 2. sorban
  2. 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 Green

Tá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:$False

Tá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.

Kapcsolódó cikkek