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>]
説明
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
このコマンドは、ディレクトリから上位 2 つのサービス プリンシパルを取得します。
-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 |
| 規定値: | False |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-ApplicationType
アプリケーションの種類でフィルター処理します。 有効な値は次のとおりです。
-
AppProxyApps: アプリケーション プロキシ アプリケーション -
EnterpriseApps: エンタープライズ アプリケーション -
ManagedIdentity: マネージド ID サービス プリンシパル -
MicrosoftApps: ファースト パーティ アプリケーションをMicrosoftする
パラメーターのプロパティ
| 型: | System.String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
GetQuery
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
GetVague
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-AssignmentRequired
アプリケーションにアクセスするためにユーザー割り当てが必要かどうかをフィルター処理します。
$trueに設定すると、ユーザーの割り当てが必要なサービス プリンシパルのみが返されます。
$falseに設定すると、ユーザーの割り当てが不要なサービス プリンシパルのみが返されます。
パラメーターのプロパティ
| 型: | System.Boolean |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
GetQuery
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
GetVague
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Filter
OData v4.0 フィルター ステートメントを指定します。 このパラメーターは、返されるオブジェクトを制御します。
パラメーターのプロパティ
| 型: | System.String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
GetQuery
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Property
返されるプロパティを指定します。
パラメーターのプロパティ
| 型: | System.String[] |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | Select |
パラメーター セット
(All)
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | False |
| プロパティ名別のパイプラインからの値: | False |
| 残りの引数からの値: | False |
-SearchString
検索文字列を指定します。
パラメーターのプロパティ
| 型: | System.String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
パラメーター セット
GetVague
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-ServicePrincipalId
Microsoft Entra IDのサービス プリンシパルの ID を指定します。
パラメーターのプロパティ
| 型: | System.String |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | オブジェクト識別子 |
パラメーター セット
GetById
| 配置: | Named |
| 必須: | True |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
-Top
返されるレコードの最大数を指定します。
パラメーターのプロパティ
| 型: | System.Int32 |
| 規定値: | None |
| ワイルドカードのサポート: | False |
| DontShow: | False |
| Aliases: | 極限 |
パラメーター セット
GetQuery
| 配置: | Named |
| 必須: | False |
| パイプラインからの値: | True |
| プロパティ名別のパイプラインからの値: | True |
| 残りの引数からの値: | False |
CommonParameters
このコマンドレットでは、一般的なパラメーター -Debug、-ErrorAction、-ErrorVariable、-InformationAction、-InformationVariable、-OutBuffer、-OutVariable、-PipelineVariable、-ProgressAction、-Verbose、-WarningAction、-WarningVariable の各パラメーターがサポートされています。 詳細については、about_CommonParametersを参照してください。