【问题标题】:What are the required user role to execute PowerShell script for Office365 usage report?执行 Office365 使用报告的 PowerShell 脚本所需的用户角色是什么?
【发布时间】:2020-10-22 15:58:18
【问题描述】:

我在使用这个 ps 脚本时遇到了一些问题。您能否解释一下运行 ps 脚本的先决条件是什么?同时是否必须拥有 Azure 订阅?我在组织的租户名称下有一个 Azure 帐户。但在我的帐户中,我没有看到任何订阅 ID。我从 Menu>Azure Active Directory> APP Registration 创建了一个应用程序。然后在我组织的 O365 管理员的帮助下获得了以下两个权限:Reports.Readers.all 用户读 我有“读者角色”。运行这些脚本是否足以获得 O365 使用情况报告、团队使用情况报告以及您在上面共享的链接中提到的所有其他报告?请帮我解决这个问题。我为此苦苦挣扎了几个星期,没有任何运气! :( 我的 powerShell 版本是 5.1。

当我运行 PS 脚本时出现错误:(这是脚本:https://gallery.technet.microsoft.com/Get-Office365-usage-f955ade4

警告:无法加载 ADAL 程序集。 通过运行 Install-Module MSOnline -Force -AllowClobber 更新 MSOnline 模块 使用“1”参数调用“LoadFrom”的异常:“无法加载文件或程序集'file:///C:\Program Files\WindowsPowerShell\Modules\MSOnline\1.1.183.57\Microsoft.IdentityModel.Clients.ActiveDirectory.WindowsForms.dll' 或其依赖项之一。系统找不到文件 指定。“在 C:\Users\MRAHM11\Documents\Projects\O365_Usage_PowerShell\Script_DwnLd\Get-Office365Report.ps1:256 char:21 [System.Reflection.Assembly]::LoadFrom($adalforms) |出去- ... ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~ CategoryInfo : NotSpecified: (:) [], MethodInvocationException FullyQualifiedErrorId : FileNotFoundException


当我执行 PS> Install-Module MSOnline -Force -AllowClobber 出现错误:

警告:模块“MSOnline”的版本“1.1.183.57”当前正在使用中。关闭应用程序后重试操作。

我采取了哪些错误的步骤? 我的用户权限是否正常或需要具有不同的用户角色,如 Global Reader 或其他? 请帮忙..

【问题讨论】:

    标签: powershell azure-active-directory microsoft-graph-api


    【解决方案1】:

    您的问题与MSOnline powershell 模块中的 ADAL dll 加载有关,只要您还没有达到这一点,就没有任何权限。但请注意,MSOnline 是用于 Azure Active Directory 的旧 V1 PowerShell 模块,它使用已弃用的 ADAL 库。我建议你不要再使用MSOnline。鼓励客户使用较新的 Azure Active Directory V2 PowerShell module* 代替此模块。详情请参考Use PowerShell to create reports for Microsoft 365

    Install-Module -Name AzureAD
    

    有关 O365 使用报告的基于 V2 的较新脚本,请参阅https://gallery.technet.microsoft.com/Get-O365UsageReports-954fb5a3

    *v2 不需要 -AzureTenantADName 或 ADAL dll。

    关于权限,Reports.Read.All 就足够了。

    有关通过 Microsoft Graph API 处理 Office 365 使用情况报告的详细信息:https://developer.microsoft.com/graph/docs/api-reference/v1.0/resources/report

    有关通过 Microsoft Graph 中的 beta API 处理 Office 365 使用情况报告的详细信息:https://developer.microsoft.com/graph/docs/api-reference/beta/resources/report

    *beta API 有一些额外的 Teams 报告 API。

    【讨论】:

    • 非常感谢您的及时回复。 O365 命令工作正常。但是现在我遇到了 Ms Teams cmdlet 的问题。 “Connect-MicrosoftTeams”和“Get-Command -Module MicrosoftTeams”正在工作。但是“Get-Team”没有提供任何输出。从 Get-Command 开始,我应该使用 GroupId,所以如果没有 GroupId,我将无法提取任何数据。我应该怎么办?请帮忙。谢谢
    • @Sajjad 因为这是原始问题之外的特定问题,您能否将其作为新问题发布。只是想确保可能面临类似问题的人不必在这里寻找cmets。
    【解决方案2】:

    首先尝试删除这些模块..

    Remove-Module -Name "MSOnline" -force
    Uninstall-Module -Name "MSOnline"  -AllVersions -force
    

    然后安装

    Install-Module MSOnline -Force -AllowClobber
    

    【讨论】:

      猜你喜欢
      • 2022-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-03
      • 2021-07-20
      • 1970-01-01
      相关资源
      最近更新 更多