Get-EntraBetaUser

Obtient un utilisateur.

Syntaxe

GetQuery (Par défaut)

Get-EntraBetaUser

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

GetVague

Get-EntraBetaUser

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

GetById

Get-EntraBetaUser

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

GetFiltered

Get-EntraUser

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

Description

L’applet Get-EntraBetaUser de commande obtient un utilisateur de Microsoft Entra ID.

Exemples

Exemple 1 : Obtenir les trois premiers utilisateurs

Connect-Entra -Scopes 'User.Read.All'
Get-EntraBetaUser -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

Cet exemple montre comment obtenir les trois principaux utilisateurs de Microsoft Entra ID. Vous pouvez utiliser -Limit comme alias pour -Top.

Exemple 2 : Obtenir un utilisateur par ID

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

Cette commande obtient l’utilisateur spécifié.

  • -UserId Spécifie l’ID en tant que nom d’utilisateur principal (UPN) ou UserId.

Exemple 3 : Rechercher parmi les utilisateurs récupérés

Connect-Entra -Scopes 'User.Read.All'
Get-EntraBetaUser -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

Cette applet de commande obtient tous les utilisateurs qui correspondent à la valeur de SearchString par rapport aux premiers caractères dans DisplayName ou UserPrincipalName.

Exemple 4 : Récupérer la stratégie de mot de passe de l’utilisateur

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

Cet exemple montre comment obtenir la stratégie de mot de passe d’un utilisateur. Pour la mettre à jour, exécutez Get-EntraBetaUser -UserId SawyerM@contoso.com | Set-EntraBetaUser -PasswordPolicies DisablePasswordExpiration.

Exemple 5 : rapport MFA par utilisateur

Connect-Entra -scope 'User.Read.All', 'UserAuthenticationMethod.Read.All'
$users = Get-EntraBetaUser -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

Cet exemple montre un rapport d’état MFA par utilisateur.

Remarque : Microsoft recommande d’utiliser des stratégies d’accès conditionnel et des paramètres de sécurité par défaut pour gérer l’authentification multifacteur (MFA) au lieu de s’appuyer sur l’authentification multifacteur héritée par utilisateur.

Exemple 6 : Obtenir un utilisateur par userPrincipalName

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

Cette commande obtient l’utilisateur spécifié.

Exemple 7 : Obtenir un utilisateur par MailNickname

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

Dans cet exemple, nous récupérons tous les utilisateurs dont MailNickname commence par Ada.

Exemple 8 : Obtenir SignInActivity d’un utilisateur

Connect-Entra -Scopes 'User.Read.All','AuditLog.Read.All'
Get-EntraBetaUser -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

Cet exemple montre comment récupérer l’élément SignInActivity d’un utilisateur spécifique en sélectionnant une propriété.

Exemple 9 : Répertorier les utilisateurs avec des comptes désactivés

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

Cet exemple montre comment récupérer tous les utilisateurs avec des comptes désactivés.

Exemple 10 : Répertorier les utilisateurs basés dans un pays spécifique

Connect-Entra -Scopes 'User.Read.All'
$usersInCanada = Get-EntraBetaUser -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

Cet exemple montre comment récupérer tous les utilisateurs basés au Canada.

Exemple 11 : Lister le nombre d’utilisateurs par service

Connect-Entra -Scopes 'User.Read.All'
$departmentCounts = Get-EntraBetaUser -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

Cet exemple montre comment récupérer le nombre d’utilisateurs dans chaque service.

Exemple 12 : Répertorier les utilisateurs désactivés avec des licences actives

Connect-Entra -Scopes 'User.Read.All'
$disabledUsersWithLicenses = Get-EntraBetaUser -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

Cet exemple montre comment récupérer des utilisateurs désactivés avec des licences actives.

Exemple 13 : Récupérer des utilisateurs invités avec des licences actives

Connect-Entra -Scopes 'User.Read.All'
$guestUsers = Get-EntraBetaUser -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

Cet exemple montre comment récupérer des utilisateurs invités avec des licences actives.

Exemple 14 : Répertorier les utilisateurs avec une licence spécifique

Connect-Entra -Scopes 'User.Read.All'
$skuId = (Get-EntraBetaSubscribedSku | Where-Object { $_.SkuPartNumber -eq 'POWERAPPS_DEV' }).SkuId
Get-EntraBetaUser -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

Cet exemple montre comment récupérer des utilisateurs avec une licence spécifique.

Exemple 15 : Récupérer des utilisateurs sans gestionnaires

Connect-Entra -Scopes 'User.Read.All'
$allUsers = Get-EntraBetaUser -All
$usersWithoutManagers = foreach ($user in $allUsers) {
    $manager = Get-EntraBetaUserManager -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

Cet exemple montre comment récupérer des utilisateurs sans gestionnaires.

Exemple 16 : Répertorier tous les utilisateurs invités

Connect-Entra -Scopes 'User.Read.All'
$guestUsers = Get-EntraBetaUser -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

Cet exemple montre comment récupérer la liste de tous les utilisateurs invités.

Exemple 17 : Répertorier cinq utilisateurs récemment créés

Get-EntraBetaUser -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

Cet exemple montre comment récupérer les utilisateurs récemment créés.

Exemple 18 : Liste des utilisateurs avec le rôle Administrateur général

Connect-Entra -Scopes 'User.Read.All', 'RoleManagement.Read.Directory'
$roleId = Get-EntraBetaDirectoryRoleTemplate | Where-Object { $_.DisplayName -eq 'Global Administrator' } | Select-Object -ExpandProperty Id
$globalAdmins = Get-EntraBetaDirectoryRoleAssignment -Filter "roleDefinitionId eq '$roleId'" | ForEach-Object {
    Get-EntraBetaUser -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

Cet exemple montre comment répertorier tous les utilisateurs avec un rôle spécifique, par Global Administratorexemple . Microsoft recommande d’attribuer le rôle Administrateur général à moins de cinq personnes pour des meilleures pratiques. Prenez connaissance des bonnes pratiques.

Exemple 19 : Répertorier tous les utilisateurs avec des sessions révoquées au cours des 30 derniers jours

Connect-Entra -Scopes 'User.Read.All'
$pastDate = (Get-Date).AddDays(-30).ToUniversalTime()
Get-EntraBetaUser | 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

Cet exemple montre comment répertorier tous les utilisateurs avec des sessions révoquées au cours des 30 derniers jours.

Paramètres

-All

Répertorier toutes les pages.

Propriétés du paramètre

Type:System.Management.Automation.SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-EnabledFilter

Filtre les utilisateurs en fonction de l’état de leurs comptes. Les valeurs valides sont EnabledOnly et DisabledOnly. Quand elle est spécifiée, l’applet de commande ajoute une accountEnabled contrainte à n’importe quelle expression existante -Filter .

Propriétés du paramètre

Type:System.String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:None

Jeux de paramètres

GetFiltered
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Filter

Spécifie une instruction de filtre OData v4.0. Ce paramètre contrôle les objets retournés. Vous trouverez ici des détails sur l’interrogation avec OData.

Propriétés du paramètre

Type:System.String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

GetQuery
Position:Named
Obligatoire:False
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-HasErrorsOnly

Retourne uniquement les utilisateurs qui ont un ou plusieurs erreurs d’approvisionnement ou de validation de service (exposés via la serviceProvisioningErrors collection). Utilisez ce commutateur pour identifier rapidement les identités nécessitant une correction administrative.

Propriétés du paramètre

Type:System.Management.Automation.SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:None

Jeux de paramètres

GetFiltered
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-LicenseReconciliationNeededOnly

Retourne uniquement les utilisateurs dont les erreurs d’approvisionnement de service incluent des problèmes liés aux licences indiquant que la rapprochement des licences est nécessaire (par exemple, licences insuffisantes, violations de dépendances, plans mutuellement exclusifs). En interne, l’applet de commande correspond aux modèles d’erreur de licence courants pour affiner le jeu de résultats.

Propriétés du paramètre

Type:System.Management.Automation.SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:None

Jeux de paramètres

GetFiltered
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-PageSize

Lorsque -PageSize est spécifié, la commande peut effectuer plusieurs appels réseau pour récupérer des données en blocs (pages), en continuant jusqu’à ce qu’elle atteigne la limite définie par -Top ou -All, en fonction de l’utilisation.

Propriétés du paramètre

Type:System.Int32
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Property

Spécifie les propriétés à retourner.

Propriétés du paramètre

Type:

System.String[]

Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:Sélectionnez

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-SearchString

Spécifie une chaîne de recherche.

Propriétés du paramètre

Type:System.String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

GetVague
Position:Named
Obligatoire:False
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-Synchronized

Retourne uniquement les utilisateurs synchronisés à partir de Active Directory local (avec ).onPremisesSyncEnabled eq true Cela est utile pour distinguer les identités cloud uniquement des identités managées hybrides.

Propriétés du paramètre

Type:System.Management.Automation.SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:None

Jeux de paramètres

GetFiltered
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-Top

Spécifie le nombre maximal d’enregistrements à retourner.

Propriétés du paramètre

Type:System.Int32
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:Limite

Jeux de paramètres

GetQuery
Position:Named
Obligatoire:False
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-UnlicensedUsersOnly

Retourne uniquement les utilisateurs qui n’ont pas de licences attribuées (assignedLicenses nombre égal à 0). Cela permet d’identifier les utilisateurs qui n’ont pas encore accès au service requis.

Propriétés du paramètre

Type:System.Management.Automation.SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:None

Jeux de paramètres

GetFiltered
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

-UserId

Spécifie l’ID (en tant que nom d’utilisateur principal (UPN) ou UserId d’un utilisateur dans Microsoft Entra ID.

Propriétés du paramètre

Type:System.String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:Identifiant d'objet (ObjectId), UPN, Identité, Nom Principal de l'Utilisateur

Jeux de paramètres

GetById
Position:Named
Obligatoire:True
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.