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>]
Description
cmdlet은 Get-EntraUser Microsoft Entra ID 사용자를 가져옵니다.
예제
예제 1: 상위 3명의 사용자 가져오기
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 상위 3명의 사용자를 가져오는 방법을 보여 줍니다.
-Limit
-Top별칭으로 사용할 수 있습니다.
예제 2: 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
이 명령은 지정된 사용자를 가져옵니다.
-
-UserIdID를 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
이 cmdlet은 DisplayName 또는 UserPrincipalName의 첫 번째 문자에 대해 SearchString 값과 일치하는 모든 사용자를 가져옵니다.
예제 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: 최근에 만든 사용자 5명 나열
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 모범 사례를 위해 전역 관리자 역할을 5명 미만에게 할당하는 것이 좋습니다.
모범 사례를 참조하세요.
예제 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 |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-EnabledFilter
계정의 상태에 따라 사용자를 필터링합니다. 유효한 값은 EnabledOnly 및 DisabledOnly입니다. 지정된 경우 cmdlet은 기존 -Filter 식에 제약 조건을 accountEnabled 추가합니다.
매개 변수 속성
| 형식: | System.String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | 없음 |
매개 변수 집합
GetFiltered
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Filter
OData v4.0 필터 문을 지정합니다. 이 매개 변수는 반환되는 개체를 제어합니다. OData를 사용한 쿼리에 대한 자세한 내용은 여기에서 확인할 수 있습니다.
매개 변수 속성
| 형식: | System.String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
GetQuery
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-HasErrorsOnly
하나 이상의 서비스 프로비저닝 또는 유효성 검사 오류가 있는 사용자만 반환합니다(컬렉션을 통해 serviceProvisioningErrors 표시됨). 이 스위치를 사용하여 관리 수정이 필요한 ID를 신속하게 식별할 수 있습니다.
매개 변수 속성
| 형식: | System.Management.Automation.SwitchParameter |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | 없음 |
매개 변수 집합
GetFiltered
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-LicenseReconciliationNeededOnly
서비스 프로비저닝 오류에 라이선스 조정이 필요하다는 것을 나타내는 라이선스 관련 문제가 포함된 사용자만 반환합니다(예: 라이선스 부족, 종속성 위반, 상호 배타적 계획). 내부적으로 cmdlet은 일반적인 라이선스 오류 패턴과 일치하여 결과 집합의 범위를 좁힐 수 있습니다.
매개 변수 속성
| 형식: | System.Management.Automation.SwitchParameter |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | 없음 |
매개 변수 집합
GetFiltered
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-PageSize
-PageSize 지정되면 명령은 사용되는 항목에 따라 -Top 또는 -All로 정의된 제한에 도달할 때까지 계속하여 청크(페이지)에서 데이터를 검색하기 위해 여러 네트워크 호출을 할 수 있습니다.
매개 변수 속성
| 형식: | System.Int32 |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-Property
반환할 속성을 지정합니다.
매개 변수 속성
| 형식: | System.String[] |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | 선택 |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-SearchString
검색 문자열을 지정합니다.
매개 변수 속성
| 형식: | System.String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
GetVague
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-Synchronized
온-프레미스 Active DirectoryonPremisesSyncEnabled eq true(있는 사용자)에서 동기화된 사용자만 반환합니다. 이는 하이브리드 관리 ID와 클라우드 전용 ID를 구분하는 데 유용합니다.
매개 변수 속성
| 형식: | System.Management.Automation.SwitchParameter |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | 없음 |
매개 변수 집합
GetFiltered
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-Top
반환할 최대 레코드 수를 지정합니다.
매개 변수 속성
| 형식: | System.Int32 |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | Limit |
매개 변수 집합
GetQuery
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-UnlicensedUsersOnly
할당된 라이선스가 없는 사용자만 반환합니다(assignedLicenses 개수는 0과 같음). 이렇게 하면 아직 필요한 서비스 액세스 권한이 없는 사용자를 식별할 수 있습니다.
매개 변수 속성
| 형식: | System.Management.Automation.SwitchParameter |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | 없음 |
매개 변수 집합
GetFiltered
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-UserId
Microsoft Entra ID 사용자의 ID(UPN(사용자 계정 이름) 또는 UserId)를 지정합니다.
매개 변수 속성
| 형식: | System.String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | ObjectId (오브젝트아이디), UPN, 아이덴티티, 사용자 주 이름 |
매개 변수 집합
GetById
| Position: | Named |
| 필수: | True |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
CommonParameters
이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.