Get-EntraUser

Hiermee haalt u een gebruiker op.

Syntax

GetQuery (Standaard)

Get-EntraUser

    [-Filter <String>]
    [-All]
    [-Top <Int32>]
    [-PageSize <Int32>]
    [-Property <String[]>]
    [<CommonParameters>]

GetByValue

Get-EntraUser

    [-SearchString <String>]
    [-All]
    [-Property <String[]>]
    [<CommonParameters>]

GetById

Get-EntraUser

    -UserId <String>
    [-All]
    [-Property <String[]>]
    [<CommonParameters>]

GetFiltered

Get-EntraUser

    [-All]
    [-Top <Int32>]
    [-PageSize <Int32>]
    [-EnabledFilter <String>]
    [-HasErrorsOnly]
    [-LicenseReconciliationNeededOnly]
    [-Synchronized]
    [-UnlicensedUsersOnly]
    [-Property <String[]>]
    [<CommonParameters>]

Description

Met de Get-EntraUser cmdlet wordt een gebruiker opgehaald uit Microsoft Entra ID.

Voorbeelden

Voorbeeld 1: Top drie gebruikers ophalen

Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Top 3
DisplayName      Id                                   Mail                  UserPrincipalName
-----------      --                                   ----                  -----------------
Angel Brown      cccccccc-2222-3333-4444-dddddddddddd AngelB@contoso.com    AngelB@contoso.com
Avery Smith      dddddddd-3333-4444-5555-eeeeeeeeeeee AveryS@contoso.com    AveryS@contoso.com
Sawyer Miller    eeeeeeee-4444-5555-6666-ffffffffffff SawyerM@contoso.com   SawyerM@contoso.com

In dit voorbeeld ziet u hoe u de drie belangrijkste gebruikers kunt ophalen uit Microsoft Entra ID. U kunt -Limit gebruiken als alias voor -Top.

Voorbeeld 2: Een gebruiker ophalen op id

Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -UserId 'SawyerM@contoso.com'
DisplayName Id                                   Mail                                 UserPrincipalName
----------- --                                   ----                                 -----------------
Sawyer Miller bbbbbbbb-1111-2222-3333-cccccccccccc sawyerm@tenant.com sawyerm@tenant.com

Met deze opdracht wordt de opgegeven gebruiker ophaalt.

  • -UserId Hiermee geeft u de id op als user principal name (UPN) of UserId.

Voorbeeld 3: Zoeken tussen opgehaalde gebruikers

Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -SearchString 'New'
DisplayName        Id                                   Mail UserPrincipalName
-----------        --                                   ---- -----------------
New User88         bbbbbbbb-1111-2222-3333-cccccccccccc      demo99@tenant.com
New User           cccccccc-2222-3333-4444-dddddddddddd      NewUser@tenant.com

Met deze cmdlet worden alle gebruikers opgehaald die overeenkomen met de waarde van SearchString op basis van de eerste tekens in DisplayName of UserPrincipalName.

Voorbeeld 4: het wachtwoordbeleid van de gebruiker ophalen

Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -UserId 'SawyerM@contoso.com' `
              -Property UserPrincipalName, PasswordPolicies |
    Select-Object UserPrincipalName,
                  @{
                      Name = "PasswordNeverExpires"
                      Expression = { $_.PasswordPolicies -contains "DisablePasswordExpiration" }
                  }
userPrincipalName            PasswordNeverExpires
-----------------            --------------------
SawyerM@contoso.com                 True

In dit voorbeeld ziet u hoe u het wachtwoordbeleid van een gebruiker kunt ophalen. Als u het wilt bijwerken, voert u het uit Get-EntraUser -UserId SawyerM@contoso.com | Set-EntraUser -PasswordPolicies DisablePasswordExpiration.

Voorbeeld 5: MFA-rapport per gebruiker

Connect-Entra -scope 'User.Read.All', 'UserAuthenticationMethod.Read.All'
$users = Get-EntraUser -All -Select Id, UserPrincipalName, DisplayName
Write-Output "Amount of requests within `"fetchAll`": $($users.Count)"
$usersReport = [System.Collections.ArrayList]::new()
$users | ForEach-Object {

    $userProperties = @{
        Id                = $_.Id
        DisplayName       = $_.DisplayName
        UserPrincipalName = $_.UserPrincipalName
        PerUserMFAState   = (Get-EntraBetaUserAuthenticationRequirement -UserId $_.Id).PerUserMFAState
    }

    [void]$usersReport.Add([PSCustomObject]$userProperties)
}

$usersReport | Format-Table -AutoSize
UserPrincipalName       DisplayName       PerUserMFAState Id
-----------------       -----------       --------------- --
AngelB@contoso.com      Angel Brown       enforced        cccccccc-2222-3333-4444-dddddddddddd
AveryS@contoso.com      Avery Smith       disabled        dddddddd-3333-4444-5555-eeeeeeeeeeee
SawyerM@contoso.com     Sawyer Miller     enforced        eeeeeeee-4444-5555-6666-ffffffffffff
ChristieC@contoso.com   Christie Cline    enabled         bbbbbbbb-1111-2222-3333-cccccccccccc
PattiF@contoso.com      Patti Fernandez   disabled        aaaaaaaa-bbbb-cccc-1111-222222222222

In dit voorbeeld ziet u een rapport met de MFA-status per gebruiker.

Opmerking: Microsoft het gebruik van beleid voor voorwaardelijke toegang en standaardinstellingen voor beveiliging voor het beheren van meervoudige verificatie (MFA) wordt aangeraden in plaats van te vertrouwen op verouderde MFA per gebruiker.

Voorbeeld 6: Een gebruiker ophalen op userPrincipalName

Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Filter "userPrincipalName eq 'SawyerM@contoso.com'"
DisplayName Id                                   Mail UserPrincipalName
----------- --                                   ---- -----------------
Sawyer Miller    cccccccc-2222-3333-4444-dddddddddddd      SawyerM@contoso.com

Met deze opdracht wordt de opgegeven gebruiker ophaalt.

Voorbeeld 7: Een gebruiker ophalen door MailNickname

Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Filter "startsWith(MailNickname,'Ada')"
DisplayName     Id                                   Mail                                UserPrincipalName
-----------     --                                   ----                                -----------------
Mark Adams bbbbbbbb-1111-2222-3333-cccccccccccc Adams@contoso.com Adams@contoso.com

In dit voorbeeld halen we alle gebruikers op waarvan MailNickname begint met Ada.

Voorbeeld 8: SignInActivity van een gebruiker ophalen

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'
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

In dit voorbeeld ziet u hoe u de SignInActivity van een specifieke gebruiker ophaalt door een eigenschap te selecteren.

Voorbeeld 9: Gebruikers weergeven met uitgeschakelde accounts

Connect-Entra -Scopes 'User.Read.All'
Get-EntraUser -Filter "accountEnabled eq false" | Select-Object DisplayName, Id, Mail, UserPrincipalName
DisplayName        Id                                   Mail UserPrincipalName
-----------        --                                   ---- -----------------
New User           cccccccc-2222-3333-4444-dddddddddddd      NewUser@tenant.com

In dit voorbeeld ziet u hoe u alle gebruikers met uitgeschakelde accounts ophaalt.

Voorbeeld 10: Gebruikers weergeven die zijn gebaseerd op een specifiek land

Connect-Entra -Scopes 'User.Read.All'
$usersInCanada = Get-EntraUser -Filter "Country eq 'Canada'"
$usersInCanada | Select-Object Id, DisplayName, UserPrincipalName, OfficeLocation, Country | Format-Table -AutoSize
Id                                   DisplayName   UserPrincipalName         OfficeLocation   Country
--                                   -----------   -----------------         --------------   -------
cccccccc-2222-3333-4444-dddddddddddd  New User     NewUser@tenant.com        23/2102          Canada

In dit voorbeeld ziet u hoe u alle gebruikers ophaalt die zijn gebaseerd op Canada.

Voorbeeld 11: Aantal gebruikers per afdeling weergeven

Connect-Entra -Scopes 'User.Read.All'
$departmentCounts = Get-EntraUser -All | Group-Object -Property Department | Select-Object Name, @{Name="MemberCount"; Expression={$_.Count}}
$departmentCounts | Format-Table Name, MemberCount -AutoSize
Name                 MemberCount
----                 -----------
                               7
Engineering                    2
Executive Management           1
Finance                        1
HR                             1

In dit voorbeeld ziet u hoe u het aantal gebruikers op elke afdeling ophaalt.

Voorbeeld 12: uitgeschakelde gebruikers weergeven met actieve licenties

Connect-Entra -Scopes 'User.Read.All'
$disabledUsersWithLicenses = Get-EntraUser -Filter "accountEnabled eq false" -All | Where-Object {
    $_.AssignedLicenses -ne $null -and $_.AssignedLicenses.Count -gt 0
}
$disabledUsersWithLicenses | Select-Object Id, DisplayName, UserPrincipalName, AccountEnabled | Format-Table -AutoSize
Id                                   DisplayName  UserPrincipalName           AccountEnabled
--                                   -----------  -----------------           --------------
cccccccc-2222-3333-4444-dddddddddddd  New User     NewUser@tenant.com          False

In dit voorbeeld ziet u hoe u uitgeschakelde gebruikers met actieve licenties ophaalt.

Voorbeeld 13: Gastgebruikers ophalen met actieve licenties

Connect-Entra -Scopes 'User.Read.All'
$guestUsers = Get-EntraUser -Filter "userType eq 'Guest'" -All
$guestUsersWithLicenses = foreach ($guest in $guestUsers) {
    if ($guest.AssignedLicenses.Count -gt 0) {
        [PSCustomObject]@{
            Id                = $guest.Id
            DisplayName       = $guest.DisplayName
            UserPrincipalName = $guest.UserPrincipalName
            AssignedLicenses  = ($guest.AssignedLicenses | ForEach-Object { $_.SkuId }) -join ", "
        }
    }
}
$guestUsersWithLicenses | Format-Table Id, DisplayName, UserPrincipalName, AssignedLicenses -AutoSize
Id                                   DisplayName  UserPrincipalName                                  AssignedLicenses
--                                   -----------  -----------------                                  ----------------
cccccccc-2222-3333-4444-dddddddddddd Sawyer Miller sawyerm_gmail.com#EXT#@contoso.com c42b9cae-ea4f-4ab7-9717-81576235ccac

In dit voorbeeld ziet u hoe u gastgebruikers met actieve licenties ophaalt.

Voorbeeld 14: Gebruikers weergeven met een specifieke licentie

Connect-Entra -Scopes 'User.Read.All'
$skuId = (Get-EntraSubscribedSku | Where-Object { $_.SkuPartNumber -eq 'POWERAPPS_DEV' }).SkuId
Get-EntraUser -Filter "assignedLicenses/any(l:l/skuId eq $skuId)" -Select id, displayName, userPrincipalName, userType, accountEnabled, assignedLicenses |
Select-Object id, displayName, userPrincipalName, userType, accountEnabled | Format-Table -AutoSize
id                                   displayName     userPrincipalName        userType accountEnabled
--                                   -----------     -----------------        -------- --------------
cccccccc-2222-3333-4444-dddddddddddd Angel Brown     AngelB@contoso.com       Member   True
dddddddd-3333-4444-5555-eeeeeeeeeeee Avery Smith     AveryS@contoso.com       Member   True

In dit voorbeeld ziet u hoe u gebruikers met een specifieke licentie ophaalt.

Voorbeeld 15: Gebruikers ophalen zonder managers

Connect-Entra -Scopes 'User.Read.All'
$allUsers = Get-EntraUser -All
$usersWithoutManagers = foreach ($user in $allUsers) {
    $manager = Get-EntraUserManager -ObjectId $user.Id -ErrorAction SilentlyContinue
    if (-not $manager) {
        [PSCustomObject]@{
            Id                = $user.Id
            DisplayName       = $user.DisplayName
            UserPrincipalName = $user.UserPrincipalName
        }
    }
}
$usersWithoutManagers | Format-Table Id, DisplayName, UserPrincipalName -AutoSize
Id                                   DisplayName     UserPrincipalName
--                                   -----------     -----------------
cccccccc-2222-3333-4444-dddddddddddd  New User       NewUser@tenant.com
bbbbbbbb-1111-2222-3333-cccccccccccc  Sawyer Miller  SawyerM@contoso.com

In dit voorbeeld ziet u hoe u gebruikers zonder managers ophaalt.

Voorbeeld 16: Alle gastgebruikers weergeven

Connect-Entra -Scopes 'User.Read.All'
$guestUsers = Get-EntraUser -Filter "userType eq 'Guest'" -All
$guestUsers | Select-Object DisplayName, UserPrincipalName, Id, createdDateTime, creationType, accountEnabled, UserState | Format-Table -AutoSize
DisplayName     UserPrincipalName                                 Id                                   CreatedDateTime       CreationType   AccountEnabled  UserState
-----------     -----------------                                 --                                   ---------------       ------------   --------------  ---------
Sawyer Miller   sawyerm_gmail.com#EXT#@contoso.com                bbbbbbbb-1111-2222-3333-cccccccccccc 9/13/2024 6:37:33 PM  Invitation     True            Accepted

In dit voorbeeld ziet u hoe u alle gastgebruikers ophaalt.

Voorbeeld 17: vijf onlangs gemaakte gebruikers weergeven

Get-EntraUser -All | Sort-Object -Property createdDateTime -Descending | Select-Object -First 5
DisplayName       Id                                   Mail                  UserPrincipalName
-----------       --                                   ----                  -----------------
Angel Brown       cccccccc-2222-3333-4444-dddddddddddd  AngelB@contoso.com    AngelB@contoso.com
Avery Smith       dddddddd-3333-4444-5555-eeeeeeeeeeee  AveryS@contoso.com    AveryS@contoso.com
Sawyer Miller     eeeeeeee-4444-5555-6666-ffffffffffff  SawyerM@contoso.com   SawyerM@contoso.com
Christie Cline    bbbbbbbb-1111-2222-3333-cccccccccccc  ChristieC@contoso.com ChristieC@contoso.com
Patti Fernandez   aaaaaaaa-bbbb-cccc-1111-222222222222  PattiF@contoso.com    PattiF@contoso.com

In dit voorbeeld ziet u hoe u de onlangs gemaakte gebruikers ophaalt.

Voorbeeld 18: Lijst met gebruikers met de rol Globale beheerder

Connect-Entra -Scopes 'User.Read.All', 'RoleManagement.Read.Directory'
$roleId = Get-EntraDirectoryRoleTemplate | Where-Object { $_.DisplayName -eq 'Global Administrator' } | Select-Object -ExpandProperty Id
$globalAdmins = Get-EntraDirectoryRoleAssignment -Filter "roleDefinitionId eq '$roleId'" | ForEach-Object {
    Get-EntraUser -UserId $_.PrincipalId
}
$globalAdmins | Select-Object Id, DisplayName, UserPrincipalName, CreatedDateTime, AccountEnabled | Format-Table -AutoSize
id                                   displayName   userPrincipalName        createdDateTime          accountEnabled
--                                   -----------   -----------------        ---------------          --------------
cccccccc-2222-3333-4444-dddddddddddd Angel Brown   AngelB@contoso.com       3/7/2024 12:34:59 AM     True
dddddddd-3333-4444-5555-eeeeeeeeeeee Avery Smith   AveryS@contoso.com       10/1/2024 9:47:06 AM     True

In dit voorbeeld ziet u hoe u alle gebruikers met een specifieke rol, zoals Global Administrator. Microsoft raadt aan om de rol Globale beheerder toe te wijzen aan minder dan vijf personen voor aanbevolen procedures. Bekijk best practices.

Voorbeeld 19: alle gebruikers weergeven met ingetrokken sessies in de afgelopen 30 dagen

Connect-Entra -Scopes 'User.Read.All'
$pastDate = (Get-Date).AddDays(-30).ToUniversalTime()
Get-EntraUser | Where-Object { $_.signInSessionsValidFromDateTime -ge $pastDate } |
Select-Object DisplayName, UserPrincipalName, signInSessionsValidFromDateTime
displayName     userPrincipalName      signInSessionsValidFromDateTime
-----------     -----------------      -------------------------------
Angel Brown     AngelB@contoso.com     03/03/2025 16:13:47
Avery Smith     AveryS@contoso.com     03/03/2025 16:05:02

In dit voorbeeld ziet u hoe u alle gebruikers met ingetrokken sessies in de afgelopen 30 dagen weergeeft.

Parameters

-All

Alle pagina's weergeven.

Parametereigenschappen

Type:System.Management.Automation.SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-EnabledFilter

Hiermee filtert u gebruikers op basis van de status van hun accounts. Geldige waarden zijn EnabledOnly en DisabledOnly. Wanneer deze is opgegeven, voegt de cmdlet een accountEnabled beperking toe aan een bestaande -Filter expressie.

Parametereigenschappen

Type:System.String
Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Geen

Parametersets

GetFiltered
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Filter

Hiermee geeft u een OData v4.0-filterinstructie op. Met deze parameter bepaalt u welke objecten worden geretourneerd. Meer informatie over het uitvoeren van query's met OData vindt u hier.

Parametereigenschappen

Type:System.String
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

GetQuery
Position:Named
Verplicht:False
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-HasErrorsOnly

Retourneert alleen gebruikers met een of meer serviceinrichtings- of validatiefouten (weergegeven via de serviceProvisioningErrors verzameling). Gebruik deze schakeloptie om snel identiteiten te identificeren waarvoor beheerherstel is vereist.

Parametereigenschappen

Type:System.Management.Automation.SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Geen

Parametersets

GetFiltered
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-LicenseReconciliationNeededOnly

Retourneert alleen gebruikers van wie serviceinrichtingsfouten licentiegerelateerde problemen bevatten die aangeven dat licentieafstemming nodig is (bijvoorbeeld onvoldoende licenties, afhankelijkheidsschendingen, wederzijds exclusieve plannen). Intern komt de cmdlet overeen met veelvoorkomende licentiefoutpatronen om de resultatenset te beperken.

Parametereigenschappen

Type:System.Management.Automation.SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Geen

Parametersets

GetFiltered
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-PageSize

Wanneer -PageSize is opgegeven, kan de opdracht meerdere netwerkoproepen uitvoeren om gegevens in segmenten (pagina's) op te halen, waarna deze de limiet bereikt die is gedefinieerd door -Top of -All, afhankelijk van welke wordt gebruikt.

Parametereigenschappen

Type:System.Int32
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-Property

Hiermee geeft u eigenschappen die moeten worden geretourneerd.

Parametereigenschappen

Type:

System.String[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Selecteren

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-SearchString

Hiermee geeft u een zoekreeks op.

Parametereigenschappen

Type:System.String
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

GetVague
Position:Named
Verplicht:False
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-Synchronized

Retourneert alleen gebruikers die zijn gesynchroniseerd vanuit on-premises Active Directory (die metonPremisesSyncEnabled eq true). Dit is handig voor het onderscheiden van cloudidentiteiten van hybride beheerde identiteiten.

Parametereigenschappen

Type:System.Management.Automation.SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Geen

Parametersets

GetFiltered
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Top

Hiermee geeft u het maximum aantal records dat moet worden geretourneerd.

Parametereigenschappen

Type:System.Int32
Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Limit

Parametersets

GetQuery
Position:Named
Verplicht:False
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-UnlicensedUsersOnly

Retourneert alleen gebruikers die geen toegewezen licenties hebben (assignedLicenses aantal is gelijk aan 0). Dit helpt gebruikers te identificeren die mogelijk nog niet over de vereiste servicetoegang beschikken.

Parametereigenschappen

Type:System.Management.Automation.SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Geen

Parametersets

GetFiltered
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-UserId

Hiermee geeft u de id (als User Principal Name (UPN) of UserId) van een gebruiker in Microsoft Entra ID.

Parametereigenschappen

Type:System.String
Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:ObjectId, UPN, Identity, Hoofdgebruikersnaam

Parametersets

GetById
Position:Named
Verplicht:True
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

CommonParameters

Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.