Старая оболочка AzureRm powershell Get-AzureRmADApplication
, о которой вы упомянули, по сути, называет API графа объявлений Azure, а в API графа объявлений Azure объект приложения *1003* не имеет требуемого свойства createddatetime
. Кроме того, новые Az PowerShell Get-AzADApplication
и Azure Ad PowerShell Get-AzureADApplication
также вызывают API Azure Ad Graph, поэтому они не могут удовлетворить ваши требования.
Ваш сценарий является обходным путем, сценарий использует поток учетных данных клиента для получения токена доступа и использует токен для вызова Microsoft Graph API, логика должна быть правильной.
Из-за того, что вы не предоставили некоторую информацию об ошибке в вашем скрипте, я мог бы просто дать вам пример, он отлично работает на моей стороне.
Прежде чем получить токен доступа, убедитесь, что вы предоставили разрешение API-интерфейса Microsoft Graph для своего рекламного приложения. Перейдите к Azure Active Directory
на портале -> App registrations
-> найдите свое рекламное приложение -> API permissions
-> Add a permission
-> добавьте Application permission
графа API Microsoft (разрешение может быть Application.ReadWrite.All
, Directory.Read.All
от наименее до наиболее привилегированных, см. List applications Permissions
) -> Add permissions
-> Наконец, не забудьте нажать кнопку Grant admin consent
.
Мой образец (образец после получения токена доступа и использования его для вызова MS garph api):
$url = "https://graph.microsoft.com/beta/applications?select=createddatetime,displayname"
$accesstoken = "eyJ0eXAxxxxxxeHB1Y3FuQktJR2Nyx9Cg"
$header = @{
'Authorization' = 'Bearer ' + $accesstoken
}
$response = Invoke-RestMethod –Uri $url –Headers $header –Method GET
$response.value | Export-Csv -Path "C:\Users\joyw\Desktop\testfile.csv" -NoTypeInformation