Get-EntraBetaUser

Hämtar en användare.

Syntax

GetQuery (Standard)

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

Cmdleten Get-EntraBetaUser hämtar en användare från Microsoft Entra ID.

Exempel

Exempel 1: Hämta de tre främsta användarna

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

Det här exemplet visar hur du hämtar de tre främsta användarna från Microsoft Entra ID. Du kan använda -Limit som ett alias för -Top.

Exempel 2: Hämta en användare efter 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

Det här kommandot hämtar den angivna användaren.

  • -UserId Anger ID som användarens huvudnamn (UPN) eller UserId.

Exempel 3: Sök bland hämtade användare

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

Den här cmdleten hämtar alla användare som matchar värdet för SearchString mot de första tecknen i DisplayName eller UserPrincipalName.

Exempel 4: Hämta användarens lösenordsprincip

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

Det här exemplet visar hur du hämtar en användares lösenordsprincip. Om du vill uppdatera den kör du Get-EntraBetaUser -UserId SawyerM@contoso.com | Set-EntraBetaUser -PasswordPolicies DisablePasswordExpiration.

Exempel 5: MFA-rapport per användare

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

Det här exemplet visar en rapport med MFA-tillstånd per användare.

Obs! Microsoft rekommenderar att du använder principer för villkorsstyrd åtkomst och säkerhet som standard för att hantera multifaktorautentisering (MFA) i stället för att förlita sig på äldre MFA per användare.

Exempel 6: Hämta en användare efter 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

Det här kommandot hämtar den angivna användaren.

Exempel 7: Hämta en användare via 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

I det här exemplet hämtar vi alla användare vars MailNickname börjar med Ada.

Exempel 8: Hämta SignInActivity för en användare

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

Det här exemplet visar hur du hämtar SignInActivity för en viss användare genom att välja en egenskap.

Exempel 9: Lista användare med inaktiverade konton

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

Det här exemplet visar hur du hämtar alla användare med inaktiverade konton.

Exempel 10: Lista användare baserade i ett visst land

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

Det här exemplet visar hur du hämtar alla användare som är baserade i Kanada.

Exempel 11: Lista antalet användare per avdelning

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

Det här exemplet visar hur du hämtar antalet användare i varje avdelning.

Exempel 12: Lista inaktiverade användare med aktiva licenser

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

Det här exemplet visar hur du hämtar inaktiverade användare med aktiva licenser.

Exempel 13: Hämta gästanvändare med aktiva licenser

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

Det här exemplet visar hur du hämtar gästanvändare med aktiva licenser.

Exempel 14: Lista användare med en specifik licens

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

Det här exemplet visar hur du hämtar användare med en specifik licens.

Exempel 15: Hämta användare utan chefer

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

Det här exemplet visar hur du hämtar användare utan chefer.

Exempel 16: Visa en lista över alla gästanvändare

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

Det här exemplet visar hur du hämtar listan över alla gästanvändare.

Exempel 17: Lista fem användare som nyligen har skapats

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

Det här exemplet visar hur du hämtar de nyligen skapade användarna.

Exempel 18: Lista över användare med rollen Global administratör

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

Det här exemplet visar hur du visar en lista över alla användare med en specifik roll, till exempel Global Administrator. Microsoft rekommenderar att du tilldelar rollen Global administratör till färre än fem personer för bästa praxis. Se metodtips.

Exempel 19: Lista alla användare med återkallade sessioner under de senaste 30 dagarna

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

Det här exemplet visar hur du listar alla användare med återkallade sessioner under de senaste 30 dagarna.

Parametrar

-All

Visa en lista över alla sidor.

Parameteregenskaper

Typ:System.Management.Automation.SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-EnabledFilter

Filtrerar användare baserat på tillståndet för deras konton. Giltiga värden är EnabledOnly och DisabledOnly. När det anges lägger cmdleten till en accountEnabled begränsning i alla befintliga -Filter uttryck.

Parameteregenskaper

Typ:System.String
Standardvärde:None
Stöder jokertecken:False
DontShow:False
Alias:Ingen

Parameteruppsättningar

GetFiltered
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Filter

Anger en OData v4.0-filtersats. Den här parametern styr vilka objekt som returneras. Information om frågor med OData finns här.

Parameteregenskaper

Typ:System.String
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

GetQuery
Position:Named
Obligatorisk:False
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

-HasErrorsOnly

Returnerar endast användare som har ett eller flera tjänstetablerings- eller valideringsfel (som visas via serviceProvisioningErrors samlingen). Använd den här växeln för att snabbt identifiera identiteter som kräver administrativa åtgärder.

Parameteregenskaper

Typ:System.Management.Automation.SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False
Alias:Ingen

Parameteruppsättningar

GetFiltered
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-LicenseReconciliationNeededOnly

Returnerar endast användare vars tjänstetableringsfel inkluderar licensrelaterade problem som anger att licensavstämning krävs (till exempel otillräckliga licenser, beroendeöverträdelser, ömsesidigt uteslutande planer). Internt matchar cmdleten vanliga licensfelmönster för att begränsa resultatuppsättningen.

Parameteregenskaper

Typ:System.Management.Automation.SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False
Alias:Ingen

Parameteruppsättningar

GetFiltered
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-PageSize

När -PageSize anges kan kommandot göra flera nätverksanrop för att hämta data i segment (sidor) och fortsätta tills den når gränsen som definierats av antingen -Top eller -All, beroende på vilken som används.

Parameteregenskaper

Typ:System.Int32
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

-Property

Anger egenskaper som ska returneras.

Parameteregenskaper

Typ:

System.String[]

Standardvärde:None
Stöder jokertecken:False
DontShow:False
Alias:Select

Parameteruppsättningar

(All)
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-SearchString

Anger en söksträng.

Parameteregenskaper

Typ:System.String
Standardvärde:None
Stöder jokertecken:False
DontShow:False

Parameteruppsättningar

GetVague
Position:Named
Obligatorisk:False
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

-Synchronized

Returnerar endast användare som synkroniserats från lokálna služba Active Directory (de med onPremisesSyncEnabled eq true). Detta är användbart för att skilja molnbaserade identiteter från hybridhanterade identiteter.

Parameteregenskaper

Typ:System.Management.Automation.SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False
Alias:Ingen

Parameteruppsättningar

GetFiltered
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-Top

Anger det maximala antalet poster som ska returneras.

Parameteregenskaper

Typ:System.Int32
Standardvärde:None
Stöder jokertecken:False
DontShow:False
Alias:Limit

Parameteruppsättningar

GetQuery
Position:Named
Obligatorisk:False
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

-UnlicensedUsersOnly

Returnerar endast användare som inte har några tilldelade licenser (assignedLicenses antal är lika med 0). Detta hjälper till att identifiera användare som kanske ännu inte har den tjänståtkomst som krävs.

Parameteregenskaper

Typ:System.Management.Automation.SwitchParameter
Standardvärde:False
Stöder jokertecken:False
DontShow:False
Alias:Ingen

Parameteruppsättningar

GetFiltered
Position:Named
Obligatorisk:False
Värde från pipeline:False
Värde från pipeline efter egenskapsnamn:False
Värde från återstående argument:False

-UserId

Anger ID :t (som ett UPN-namn (User Principal Name) eller UserId) för en användare i Microsoft Entra ID.

Parameteregenskaper

Typ:System.String
Standardvärde:None
Stöder jokertecken:False
DontShow:False
Alias:Objekt-ID, UPN, Identitet, Användarens huvudnamn

Parameteruppsättningar

GetById
Position:Named
Obligatorisk:True
Värde från pipeline:True
Värde från pipeline efter egenskapsnamn:True
Värde från återstående argument:False

CommonParameters

Den här cmdleten stöder vanliga parametrar: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.