我正在尝试自动清理已分配的Microsoft E3许可证给我们的用户。
我一直在为初学者使用这篇文章:https://blogs.technet.microsoft.com/dawiese/2017/04/15/get-office365-usage-reports-from-the-microsoft-graph-using-windows-powershell/
所以我在Azure中注册了应用程序,并将重定向URI和应用程序ID一起复制。
我还下载了最新的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
是空的。我不确定是不是原因?
非常感谢任何帮助,谢谢!
最诚挚的问候 卡斯帕
答案 0 :(得分:0)
在脚本的Q和A中,解决方案已经发布。在脚本中用这个替换uri行(我认为它在第330行附近):
$ uri =“https://graph.microsoft.com/beta/reports/ {0}({1})?`$ format = {2}”-f $ report,$ parameterset,'text / csv'