Get-EntraApplication

Recebe uma candidatura.

Sintaxe

GetQuery (Predefinição)

Get-EntraApplication

    [-Filter <String>]
    [-All]
    [-Top <Int32>]
    [-Property <String[]>]
    [<CommonParameters>]

GetByValue

Get-EntraApplication

    [-SearchString <String>]
    [-All]
    [-Property <String[]>]
    [<CommonParameters>]

GetById

Get-EntraApplication

    -ApplicationId <String>
    [-Property <String[]>]
    [-All]
    [<CommonParameters>]

Descrição

O Get-EntraApplication cmdlet recebe uma aplicação Microsoft Entra ID.

Exemplos

Exemplo 1: Obter uma candidatura por ApplicationId

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraApplication -ApplicationId 'aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb'
DisplayName         Id                                   AppId                                SignInAudience PublisherDomain
-----------         --                                   -----                                -------------- ---------------
ToGraph_443democc3c aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb bbbbbbbb-1111-2222-3333-cccccccccccc AzureADMyOrg   contoso.com

Este exemplo demonstra como recuperar uma aplicação específica fornecendo ID.

Exemplo 2: Obtenha todas as candidaturas

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraApplication -All
DisplayName         Id                                   AppId                                SignInAudience                     PublisherDomain
-----------         --                                   -----                                --------------                     ---------------
test app            aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb bbbbbbbb-1111-2222-3333-cccccccccccc AzureADandPersonalMicrosoftAccount contoso.com
ToGraph_443DEM      cccccccc-4444-5555-6666-dddddddddddd dddddddd-5555-6666-7777-eeeeeeeeeeee AzureADMyOrg                       contoso.com
test adms           eeeeeeee-6666-7777-8888-ffffffffffff ffffffff-7777-8888-9999-gggggggggggg AzureADandPersonalMicrosoftAccount contoso.com
test adms app azure gggggggg-8888-9999-aaaa-hhhhhhhhhhhh hhhhhhhh-9999-aaaa-bbbb-iiiiiiiiiiii AzureADandPersonalMicrosoftAccount contoso.com
test adms2          iiiiiiii-aaaa-bbbb-cccc-jjjjjjjjjjjj jjjjjjjj-bbbb-cccc-dddd-kkkkkkkkkkkk AzureADandPersonalMicrosoftAccount contoso.com

Este exemplo demonstra como obter todas as aplicações do Microsoft Entra ID.

Exemplo 3: Obter todas as aplicações sem proprietários (aplicações sem proprietário)

Connect-Entra -Scopes 'Application.Read.All'
$apps = Get-EntraApplication -All
$appsWithoutOwners = @()
foreach ($app in $apps) {
    try {
        $owners = Get-EntraApplicationOwner -ApplicationId $app.Id
        if (-not $owners) {
            $appsWithoutOwners += $app
        }
    }
    catch {
        Write-Warning "Failed to check owners for app: $($app.DisplayName)"
    }

    # Optional: throttle to avoid rate limits (especially in large tenants)
    #Start-Sleep -Milliseconds 100
}
$appsWithoutOwners | Select-Object DisplayName, Id, AppId
DisplayName          Id                                   AppId
-----------          --                                   -----
Contoso HR App       aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb bbbbbbbb-1111-2222-3333-cccccccccccc
Contoso Helpdesk App cccccccc-4444-5555-6666-dddddddddddd dddddddd-5555-6666-7777-eeeeeeeeeeee
Contoso Helpdesk App eeeeeeee-6666-7777-8888-ffffffffffff hhhhhhhh-9999-aaaa-bbbb-iiiiiiiiiiii

Este exemplo demonstra como obter todas as aplicações sem proprietários a partir do Microsoft Entra ID.

Exemplo 4: Receba candidaturas com segredos a expirar em 30 dias

$expirationThreshold = (Get-Date).AddDays(30)
$appsWithExpiringPasswords = Get-EntraApplication -All | Where-Object { $_.PasswordCredentials } |
ForEach-Object {
    $app = $_
    $app.PasswordCredentials | Where-Object { $_.EndDate -le $expirationThreshold } |
    ForEach-Object {
        [PSCustomObject]@{
            DisplayName       = $app.DisplayName
            AppId             = $app.AppId
            SecretDisplayName = $_.DisplayName
            KeyId             = $_.KeyId
            ExpiringSecret    = $_.EndDate
        }
    }
}
$appsWithExpiringPasswords | Format-Table DisplayName, AppId, SecretDisplayName, KeyId, ExpiringSecret -AutoSize
DisplayName             AppId                                SecretDisplayName    KeyId                                ExpiringSecret
-----------             -----                                -----------------    -----                                --------------
Helpdesk Application    dddddddd-5555-6666-7777-eeeeeeeeeeee Helpdesk Password    aaaaaaaa-0b0b-1c1c-2d2d-333333333333 11/18/2024

Este exemplo recupera candidaturas com segredos a expirar dentro de 30 dias.

Exemplo 5: Receba candidaturas com certificados a expirar em 30 dias

$expirationThreshold = (Get-Date).AddDays(30)
$appsWithExpiringKeys = Get-EntraApplication -All | Where-Object { $_.KeyCredentials } |
ForEach-Object {
    $app = $_
    $app.KeyCredentials | Where-Object { $_.EndDate -le $expirationThreshold } |
    ForEach-Object {
        [PSCustomObject]@{
            DisplayName            = $app.DisplayName
            AppId                  = $app.AppId
            CertificateDisplayName = $_.DisplayName
            KeyId                  = $_.KeyId
            ExpiringKeys           = $_.EndDate
        }
    }
}
$appsWithExpiringKeys | Format-Table DisplayName, AppId, CertificateDisplayName, KeyId, ExpiringKeys -AutoSize
DisplayName             AppId                                CertificateDisplayName KeyId                                ExpiringKeys
-----------             -----                                ---------------------- -----                                ------------
Helpdesk Application dddddddd-5555-6666-7777-eeeeeeeeeeee My cert                aaaaaaaa-0b0b-1c1c-2d2d-333333333333 6/27/2024 11:49:17 AM

Este exemplo recupera candidaturas com certificados a expirar dentro de 30 dias.

Exemplo 6: Obtenha uma candidatura por nome de exibição

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraApplication -Filter "DisplayName eq 'ToGraph_443DEMO'"
DisplayName     Id                                   AppId                                SignInAudience PublisherDomain
-----------     --                                   -----                                -------------- ---------------
ToGraph_443DEMO cccccccc-4444-5555-6666-dddddddddddd dddddddd-5555-6666-7777-eeeeeeeeeeee AzureADMyOrg   contoso.com

Neste exemplo, recuperamos a aplicação pelo seu nome de exibição do Microsoft Entra ID.

Exemplo 7: Pesquisa entre as aplicações recuperadas

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraApplication -SearchString 'My new application 2'
DisplayName          Id                                   AppId                                SignInAudience                     PublisherDomain
-----------          --                                   -----                                --------------                     ---------------
My new application 2 kkkkkkkk-cccc-dddd-eeee-llllllllllll llllllll-dddd-eeee-ffff-mmmmmmmmmmmm AzureADandPersonalMicrosoftAccount contoso.com

Este exemplo demonstra como recuperar aplicações para uma string específica a partir do Microsoft Entra ID.

Exemplo 8: Recuperar uma aplicação por identifierUris

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraApplication -Filter "identifierUris/any(uri:uri eq 'https://wingtips.wingtiptoysonline.com')"

Este exemplo demonstra como recuperar aplicações pelo seu identificadorUris a partir do Microsoft Entra ID.

Exemplo 9: Lista as 2 principais candidaturas

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraApplication -Top 2
DisplayName         Id                                   AppId                                SignInAudience                     PublisherDomain
-----------         --                                   -----                                --------------                     ---------------
test app            aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb bbbbbbbb-1111-2222-3333-cccccccccccc AzureADandPersonalMicrosoftAccount contoso.com
ToGraph_443DEM      cccccccc-4444-5555-6666-dddddddddddd dddddddd-5555-6666-7777-eeeeeeeeeeee AzureADMyOrg                       contoso.com

Este exemplo mostra como podes recuperar duas aplicações. Você pode usar -Limit como um alias para -Top.

Exemplo 10: Listar funções para aplicações

Connect-Entra -Scopes 'Application.Read.All'
$application = Get-EntraApplication -SearchString 'Contoso Helpdesk Application'
$application.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

Este exemplo mostra como podes recuperar funções de aplicação para uma aplicação.

Exemplo 11: Listar a aplicação oauth2PermissionScopes (permissões delegadas expostas pela aplicação)

Connect-Entra -Scopes 'Application.Read.All'
(Get-EntraApplication -Filter "displayName eq 'Contoso Helpdesk Application'").Api.Oauth2PermissionScopes
AdminConsentDescription : Allows the app to read HR data on behalf of users.
AdminConsentDisplayName : Read HR Data
Id                      : bbbbbbbb-1111-2222-3333-cccccccccccc
IsEnabled               : True
Origin                  :
Type                    : User
UserConsentDescription  : Allows the app to read your HR data.
UserConsentDisplayName  : Read your HR data
Value                   : HR.Read.All

Este exemplo mostra como pode recuperar oauth2PermissionScopes (ou seja, permissões delegadas expostas pela aplicação) a um principal de serviço. Estes escopos fazem parte do objeto de aplicação.

Exemplo 12: Listar candidaturas e os seus detalhes secretos

Connect-Entra -Scopes 'Application.Read.All'
Get-EntraApplication -All -Property displayName, appId, passwordCredentials |
    Where-Object { $_.PasswordCredentials } |
    ForEach-Object {
        $app = $_
        foreach ($cred in $app.PasswordCredentials) {
            [PSCustomObject]@{
                DisplayName                    = $app.DisplayName
                AppId                          = $app.AppId
                PasswordCredentialsDisplayName = $cred.DisplayName
                PasswordCredentialStartDate    = $cred.StartDate
                PasswordCredentialEndDate      = $cred.EndDate
            }
        }
    } |
    Format-Table -AutoSize
DisplayName              AppId                                PasswordCredentialsDisplayName   PasswordCredentialStartDate PasswordCredentialEndDate
-----------              -----                                ------------------------------   --------------------------- -------------------------
Helpdesk Application     gggggggg-6666-7777-8888-hhhhhhhhhhhh Helpdesk Application Password    8/20/2024 7:54:25 AM        11/18/2024 7:54:25 AM
Helpdesk Application     gggggggg-6666-7777-8888-hhhhhhhhhhhh Helpdesk Application Backend     8/7/2024 4:36:49 PM         2/3/2025 4:36:49 PM
Contoso Automation App   bbbbbbbb-1111-2222-3333-cccccccccccc AI automation Cred               5/3/2025 7:03:11 PM         5/3/2026 7:03:11 PM

Este exemplo mostra como podes recuperar aplicações que têm segredos.

Parâmetros

-All

Liste todas as páginas.

Propriedades dos parâmetros

Tipo:System.Management.Automation.SwitchParameter
Valor predefinido:False
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-ApplicationId

Especifica o ID de uma aplicação no Microsoft Entra ID.

Propriedades dos parâmetros

Tipo:System.String
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:IdentificadorDoObjeto

Conjuntos de parâmetros

GetById
Posto:Named
Obrigatório:True
Valor do pipeline:True
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Filter

Especifica uma instrução de filtro OData v4.0. Este parâmetro controla quais os objetos que são devolvidos.

Propriedades dos parâmetros

Tipo:System.String
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

GetQuery
Posto:Named
Obrigatório:False
Valor do pipeline:True
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Property

Especifica propriedades a serem devolvidas

Propriedades dos parâmetros

Tipo:

System.String[]

Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:Select

Conjuntos de parâmetros

(All)
Posto:Named
Obrigatório:False
Valor do pipeline:False
Valor do pipeline por nome de propriedade:False
Valor dos restantes argumentos:False

-SearchString

Especifica uma cadeia de pesquisa.

Propriedades dos parâmetros

Tipo:System.String
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False

Conjuntos de parâmetros

GetVague
Posto:Named
Obrigatório:False
Valor do pipeline:True
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

-Top

Especifica o número máximo de registos a devolver.

Propriedades dos parâmetros

Tipo:System.Int32
Valor predefinido:None
Suporta carateres universais:False
NãoMostrar:False
Aliases:Limit

Conjuntos de parâmetros

GetQuery
Posto:Named
Obrigatório:False
Valor do pipeline:True
Valor do pipeline por nome de propriedade:True
Valor dos restantes argumentos:False

CommonParameters

Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Para obter mais informações, consulte about_CommonParameters.