Скрипт Powershell для извлечения отчетов Office 365 через API Microsoft Graphi - PullRequest
0 голосов
/ 25 апреля 2018

Я пытаюсь автоматизировать очистку назначенных лицензий 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

1 Ответ

0 голосов
/ 25 апреля 2018

В Q и A для скрипта решение уже выложено. В сценарии замените строку uri (я думаю, что она была около строки 330) следующим образом:

$ uri = "https://graph.microsoft.com/beta/reports/{0}({1})?`$format={2}" -f $ report, $ parameterset, 'text / csv'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...