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を参照してください。