Get-EntraUser

Získá uživatele.

Syntax

GetQuery (Výchozí)

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

Rutina Get-EntraUser získá uživatele z Microsoft Entra ID.

Příklady

Příklad 1: Získání prvních tří uživatelů

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

Tento příklad ukazuje, jak získat prvních tři uživatele z Microsoft Entra ID. Jako alias pro -Limitmůžete použít -Top .

Příklad 2: Získání uživatele podle 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

Tento příkaz získá zadaného uživatele.

  • -UserId Určuje ID jako hlavní název uživatele (UPN) nebo UserId.

Příklad 3: Hledání mezi načteným uživateli

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

Tato rutina získá všechny uživatele, kteří odpovídají hodnotě SearchString s prvními znaky v DisplayName nebo UserPrincipalName.

Příklad 4: Načtení zásad hesel uživatele

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

Tento příklad ukazuje, jak získat zásady hesel uživatele. Pokud ho chcete aktualizovat, spusťte Get-EntraUser -UserId SawyerM@contoso.com | Set-EntraUser -PasswordPolicies DisablePasswordExpirationpříkaz .

Příklad 5: Sestava vícefaktorového ověřování pro jednotlivé uživatele

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

Tento příklad ukazuje sestavu stavu vícefaktorového ověřování pro jednotlivé uživatele.

Poznámka: Microsoft doporučuje používat zásady podmíněného přístupu a výchozí nastavení zabezpečení ke správě vícefaktorového ověřování (MFA) místo toho, abyste se museli spoléhat na vícefaktorové ověřování pro jednotlivé uživatele.

Příklad 6: Získání uživatele podle 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

Tento příkaz získá zadaného uživatele.

Příklad 7: Získání uživatele pomocí 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

V tomto příkladu načteme všechny uživatele, jejichž MailNickname začíná Ada.

Příklad 8: Získání signInActivity uživatele

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

Tento příklad ukazuje, jak načíst SignInActivity konkrétního uživatele výběrem vlastnosti.

Příklad 9: Výpis uživatelů se zakázanými účty

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

Tento příklad ukazuje, jak načíst všechny uživatele se zakázanými účty.

Příklad 10: Výpis uživatelů založených na konkrétní zemi

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

Tento příklad ukazuje, jak načíst všechny uživatele založené v Kanadě.

Příklad 11: Výpis počtu uživatelů na oddělení

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

Tento příklad ukazuje, jak načíst počet uživatelů v jednotlivých odděleních.

Příklad 12: Výpis zakázaných uživatelů s aktivními licencemi

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

Tento příklad ukazuje, jak načíst zakázané uživatele s aktivními licencemi.

Příklad 13: Načtení uživatelů typu host s aktivními licencemi

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

Tento příklad ukazuje, jak načíst uživatele typu host s aktivními licencemi.

Příklad 14: Výpis uživatelů s konkrétní licencí

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

Tento příklad ukazuje, jak načíst uživatele s konkrétní licencí.

Příklad 15: Načtení uživatelů bez manažerů

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

Tento příklad ukazuje, jak načíst uživatele bez manažerů.

Příklad 16: Výpis všech uživatelů typu host

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

Tento příklad ukazuje, jak načíst seznam všech uživatelů typu host.

Příklad 17: Seznam pěti nedávno vytvořených uživatelů

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

Tento příklad ukazuje, jak načíst nedávno vytvořené uživatele.

Příklad 18: Seznam uživatelů s rolí globálního správce

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

Tento příklad ukazuje, jak zobrazit seznam všech uživatelů s konkrétní rolí, například Global Administrator. Microsoft doporučuje přiřadit roli globálního správce méně než pěti lidem pro osvědčený postup. Podívejte se na osvědčené postupy.

Příklad 19: Výpis všech uživatelů s odvolanými relacemi za posledních 30 dnů

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

Tento příklad ukazuje, jak zobrazit seznam všech uživatelů s odvolanými relacemi za posledních 30 dnů.

Parametry

-All

Zobrazit seznam všech stránek

Vlastnosti parametru

Typ:System.Management.Automation.SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-EnabledFilter

Filtruje uživatele na základě stavu jejich účtů. Platné hodnoty jsou EnabledOnly a DisabledOnly. Po zadání rutina přidá omezení do jakéhokoli existujícího accountEnabled-Filter výrazu.

Vlastnosti parametru

Typ:System.String
Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:None

Sady parametrů

GetFiltered
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Filter

Určuje příkaz filtru OData v4.0. Tento parametr určuje, které objekty se vrátí. Podrobnosti o dotazování pomocí OData najdete tady.

Vlastnosti parametru

Typ:System.String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

GetQuery
Position:Named
Povinné:False
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-HasErrorsOnly

Vrátí pouze uživatele, kteří mají jednu nebo více chyb zřizování nebo ověřování služby (zobrazí se prostřednictvím serviceProvisioningErrors kolekce). Pomocí tohoto přepínače můžete rychle identifikovat identity vyžadující nápravu pro správu.

Vlastnosti parametru

Typ:System.Management.Automation.SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:None

Sady parametrů

GetFiltered
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-LicenseReconciliationNeededOnly

Vrátí jenom uživatele, jejichž chyby zřizování služeb zahrnují problémy související s licencí, které značí, že je potřeba odsouhlasení licencí (například nedostatečná licence, porušení závislostí, vzájemně se vylučující plány). Rutina interně odpovídá běžným vzorům chyb licencí a zúží sadu výsledků.

Vlastnosti parametru

Typ:System.Management.Automation.SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:None

Sady parametrů

GetFiltered
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-PageSize

Pokud je zadán -PageSize, může příkaz provést několik síťových volání pro načtení dat v blocích (stránek), pokračovat, dokud nedosáhne limitu definovaného -Top nebo -All v závislosti na tom, který se používá.

Vlastnosti parametru

Typ:System.Int32
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-Property

Určuje vlastnosti, které se mají vrátit.

Vlastnosti parametru

Typ:

System.String[]

Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:Vyberte

Sady parametrů

(All)
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-SearchString

Určuje hledaný řetězec.

Vlastnosti parametru

Typ:System.String
Default value:None
Podporuje zástupné znaky:False
DontShow:False

Sady parametrů

GetVague
Position:Named
Povinné:False
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-Synchronized

Vrátí pouze uživatele synchronizované z místní Active Directory (těch s onPremisesSyncEnabled eq true). To je užitečné pro rozlišení cloudových identit od hybridních spravovaných identit.

Vlastnosti parametru

Typ:System.Management.Automation.SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:None

Sady parametrů

GetFiltered
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-Top

Určuje maximální počet záznamů, které se mají vrátit.

Vlastnosti parametru

Typ:System.Int32
Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:Limit

Sady parametrů

GetQuery
Position:Named
Povinné:False
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

-UnlicensedUsersOnly

Vrátí pouze uživatele, kteří nemají přiřazené licence (assignedLicenses počet se rovná 0). To pomáhá identifikovat uživatele, kteří ještě nemusí mít požadovaný přístup ke službě.

Vlastnosti parametru

Typ:System.Management.Automation.SwitchParameter
Default value:False
Podporuje zástupné znaky:False
DontShow:False
Aliasy:None

Sady parametrů

GetFiltered
Position:Named
Povinné:False
Hodnota z kanálu:False
Hodnota z kanálu podle názvu vlastnosti:False
Hodnota ze zbývajících argumentů:False

-UserId

Určuje ID (hlavní název uživatele (UPN) nebo UserId uživatele v Microsoft Entra ID.

Vlastnosti parametru

Typ:System.String
Default value:None
Podporuje zástupné znaky:False
DontShow:False
Aliasy:Identifikátor objektu (ObjectId), hlavní název uživatele (UPN), Identita, Hlavní jméno uživatele

Sady parametrů

GetById
Position:Named
Povinné:True
Hodnota z kanálu:True
Hodnota z kanálu podle názvu vlastnosti:True
Hodnota ze zbývajících argumentů:False

CommonParameters

Tato rutina podporuje běžné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v about_CommonParameters.