Я пытаюсь автоматизировать очистку назначенных лицензий Microsoft E3 для наших пользователей.
Я использовал эту статью для начала: https://blogs.technet.microsoft.com/dawiese/2017/04/15/get-office365-usage-reports-from-the-microsoft-graph-using-windows-powershell/
Поэтому я зарегистрировал приложение в Azure и скопировал URI перенаправления вместе с идентификатором приложения.
Я также скачал последний модуль msonline и использую глобального администратора Azure в качестве $ cred.
Я скопировал сценарий на сервер в C: \ Testing \, а затем создал сценарий со следующим содержимым в том же каталоге:
.\Get-Office365Report.ps1 `
-TenantName "OurCompany.onmicrosoft.com" `
-ClientID "x00000x0-00x0-000x-x000-0000xx000x0x" `
-RedirectURI "urn:ReportingAPIAccess" `
-WorkLoad Tenant `
-ReportType getOffice365ActivationsUserDetail `
-Cred $cred `
-Verbose
Однако я получаю эту ошибку:
Invoke-RestMethod: удаленный сервер возвратил ошибку: (404) Не
Найденный.
В C: \ Temp \ Get-Office365Report.ps1: 333 char: 15
+ ... $ result = Invoke-RestMethod -Uri $ uri –Headers $ authHeader –Method ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~
+ CategoryInfo: InvalidOperation: (System.Net.HttpWebRequest: HttpWebRequest) [Invoke-RestMethod],
WebException
+ FullyQualifiedErrorId: WebCmdletWebResponseException, Microsoft.PowerShell.Commands.InvokeRestMethodComm
и
Код здесь:
$uri = "https://graph.microsoft.com/beta/reports/{0}({1})/content" -f $report, $parameterset
Write-Host $uri
Write-Host "Retrieving Report $report, please wait" -ForegroundColor Green
$result = Invoke-RestMethod -Uri $uri –Headers $authHeader –Method Get
и содержание $uri
:
https://graph.microsoft.com/beta/reports/getOffice365ActivationsUserDetail()/content
Так что $parameterset
пусто. Я не уверен, что это причина?
Любая помощь будет принята с благодарностью, спасибо!
С наилучшими пожеланиями
Casper