Felhasználók kezelése Microsoft Entra PowerShell-lel

A felhasználók a Microsoft Entra ID-ban található Microsoft Entra munkahelyi vagy iskolai felhasználói fiókok, illetve személyes Microsoft-fiókok megfelelői. A Microsoft Entra PowerShell felhasználói erőforrása egy felhasználó ábrázolása, és a felhasználó számára releváns kapcsolatokat és erőforrásokat is tartalmaz.

A felhasználói erőforrás egyszerű módot kínál a felhasználói erőforrások elérésére és módosítására anélkül, hogy további hívásokat kellene végrehajtania, konkrét hitelesítési információkat kellene keresnie, és közvetlenül lekérdezéseket kellene kiadnia más Microsoft Entra PowerShell-objektumokkal szemben.

Prerequisites

A felhasználók Microsoft Entra PowerShell-lel való kezeléséhez a következőkre van szükség:

Hozzáférhet egy felhasználó adataihoz, és kezelheti az adatait a nevükben vagy egy saját identitással rendelkező alkalmazásként.

Felhasználó bevezetése

Egy felhasználó felvételéhez hozzon létre egy új felhasználói fiókot a Microsoft Entra ID-ban. Ez a folyamat magában foglalja a felhasználó profiljának beállítását, beleértve a megjelenítendő nevet, az e-mail-címet és a jelszót.

Felhasználó létrehozása

Ez a példa új felhasználót hoz létre.

Connect-Entra -Scopes 'User.ReadWrite.All'
$passwordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$passwordProfile.Password = '<Strong-Password>'
$userParams = @{
    DisplayName = 'New User'
    PasswordProfile = $passwordProfile
    UserPrincipalName = 'NewUser@contoso.com'
    AccountEnabled = $true
    MailNickName = 'NewUser'
}
New-EntraUser @userParams

A kimenet az újonnan létrehozott felhasználó adatait jeleníti meg.

DisplayName    Id                                     Mail    UserPrincipalName
-----------    --                                     ----    -----------------
New User       aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb           NewUser@contoso.com

Felhasználók tömeges létrehozása

Ha több felhasználót szeretne tömegesen létrehozni, használhat CSV-fájlt. A CSV-fájlnak tartalmaznia kell a szükséges felhasználói attribútumokat, például DisplayName: , UserPrincipalNameés PasswordProfile.

# Connect to Microsoft Entra PowerShell
Connect-Entra -Scopes 'User.ReadWrite.All'

# Create a new Password Profile for the new users. We'll be using the same password for all new users in this example
$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile
$PasswordProfile.Password = '<Your-Password>'

# Import the csv file. You will need to specify the path and file name of the CSV file in this cmdlet
$NewUsers = import-csv -Path '<path-to-your-csv-file>'

# Loop through all new users in the file to create them in Microsoft Entra ID
ForEach ($user in $NewUsers) {
    # Create a new user in Microsoft Entra ID
    New-EntraUser -UserPrincipalName $user.'EmailAddress' -DisplayName $user.'DisplayName' -GivenName $user.'FirstName' -Surname $user.'LastName' -Department $user.'Department' -MailNickname $user.'MailNickname' -AccountEnabled $true -PasswordProfile $passwordProfile
    }
FirstName Vezetéknév DisplayName E-mail cím Department MailNickName
Adele Vance Adele Vance adelev@contoso.com Marketing adelev

A kimenet az újonnan létrehozott felhasználók adatait jeleníti meg.

DisplayName Id                                   Mail UserPrincipalName
----------- --                                   ---- -----------------
Adele Vance aaaaaaaa-1111-2222-3333-bbbbbbbbbbbb      adelev@contoso.com

Felhasználó jelszavának frissítése

  1. A felhasználó jelszavának rendszergazda általi frissítéséhez használja a következő parancsot:

    Connect-Entra -Scopes 'Directory.AccessAsUser.All'
    $newPassword = '<strong-password>'
    $securePassword = ConvertTo-SecureString $newPassword -AsPlainText -Force
    Set-EntraUserPasswordProfile -UserId 'SawyerM@contoso.com' -Password $securePassword
    
  2. A bejelentkezett felhasználó (önkiszolgáló) jelszavának frissítéséhez használja a következő parancsot:

    Connect-Entra -Scopes 'Directory.AccessAsUser.All'
    $currentPassword = ConvertTo-SecureString '<strong-password>' -AsPlainText -Force
    $newPassword = ConvertTo-SecureString '<strong-password>' -AsPlainText -Force
    Set-EntraSignedInUserPassword -CurrentPassword $currentPassword -NewPassword $newPassword
    

    Ez a parancs lehetővé teszi, hogy a felhasználók rendszergazdai jogosultságok nélkül módosíthassák a saját jelszavukat.

Fénykép feltöltése vagy lekérése a felhasználó számára

  1. Fénykép feltöltése egy felhasználó számára.

    Connect-Entra -Scopes 'User.ReadWrite.All'
    Set-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com' -FilePath 'D:\UserThumbnailPhoto.jpg'
    

    Ez a példa a UserId paraméterrel megadott felhasználó miniatűrképét a FilePath paraméterrel megadott képre állítja.

  2. A felhasználó fényképének lekérése.

    Connect-Entra -Scopes 'ProfilePhoto.Read.All'
    Get-EntraUserThumbnailPhoto -UserId 'SawyerM@contoso.com'
    

    Ez a példa bemutatja, hogyan kérhető le egy felhasználó miniatűr fényképe, amely a UserId paraméter értéke alapján van megadva.

Rendszergazdai szerepkörök biztosítása a felhasználóknak a szervezetben

Ha rendszergazdai szerepköröket biztosít a felhasználóknak a szervezetben, az lehetővé teszi számukra, hogy bizonyos feladatokat hajtsanak végre és felügyeljék az erőforrásokat. Felhasználókat hozzárendelhet olyan szerepkörökhöz, mint a csoportadminisztrátor, a felhasználói rendszergazda vagy más egyéni szerepkörök.

Ha tudni szeretné, hogyan rendelhet szerepköröket a felhasználókhoz Microsoft Entra PowerShell használatával, olvassa el a Szerepkörök hozzárendelése felhasználókhoz című témakört.

Keresés a felhasználók között

A szervezet felhasználóit különböző attribútumokkal keresheti meg, példáuldisplayName: , mailNickname, userPrincipalNamedepartment és jobTitle. Az alábbi példa bemutatja, hogyan kereshet egy felhasználót a(z) userPrincipalName alapján.

Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Filter "userPrincipalName eq 'SawyerM@contoso.com'"

A kimenet egy keresés alapján jeleníti meg a userPrincipalName felhasználói adatokat.

DisplayName      Id                                   Mail                 UserPrincipalName     
-----------      --                                   ----                 -----------------     
Sawyer Miller   aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb SawyerM@contoso.com  SawyerM@contoso.com   

Felhasználók ellenőrzése adott szempontok alapján

Bizonyos feltételek, például bejelentkezési tevékenység és csoporttagság alapján is naplózhatja a felhasználókat. Ez a funkció segít nyomon követni a felhasználói tevékenységeket, és kezelni az erőforrásokhoz való hozzáférésüket.

Felhasználó bejelentkezési tevékenységének lekérése

Az alábbi példa bemutatja, hogyan kérhető le egy adott felhasználó bejelentkezési tevékenysége.

Connect-Entra -Scopes 'User.Read.All','AuditLog.Read.All'
Get-EntraUser -UserId 'SawyerM@contoso.com' -Property 'SignInActivity' | 
  Select-Object -Property Id, DisplayName, UserPrincipalName -ExpandProperty 'SignInActivity'

A kimenet a felhasználó bejelentkezési tevékenységét jeleníti meg.

lastNonInteractiveSignInRequestId : bbbbbbbb-1111-2222-3333-aaaaaaaaaaaa
lastSignInRequestId               : cccccccc-2222-3333-4444-dddddddddddd
lastSuccessfulSignInDateTime      : 9/9/2024 1:12:13 PM
lastNonInteractiveSignInDateTime  : 9/9/2024 1:12:13 PM
lastSuccessfulSignInRequestId     : bbbbbbbb-1111-2222-3333-aaaaaaaaaaaa
lastSignInDateTime                : 9/7/2024 9:15:41 AM
id                                : aaaaaaaa-bbbb-cccc-1111-222222222222
displayName                       : Sawyer Miller
userPrincipalName                 : SawyerM@contoso.com

Az összes felhasználó bejelentkezési tevékenységének letöltése

Az alábbi példa lekéri az összes licencelt felhasználói fiókot és az utolsó sikeres bejelentkezési tevékenységet. Az adatokat egy CSV-fájlba exportálja további elemzés céljából.

# Connect to Microsoft Entra PowerShell  

Connect-Entra -Scopes 'User.Read.All','AuditLog.Read.All','Directory.Read.All'

try {
     Get-EntraUser -All -Property Id, UserPrincipalName, DisplayName, SignInActivity -ErrorAction Stop |
         Select-Object `
             Id, `
             UserPrincipalName, `
             DisplayName, `
             @{ Name = 'LastSignInDateTime';           Expression = { $_.SignInActivity.LastSignInDateTime } }, `
             @{ Name = 'LastSuccessfulSignInDateTime'; Expression = { $_.SignInActivity.LastSuccessfulSignInDateTime } } |
         Export-Csv -Path 'C:\temp\lastSignIns.csv' -NoTypeInformation -Encoding UTF8 -ErrorAction Stop

     Write-Host "Sign-in activity exported successfully to lastSignIns.csv"
 }
 catch {
     Write-Error "Failed to retrieve or export data: $_"
 }

Ez a példa a szervezet összes felhasználójának utolsó és utolsó sikeres bejelentkezési dátumát is lekéri. A rendszer ezután exportálja az adatokat egy, a lastSignIns.csv könyvtárban elnevezett C:\temp CSV-fájlba.

Felhasználó csoporttagságainak listázása

Az alábbi példa azokat a csoportokat sorolja fel, amelyeknek a felhasználó tagja.

Connect-Entra -Scopes 'User.Read'
Get-EntraUserMembership -UserId 'SawyerM@contoso.com' |
 Select-Object Id, displayName, createdDateTime, '@odata.type' |
 Format-Table -AutoSize

A kimenet a felhasználó tagságát jeleníti meg.

Id                                   displayName                         createdDateTime      @odata.type
--                                   -----------                         ---------------      -----------
00aa00aa-bb11-cc22-dd33-44ee44ee44ee Contoso                             2024-10-06T08:49:16Z #microsoft.graph.group
22cc22cc-dd33-ee44-ff55-66aa66aa66aa Contoso marketing                   2024-10-07T01:17:28Z #microsoft.graph.group
55ff55ff-aa66-bb77-cc88-99dd99dd99dd Pacific Admin Unit                                       #microsoft.graph.administrativeUnit

Az alábbi parancsokkal listázhatja azokat az entitásokat, amelyekhez a felhasználó tartozik:

Egy felhasználó felettesének és közvetlen beosztottjainak lekérése, valamint felettes hozzárendelése egy felhasználóhoz

  1. Kérje le a felhasználó felettesét.

    Connect-Entra -Scopes 'User.Read.All'
    Get-EntraUserManager -UserId 'SawyerM@contoso.com' |
        Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType |
        Format-Table -AutoSize
    

    A kimenet a felhasználó kezelőjét jeleníti meg.

    id                                    displayName     userPrincipalName                    createdDateTime           accountEnabled  userType
    --                                    -----------     -----------------                    ---------------           --------------  --------
    11bb11bb-cc22-dd33-ee44-55ff55ff55ff  Patti Fernandez PattiF@Contoso.com                 10/7/2024 12:32:01 AM      True           Member
    
  2. Listázhatja azokat a felhasználókat, akik egy adott felhasználónak jelentenek.

    Connect-Entra -Scopes 'User.Read','User.Read.All'
    Get-EntraUserDirectReport -UserId 'SawyerM@contoso.com' |
        Select-Object Id, displayName, userPrincipalName, createdDateTime, accountEnabled, userType |
        Format-Table -AutoSize
    

    A kimenet a felhasználó közvetlen jelentését jeleníti meg.

    id                                    displayName     userPrincipalName           createdDateTime       accountEnabled  userType
    --                                    -----------     -----------------           ---------------       --------------  --------
    bbbbbbbb-1111-2222-3333-cccccccccccc  Christie Cline  ChristieC@Contoso.com       10/7/2024 12:32:25 AM  True           Member
    aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb  Isaiah Langer   IsaiahL@Contoso.com         10/7/2024 12:33:16 AM  True           Member
    
  3. Rendeljen hozzá egy vezetőt egy felhasználóhoz.

    Connect-Entra -Scopes 'User.ReadWrite.All'
    Set-EntraUserManager -UserId 'SawyerM@contoso.com' -ManagerId 'AdeleV@contoso.com'
    
    • -UserId- megadja egy felhasználó azonosítóját (UserPrincipalName vagy User ObjectId) a Microsoft Entra ID.
    • -ManagerId - megadja a vezetőként hozzárendelendő Microsoft Entra ID-objektum azonosítóját, UserPrincipalName vagy User ObjectId formájában.

Vezetők nélküli felhasználók listázása

Ez a példa a felettes nélküli felhasználókat sorolja fel, amelyek segítenek azonosítani az árva fiókokat, szolgáltatásfiókokat vagy helytelenül konfigurált profilokat a törléshez.

Connect-Entra -Scopes 'User.Read.All'
$allUsers = Get-EntraUser -All
$usersWithoutManagers = foreach ($user in $allUsers) {
    $manager = Get-EntraUserManager -UserId $user.Id -ErrorAction SilentlyContinue
    if (-not $manager) {
        [PSCustomObject]@{
            Id                = $user.Id
            DisplayName       = $user.DisplayName
            UserPrincipalName = $user.UserPrincipalName
            UserType          = $user.userType
            AccountEnabled    = $user.accountEnabled
            CreatedDateTime   = $user.createdDateTime
        }
    }
}
$usersWithoutManagers | Format-Table Id, DisplayName, UserPrincipalName, CreatedDateTime, UserType, AccountEnabled  -AutoSize

A kimenet a kezelő nélküli felhasználókat sorolja fel.

Id                                   DisplayName         UserPrincipalName                           CreatedDateTime           UserType   AccountEnabled
--                                   -----------         -----------------                           ---------------           --------   --------------
cccccccc-2222-3333-4444-dddddddddddd New User           NewUser@tenant.com                         10/7/2024 2:24:26 PM      Member     True
bbbbbbbb-1111-2222-3333-cccccccccccc Sawyer Miller     SawyerM@contoso.com                        10/7/2024 12:33:36 AM     Member     True

Letiltott felhasználók listázása

Az alábbi példa a letiltott fiókok listáját hozza létre.

Connect-Entra -Scopes 'User.ReadWrite.All'
Get-EntraUser -Filter "accountEnabled eq false" | Select-Object DisplayName, Id, Mail, UserPrincipalName

A kimenet a letiltott felhasználókat sorolja fel.

DisplayName    Id                                   Mail userPrincipalName
-----------    --                                   ---- -----------------
Sawyer Miller  hhhhhhhh-7777-8888-9999-iiiiiiiiiiii      SawyerM@contoso.com
Kez Michael    eeeeeeee-4444-5555-6666-ffffffffffff      KezM@contoso.com