Get-EntraUser
Возвращает пользователя.
Синтаксис
GetQuery (По умолчанию)
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>]
Описание
Командлет Get-EntraUser получает пользователя из Microsoft Entra ID.
Примеры
Пример 1. Получение трех лучших пользователей
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
В этом примере показано, как получить трех лучших пользователей из Microsoft Entra ID. Вы можете использовать -Limit в качестве псевдонима для -Top.
Пример 2. Получение пользователя по идентификатору
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
Эта команда получает указанного пользователя.
-
-UserIdУказывает идентификатор в качестве имени участника-пользователя (UPN) или UserId.
Пример 3. Поиск среди извлеченных пользователей
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
Этот командлет получает всех пользователей, которые соответствуют значению SearchString с первыми символами в DisplayName или UserPrincipalName.
Пример 4. Получение политики паролей пользователя
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
В этом примере показано, как получить политику паролей пользователя. Чтобы обновить его, выполните команду Get-EntraUser -UserId SawyerM@contoso.com | Set-EntraUser -PasswordPolicies DisablePasswordExpiration.
Пример 5. Отчет MFA для каждого пользователя
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
В этом примере показан отчет о состоянии MFA для каждого пользователя.
Примечание. Microsoft рекомендует использовать политики условного доступа и политики безопасности по умолчанию для управления многофакторной проверкой подлинности (MFA) вместо использования устаревшей MFA для каждого пользователя.
Пример 6. Получение пользователя по 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
Эта команда получает указанного пользователя.
Пример 7. Получение пользователя по 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
В этом примере мы извлекаем всех пользователей, чьи MailNickname начинается с Ada.
Пример 8. Получение signInActivity пользователя
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
В этом примере показано, как получить SignInActivity определенного пользователя, выбрав свойство.
Пример 9. Перечисление пользователей с отключенными учетными записями
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
В этом примере показано, как получить всех пользователей с отключенными учетными записями.
Пример 10. Перечисление пользователей на основе определенной страны
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
В этом примере показано, как получить всех пользователей, базирующихся в Канаде.
Пример 11. Перечисление количества пользователей на отдел
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
В этом примере показано, как получить количество пользователей в каждом отделе.
Пример 12. Список отключенных пользователей с активными лицензиями
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
В этом примере показано, как получить отключенных пользователей с активными лицензиями.
Пример 13. Получение гостевых пользователей с активными лицензиями
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
В этом примере показано, как получить гостевых пользователей с активными лицензиями.
Пример 14. Перечисление пользователей с определенной лицензией
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
В этом примере показано, как получить пользователей с определенной лицензией.
Пример 15. Извлечение пользователей без диспетчеров
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
В этом примере показано, как получить пользователей без руководителей.
Пример 16. Перечисление всех гостевых пользователей
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
В этом примере показано, как получить список всех гостевых пользователей.
Пример 17. Список пяти недавно созданных пользователей
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
В этом примере показано, как получить недавно созданных пользователей.
Пример 18. Список пользователей с ролью глобального администратора
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
В этом примере показано, как перечислить всех пользователей с определенной ролью, например Global Administrator. Microsoft рекомендует назначить роль глобального администратора менее пяти человек для получения рекомендаций. Рекомендации на эту тему см. здесь.
Пример 19. Вывод списка всех пользователей с отозванными сеансами за последние 30 дней
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
В этом примере показано, как перечислить всех пользователей с отозванными сеансами за последние 30 дней.
Параметры
-All
Вывод списка всех страниц.
Свойства параметров
| Тип: | System.Management.Automation.SwitchParameter |
| Значение по умолчанию: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-EnabledFilter
Фильтрует пользователей на основе состояния своих учетных записей. Допустимые значения — EnabledOnly и DisabledOnly. При указании командлет добавляет ограничение к любому существующему accountEnabled-Filter выражению.
Свойства параметров
| Тип: | System.String |
| Значение по умолчанию: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | Нет |
Наборы параметров
GetFiltered
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Filter
Указывает инструкцию фильтра OData версии 4.0. Этот параметр определяет, какие объекты возвращаются. Дополнительные сведения о запросах с помощью OData см. здесь.
Свойства параметров
| Тип: | System.String |
| Значение по умолчанию: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
GetQuery
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-HasErrorsOnly
Возвращает только пользователей, имеющих одну или несколько ошибок подготовки или проверки службы (появляется через коллекцию serviceProvisioningErrors ). Используйте этот параметр для быстрого определения удостоверений, требующих исправления администратора.
Свойства параметров
| Тип: | System.Management.Automation.SwitchParameter |
| Значение по умолчанию: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | Нет |
Наборы параметров
GetFiltered
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-LicenseReconciliationNeededOnly
Возвращает только пользователей, у которых ошибки подготовки служб включают проблемы, связанные с лицензиями, указывающие на необходимость выверки лицензий (например, недостаточно лицензий, нарушений зависимостей, взаимоисключающих планов). Внутри командлет соответствует общим шаблонам ошибок лицензии, чтобы сузить результирующий набор.
Свойства параметров
| Тип: | System.Management.Automation.SwitchParameter |
| Значение по умолчанию: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | Нет |
Наборы параметров
GetFiltered
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-PageSize
При указании -PageSize команда может выполнять несколько сетевых вызовов для получения данных в блоках (страниц), продолжая до тех пор, пока не достигнет предела, определенного -Top или -All, в зависимости от используемого.
Свойства параметров
| Тип: | System.Int32 |
| Значение по умолчанию: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Property
Указывает свойства, возвращаемые.
Свойства параметров
| Тип: | System.String[] |
| Значение по умолчанию: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | Select |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-SearchString
Указывает строку поиска.
Свойства параметров
| Тип: | System.String |
| Значение по умолчанию: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
GetVague
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-Synchronized
Возвращает только пользователей, синхронизированных из локальная служба Active Directory (сonPremisesSyncEnabled eq true). Это полезно для различения облачных удостоверений от гибридных управляемых удостоверений.
Свойства параметров
| Тип: | System.Management.Automation.SwitchParameter |
| Значение по умолчанию: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | Нет |
Наборы параметров
GetFiltered
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Top
Указывает максимальное количество возвращаемых записей.
Свойства параметров
| Тип: | System.Int32 |
| Значение по умолчанию: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | Ограничение |
Наборы параметров
GetQuery
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-UnlicensedUsersOnly
Возвращает только пользователей, у которых нет назначенных лицензий (assignedLicenses число равно 0). Это помогает определить пользователей, которые еще не имеют требуемого доступа к службе.
Свойства параметров
| Тип: | System.Management.Automation.SwitchParameter |
| Значение по умолчанию: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | Нет |
Наборы параметров
GetFiltered
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-UserId
Указывает идентификатор пользователя (имя участника-пользователя или userId) пользователя в Microsoft Entra ID.
Свойства параметров
| Тип: | System.String |
| Значение по умолчанию: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | ObjectId (идентификатор объекта), UPN, Identity, ОсновноеИмяПользователя |
Наборы параметров
GetById
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.