如何自动化导出Power BI管理门户用户许可及Defender for Cloud Apps日志
自动化导出Office 365活跃用户/许可证数据及Defender for Cloud Apps活动日志方案
根据你的需求,完全可以通过PowerShell、Power Automate或直接对接Power BI的方式实现自动化,无需手动操作管理门户。以下是具体方案:
一、PowerShell方案(适合脚本化自动化)
1. 获取活跃用户与许可证数据
使用Microsoft Graph PowerShell模块直接拉取数据并导出:
# 安装/更新Graph模块 Install-Module Microsoft.Graph -Force -AllowClobber # 连接Graph(需User.Read.All、License.Read.All权限) Connect-MgGraph -Scopes "User.Read.All", "License.Read.All", "AuditLog.Read.All" # 查询最近30天活跃用户及许可证信息 $activeUsers = Get-MgUser -Filter "signInActivity/lastSignInDateTime ge $((Get-Date).AddDays(-30).ToString('yyyy-MM-ddTHH:mm:ssZ'))" ` -Select Id, DisplayName, UserPrincipalName, SignInActivity, AssignedLicenses # 导出到CSV $activeUsers | Export-Csv -Path "C:\Export\ActiveUsers_Licenses.csv" -NoTypeInformation -Encoding UTF8
可将脚本配置为Windows任务计划,定期自动执行。
2. 获取Defender for Cloud Apps活动日志
可通过MCAS PowerShell模块或Graph API实现:
方法1:MCAS模块
# 安装MCAS模块 Install-Module Microsoft.CloudAppSecurity -Force # 连接MCAS(建议用服务主体实现无交互登录) Connect-MCAS -AppId "你的应用ID" -AppSecret "你的应用密钥" -TenantId "你的租户ID" # 导出最近7天活动日志 $activityLogs = Get-MCASActivity -StartTime (Get-Date).AddDays(-7) -EndTime (Get-Date) $activityLogs | Export-Csv -Path "C:\Export\MCAS_ActivityLogs.csv" -NoTypeInformation -Encoding UTF8
方法2:Graph API调用
$token = (Get-MgContext).AccessToken $headers = @{ Authorization = "Bearer $token" } $uri = "https://graph.microsoft.com/v1.0/security/cloudAppSecurity/activities?`$filter=activityDateTime ge $((Get-Date).AddDays(-7).ToString('yyyy-MM-ddTHH:mm:ssZ'))" $logs = Invoke-RestMethod -Uri $uri -Headers $headers -Method Get $logs.value | Export-Csv -Path "C:\Export\MCAS_ActivityLogs_Graph.csv" -NoTypeInformation -Encoding UTF8
二、Power Automate方案(无代码/低代码自动化)
1. 活跃用户与许可证数据自动化
- 触发方式:选择「重复计时器」(例如每天执行1次)
- 步骤1:添加「Microsoft Graph > 列出用户」动作,设置筛选条件:
signInActivity/lastSignInDateTime ge @{addDays(utcNow(), -30)},勾选需要的字段(显示名称、用户主体名称、登录活动、分配的许可证等) - 步骤2:添加「创建CSV表」动作,将用户数据映射到表中
- 步骤3:添加「保存到SharePoint/OneDrive」动作,将CSV文件存储到指定位置
- 可选:添加「Power BI > 刷新数据集」动作,直接同步数据到Power BI
2. MCAS活动日志自动化
- 触发方式:重复计时器
- 步骤1:添加「Microsoft Defender for Cloud Apps > 列出活动」动作,设置时间范围(例如过去7天)
- 步骤2:创建CSV表并保存到存储位置
- 可选:触发Power BI数据集刷新,实现数据实时更新
三、直接对接Power BI(无需导出文件)
利用你的Power BI Premium权限,直接建立实时数据源连接:
1. 用户与许可证数据
- 在Power BI Desktop中,选择「获取数据 > Microsoft Graph > 用户」,添加筛选条件获取活跃用户,同时通过Graph的License端点关联许可证数据
- 发布到Premium工作区,设置刷新计划(例如每日刷新),保持数据实时性
2. MCAS活动日志
- 在Power BI中,选择「获取数据 > Web」,输入Graph API端点:
https://graph.microsoft.com/v1.0/security/cloudAppSecurity/activities - 选择OAuth2.0身份验证,获取数据后整理模型,发布到Premium工作区并配置刷新计划
权限要求
- 用户/许可证数据:需
User.Read.All、License.Read.All、AuditLog.Read.All权限 - MCAS活动日志:需
SecurityEvents.Read.All(Graph API)或MCAS的「Activity Logs Reader」角色 - 自动化场景建议使用**服务主体(应用注册)**获取权限,避免交互式登录限制
内容的提问来源于stack exchange,提问作者MmVv
相关产品推荐
相关产品推荐

