Get-EntraServicePrincipal
서비스 주체를 가져옵니다.
구문
GetQuery (기본값)
Get-EntraServicePrincipal
[-Top <Int32>]
[-All]
[-Filter <String>]
[-Property <String[]>]
[-AssignmentRequired <Boolean>]
[-ApplicationType <String>]
[<CommonParameters>]
GetVague
Get-EntraServicePrincipal
[-SearchString <String>]
[-All]
[-Property <String[]>]
[-AssignmentRequired <Boolean>]
[-ApplicationType <String>]
[<CommonParameters>]
GetById
Get-EntraServicePrincipal
-ServicePrincipalId <String>
[-All]
[-Property <String[]>]
[<CommonParameters>]
Description
cmdlet은 Get-EntraServicePrincipal Microsoft Entra ID 서비스 주체를 가져옵니다.
예제
예제 1: 디렉터리에서 모든 서비스 주체 검색
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal
ObjectId AppId DisplayName
-------- ----- -----------
bbbbbbbb-1111-2222-3333-cccccccccccc 00001111-aaaa-2222-bbbb-3333cccc4444 Demo App
aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 22223333-cccc-4444-dddd-5555eeee6666 Demo Two App
dddddddd-3333-4444-5555-eeeeeeeeeeee 33334444-dddd-5555-eeee-6666ffff7777 ProjectWorkManagement
이 예제에서는 디렉터리에서 모든 서비스 주체를 검색합니다.
예제 2: ServicePrincipalId로 서비스 주체 검색
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
Get-EntraServicePrincipal -ServicePrincipalId $servicePrincipal.Id
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
Helpdesk Application aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMultipleOrgs Application
이 명령은 특정 서비스 주체를 검색합니다.
-
-ServicePrincipalId매개 변수는 서비스 주체의 ID를 지정합니다.
예제 3: 디렉터리에서 모든 서비스 주체 검색
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -All
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
Helpdesk Application aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMultipleOrgs Application
Microsoft Device Management Checkin bbbbbbbb-1111-2222-3333-cccccccccccc 11112222-bbbb-3333-cccc-4444dddd5555 AzureADMultipleOrgs Application
ProvisioningPowerBi cccccccc-2222-3333-4444-dddddddddddd 22223333-cccc-4444-dddd-5555eeee6666 Application
이 예제에서는 디렉터리에서 모든 서비스 주체를 검색합니다.
예제 4: 디렉터리에서 상위 2개 서비스 주체 검색
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Top 2
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
Helpdesk Application aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMultipleOrgs Application
Microsoft Device Management Checkin bbbbbbbb-1111-2222-3333-cccccccccccc 11112222-bbbb-3333-cccc-4444dddd5555 AzureADMultipleOrgs Application
이 명령은 디렉터리에서 상위 두 서비스 주체를 검색합니다.
-Limit
-Top별칭으로 사용할 수 있습니다.
예제 5: 표시 이름으로 서비스 주체 가져오기
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Filter "displayName eq 'Helpdesk Application'"
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
Helpdesk Application aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMultipleOrgs Application
이 예제에서는 표시 이름으로 서비스 주체를 가져옵니다.
예제 6: "기술 지원팀 애플리케이션"이 포함된 표시 이름이 있는 모든 서비스 주체 목록을 검색합니다.
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -SearchString 'Helpdesk Application'
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
Helpdesk Application aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMultipleOrgs Application
이 예제에서는 지정된 표시 이름을 가진 서비스 주체 목록을 가져옵니다.
예제 7: 모든 엔터프라이즈 앱 검색
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Filter "tags/Any(x: x eq 'WindowsAzureActiveDirectoryIntegratedApp')"
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
Enterprise App1 00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777 Application
Enterprise App2 11112222-bbbb-3333-cccc-4444dddd5555 22223333-cccc-4444-dddd-5555eeee6666 AzureADMultipleOrgs Application
이 예제에서는 모든 엔터프라이즈 앱을 검색하는 방법을 보여 줍니다.
예제 8: 모든 앱 프록시 앱 검색
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Filter "tags/Any(x: x eq 'WindowsAzureActiveDirectoryOnPremApp')"
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
App proxy 1 00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777 Application
App proxy 2 11112222-bbbb-3333-cccc-4444dddd5555 22223333-cccc-4444-dddd-5555eeee6666 AzureADMultipleOrgs Application
이 예제에서는 모든 앱 프록시 앱을 검색하는 방법을 보여 줍니다.
예제 9: 비활성화된 모든 앱 검색
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Filter "accountEnabled eq false"
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
Disabled App1 00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777 Application
이 예제에서는 비활성화된 모든 앱을 검색하는 방법을 보여 줍니다.
예제 10: 모든 전역 보안 액세스 앱 검색
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -Filter "tags/Any(x: x eq 'PrivateAccessNonWebApplication') or tags/Any(x: x eq 'NetworkAccessManagedApplication')"
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
Global secure access app 00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777 Application
이 예제에서는 모든 전역 보안 액세스 앱을 검색하는 방법을 보여 줍니다.
예제 11: 사용자 할당 없이 모든 애플리케이션 나열
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -All | Where-Object {$_.appRoleAssignmentRequired -ne 'true'}
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
App without user assignment 00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777 Application
이 예제에서는 사용자 할당 없이 모든 애플리케이션을 검색하는 방법을 보여 줍니다.
예제 12: 모든 SAML 애플리케이션 세부 정보 나열
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -Filter "PreferredSingleSignOnMode eq 'saml'"
$servicePrincipal | Select-Object Id, DisplayName, AccountEnabled, AppId, PreferredSingleSignOnMode, AppRoleAssignmentRequired, SignInAudience, NotificationEmailAddresses, PreferredTokenSigningKeyEndDateTime, PreferredTokenSigningKeyValid, ReplyUrls,LoginUrl, LogoutUrl | Format-Table -AutoSize
Id DisplayName AccountEnabled AppId PreferredSingleSignOnMode AppRoleAssignmentRequired SignInAudience NotificationEmailAddresses
-- ----------- -------------- ----- ------------------------- ------------------------- -------------- --------------
00001111-aaaa-2222-bbbb-3333cccc4444 SAML App True 33334444-dddd-5555-eeee-6666ffff7777 saml True AzureADMyOrg {admin@Contoso}
이 예제에서는 모든 SAML 애플리케이션 세부 정보를 검색하는 방법을 보여 줍니다.
예제 13: 서비스 주체 앱 역할 나열
Connect-Entra -Scopes 'Application.Read.All'
$servicePrincipal = Get-EntraServicePrincipal -SearchString 'Contoso Helpdesk Application'
$servicePrincipal.AppRoles | Format-Table -AutoSize
AllowedMemberTypes Description DisplayName Id IsEnabled Origin Value
------------------ ----------- ----------- -- --------- ------ -----
{User, Application} General All General All gggggggg-6666-7777-8888-hhhhhhhhhhhh True Application Survey.Read
{Application} General App Only General Apponly hhhhhhhh-7777-8888-9999-iiiiiiiiiiii True Application Task.Write
{User} General role General bbbbbbbb-1111-2222-3333-cccccccccccc True Application General
이 예제에서는 서비스 주체에 대한 앱 역할을 검색하는 방법을 보여 줍니다.
예제 14: 테넌트 외부의 애플리케이션(서비스 주체) 나열
Connect-Entra -Scopes 'Application.Read.All'
$tenantId = Get-EntraContext | Select-Object -ExpandProperty TenantId
$servicePrincipals = Get-EntraServicePrincipal -All -Property AppOwnerOrganizationId, Id, DisplayName, AppId
$externalServicePrincipals = $servicePrincipals | Where-Object { $_.AppOwnerOrganizationId -ne $tenantId }
$externalServicePrincipals | Select-Object DisplayName, Id, AppId, AppOwnerOrganizationId | Format-Table -AutoSize
DisplayName Id AppId AppOwnerOrganizationId
----------- -- ----- ----------------------
Azure MFA StrongAuthenticationService aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 f8cdef31-a31e-4b4a-93e4-5f571e91255a
M365 Label Analytics bbbbbbbb-1111-2222-3333-cccccccccccc 11112222-bbbb-3333-cccc-4444dddd5555 f8cdef31-a31e-4b4a-93e4-5f571e91255a
PowerApps-Advisor cccccccc-2222-3333-4444-dddddddddddd 22223333-cccc-4444-dddd-5555eeee6666 f8cdef31-a31e-4b4a-93e4-5f571e91255a
이 예제에서는 내 테넌트 외부에서 애플리케이션(서비스 주체)을 검색하는 방법을 보여 줍니다.
예제 15: 사용자 할당이 필요한 서비스 주체 검색
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -AssignmentRequired $true
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
Restricted App aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMyOrg Application
이 예제에서는 애플리케이션에 액세스하기 위해 사용자 할당이 필요한 모든 서비스 주체를 검색합니다.
예제 16: ApplicationType 매개 변수를 사용하여 엔터프라이즈 앱 검색
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -ApplicationType EnterpriseApps
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
Enterprise App1 00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777 Application
Enterprise App2 11112222-bbbb-3333-cccc-4444dddd5555 22223333-cccc-4444-dddd-5555eeee6666 AzureADMultipleOrgs Application
이 예제에서는 ApplicationType 매개 변수를 사용하여 모든 엔터프라이즈 앱을 검색하는 방법을 보여 줍니다. 유효한 값은 AppProxyApps, EnterpriseApps, ManagedIdentity, MicrosoftApps입니다.
예제 17: 관리 ID 검색
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -ApplicationType ManagedIdentity
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
MyVM-Identity 00001111-aaaa-2222-bbbb-3333cccc4444 33334444-dddd-5555-eeee-6666ffff7777 ManagedIdentity
이 예제에서는 모든 관리 ID를 검색합니다.
예제 18: AssignmentRequired 및 ApplicationType 필터 결합
Connect-Entra -Scopes 'Application.Read.All'
Get-EntraServicePrincipal -AssignmentRequired $true -ApplicationType EnterpriseApps
DisplayName Id AppId SignInAudience ServicePrincipalType
----------- -- ----- -------------- --------------------
Secured Enterprise App aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb 00001111-aaaa-2222-bbbb-3333cccc4444 AzureADMyOrg Application
이 예제에서는 AssignmentRequired 및 ApplicationType 매개 변수를 결합하여 사용자 할당이 필요한 엔터프라이즈 앱을 필터링하는 방법을 보여 줍니다.
매개 변수
-All
모든 페이지를 나열합니다.
매개 변수 속성
| 형식: | System.Management.Automation.SwitchParameter |
| Default value: | False |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
(All)
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | False |
| 속성 이름별 파이프라인의 값: | False |
| 나머지 인수의 값: | False |
-ApplicationType
애플리케이션 유형별로 필터링합니다. 유효한 값은 다음과 같습니다.
-
AppProxyApps: 애플리케이션 프록시 애플리케이션 -
EnterpriseApps: 엔터프라이즈 애플리케이션 -
ManagedIdentity: 관리 ID 서비스 주체 -
MicrosoftApps: 자사 애플리케이션 Microsoft
매개 변수 속성
| 형식: | System.String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
GetQuery
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
GetVague
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-AssignmentRequired
애플리케이션에 액세스하는 데 사용자 할당이 필요한지 여부를 필터링합니다. 로 $true설정하면 사용자 할당이 필요한 서비스 주체만 반환합니다. 로 $false설정하면 사용자 할당이 필요하지 않은 서비스 주체만 반환합니다.
매개 변수 속성
| 형식: | System.Boolean |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
GetQuery
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
GetVague
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-Filter
OData v4.0 필터 문을 지정합니다. 이 매개 변수는 반환되는 개체를 제어합니다.
매개 변수 속성
| 형식: | System.String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
매개 변수 집합
GetQuery
| 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 |
-ServicePrincipalId
Microsoft Entra ID 서비스 주체의 ID를 지정합니다.
매개 변수 속성
| 형식: | System.String |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | ObjectId (오브젝트아이디) |
매개 변수 집합
GetById
| Position: | Named |
| 필수: | True |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
-Top
반환할 최대 레코드 수를 지정합니다.
매개 변수 속성
| 형식: | System.Int32 |
| Default value: | None |
| 와일드카드 지원: | False |
| DontShow: | False |
| 별칭: | Limit |
매개 변수 집합
GetQuery
| Position: | Named |
| 필수: | False |
| 파이프라인의 값: | True |
| 속성 이름별 파이프라인의 값: | True |
| 나머지 인수의 값: | False |
CommonParameters
이 cmdlet은 일반적인 매개 변수인 -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction 및 -WarningVariable 매개 변수를 지원합니다. 자세한 내용은 about_CommonParameters를 참조하세요.