Get-EntraServicePrincipal

Ruft einen Dienstprinzipal ab.

Syntax

GetQuery (Standard)

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>]

Beschreibung

Das Get-EntraServicePrincipal Cmdlet ruft einen Dienstprinzipal in Microsoft Entra ID ab.

Beispiele

Beispiel 1: Abrufen des gesamten Dienstprinzipals aus dem Verzeichnis

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

In diesem Beispiel werden alle Dienstprinzipale aus dem Verzeichnis abgerufen.

Beispiel 2: Abrufen eines Dienstprinzipals nach 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

Mit diesem Befehl wird ein bestimmter Dienstprinzipal abgerufen.

  • -ServicePrincipalId Der Parameter gibt die ID eines Dienstprinzipals an.

Beispiel 3: Abrufen aller Dienstprinzipale aus dem Verzeichnis

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

In diesem Beispiel werden alle Dienstprinzipale aus dem Verzeichnis abgerufen.

Beispiel 4: Abrufen des haupt zwei Dienstprinzipals aus dem Verzeichnis

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

Mit diesem Befehl werden die beiden wichtigsten Dienstprinzipale aus dem Verzeichnis abgerufen. Sie können -Limit als Alias für -Top verwenden.

Beispiel 5: Abrufen eines Dienstprinzipals nach Anzeigename

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

In diesem Beispiel wird ein Dienstprinzipal anhand des Anzeigenamens angezeigt.

Beispiel 6: Abrufen einer Liste aller Dienstprinzipale, die einen Anzeigenamen enthält, der "Helpdesk-Anwendung" enthält

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

In diesem Beispiel wird eine Liste des Dienstprinzipals mit dem angegebenen Anzeigenamen angezeigt.

Beispiel 7: Abrufen aller Enterprise-Apps

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

In diesem Beispiel wird veranschaulicht, wie alle Unternehmens-Apps abgerufen werden.

Beispiel 8: Abrufen aller App-Proxy-Apps

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

In diesem Beispiel wird veranschaulicht, wie alle App-Proxy-Apps abgerufen werden.

Beispiel 9: Abrufen aller deaktivierten Apps

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

In diesem Beispiel wird veranschaulicht, wie alle deaktivierten Apps abgerufen werden.

Beispiel 10: Abrufen aller globalen Apps für den sicheren Zugriff

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

In diesem Beispiel wird veranschaulicht, wie alle globalen Apps für den sicheren Zugriff abgerufen werden.

Beispiel 11: Auflisten aller Anwendungen ohne Benutzerzuweisung

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

In diesem Beispiel wird veranschaulicht, wie alle Anwendungen ohne Benutzerzuweisung abgerufen werden.

Beispiel 12: Auflisten aller SAML-Anwendungsdetails

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}

In diesem Beispiel wird veranschaulicht, wie alle SAML-Anwendungsdetails abgerufen werden.

Beispiel 13: Dienstprinzipal-App-Rollen auflisten

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

In diesem Beispiel wird gezeigt, wie Sie App-Rollen für einen Dienstprinzipal abrufen können.

Beispiel 14: Auflisten von Anwendungen (Dienstprinzipale) außerhalb meines Mandanten

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

In diesem Beispiel wird gezeigt, wie Sie Anwendungen (Dienstprinzipale) außerhalb meines Mandanten abrufen können.

Beispiel 15: Abrufen von Dienstprinzipalen mit erforderlicher Benutzerzuweisung

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

In diesem Beispiel werden alle Dienstprinzipale abgerufen, bei denen die Benutzerzuweisung erforderlich ist, um auf die Anwendung zuzugreifen.

Beispiel 16: Abrufen von Enterprise-Apps mithilfe des ApplicationType-Parameters

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

In diesem Beispiel wird veranschaulicht, wie alle Unternehmens-Apps mithilfe des ApplicationType-Parameters abgerufen werden. Gültige Werte sind: AppProxyApps, EnterpriseApps, ManagedIdentity, MicrosoftApps.

Beispiel 17: Abrufen verwalteter Identitäten

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

In diesem Beispiel werden alle verwalteten Identitäten abgerufen.

Beispiel 18: Kombinieren von AssignmentRequired- und ApplicationType-Filtern

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

In diesem Beispiel wird veranschaulicht, wie Sie sowohl die Parameter AssignmentRequired als auch ApplicationType kombinieren, um Unternehmens-Apps zu filtern, die eine Benutzerzuweisung erfordern.

Parameter

-All

Alle Seiten auflisten.

Parametereigenschaften

Typ:System.Management.Automation.SwitchParameter
Standardwert:False
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-ApplicationType

Filtern nach Anwendungstyp. Gültige Werte sind:

  • AppProxyApps: Anwendungsproxyanwendungen
  • EnterpriseApps: Unternehmensanwendungen
  • ManagedIdentity: Prinzipale des verwalteten Identitätsdiensts
  • MicrosoftApps: Microsoft Erstanbieteranwendungen

Parametereigenschaften

Typ:System.String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

GetQuery
Position:Named
Obligatorisch:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
GetVague
Position:Named
Obligatorisch:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-AssignmentRequired

Filtern Sie nach, ob eine Benutzerzuweisung für den Zugriff auf die Anwendung erforderlich ist. Wenn dieser Wert auf $true festgelegt ist, werden nur Dienstprinzipale zurückgegeben, bei denen die Benutzerzuweisung erforderlich ist. Wenn der Wert auf $false festgelegt ist, werden nur Dienstprinzipale zurückgegeben, bei denen keine Benutzerzuweisung erforderlich ist.

Parametereigenschaften

Typ:System.Boolean
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

GetQuery
Position:Named
Obligatorisch:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False
GetVague
Position:Named
Obligatorisch:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-Filter

Gibt eine OData v4.0-Filter-Anweisung an. Dieser Parameter steuert, welche Objekte zurückgegeben werden.

Parametereigenschaften

Typ:System.String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

GetQuery
Position:Named
Obligatorisch:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-Property

Gibt eigenschaften an, die zurückgegeben werden sollen.

Parametereigenschaften

Typ:

System.String[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Select

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-SearchString

Gibt eine Suchzeichenfolge an.

Parametereigenschaften

Typ:System.String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

GetVague
Position:Named
Obligatorisch:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-ServicePrincipalId

Gibt die ID eines Dienstprinzipals in Microsoft Entra ID an.

Parametereigenschaften

Typ:System.String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Objekt-ID

Parametersätze

GetById
Position:Named
Obligatorisch:True
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

-Top

Gibt die maximale Anzahl der zurückzugebenden Datensätze an.

Parametereigenschaften

Typ:System.Int32
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Begrenzung

Parametersätze

GetQuery
Position:Named
Obligatorisch:False
Wert aus Pipeline:True
Wert aus Pipeline nach dem Eigenschaftsnamen:True
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.