Для этого я рекомендую использовать командлет Get-AzureADApplication
из модуля AzureAD PowerShell (командлеты имеют форму -AzureAD ) вместо командлета из Azure PowerShellМодуль 2.0 (где командлеты имеют вид -AzAD ).
С помощью этого командлета вы можете указать фильтр, как в API Azure AD Graph * $ filter , и получите то, что вы ищете в одном запросе.
Чтобы получить все объекты приложения с заданным отображаемым именем или по любому идентификатору URI (технически это список), совпадающемутот, который вы дали, вы можете сделать следующее:
$appName = "data-factory-app"
$appURI = "www.datafactoryapp.com"
$filter = "displayName eq '{0}' or identifierUris/any(u:u eq '{1}')" -f $appName, $appURI
$appExists = Get-AzureADApplication -Filter $filter
if (-not $appExists) {
# No application exists with that display name or identifier URI
} else {
# An application already exists with that display name or identifier URI!
}
Редактировать: Если по какой-то причине вы должны использовать модуль Azure PowerShell (Az), вам потребуетсясделайте два отдельных вызова для проверки:
$appName = "data-factory-app"
$appURI = "www.datafactoryapp.com"
$appExistsWithDisplayName = Get-AzADApplication -DisplayName $appName
if (-not $appExistsWithDisplayName) {
$appExistsWithIdentifierUri = Get-AzADApplication -IdentifierUri $appURI
if (-not $appExistsWithIdentifierUri)) {
# No application exists with that display name or identifier URI
} else {
# An application already exists with that identifier URI
}
} else {
# An application already exists with that display name
}