You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Microsoft Graph PowerShell:导出含经理信息及上次登录日期的Azure AD用户CSV列表

解决Azure AD用户导出CSV添加上次登录与经理邮箱的问题

修改后的完整脚本

# 连接Microsoft Graph,需确保有User.Read.All和AuditLog.Read.All权限
Connect-MgGraph -Scopes "User.Read.All", "AuditLog.Read.All"

$logDate = Get-Date -Format "dd-MMM-yyyy"
$csvFile = "c:\temp\AllAADUsers_$logDate.csv"

# 获取用户并展开经理,指定SignInActivity属性以获取登录信息
Get-MgUser -All -ExpandProperty manager -Property DisplayName, UserPrincipalName, JobTitle, SignInActivity | 
    Select-Object DisplayName, 
                  UserPrincipalName, 
                  JobTitle,
                  @{Name = 'ManagerDisplayName'; Expression = { $_.Manager?.DisplayName } },
                  @{Name = 'ManagerEmail'; Expression = { $_.Manager?.UserPrincipalName } },
                  @{Name = 'LastSignInDate'; Expression = { 
                      if ($_.SignInActivity.LastSignInDateTime) {
                          Get-Date $_.SignInActivity.LastSignInDateTime -Format "yyyy-MM-dd HH:mm:ss"
                      } else {
                          "从未登录"
                      }
                  }} | 
    Export-Csv -Path $csvFile -NoTypeInformation -Encoding UTF8

关键修改说明

  • 权限补充:连接Graph时添加AuditLog.Read.All权限,读取用户登录活动必须依赖该权限;User.Read.All用于获取用户基础信息。
  • 登录信息获取:通过-Property SignInActivity让Get-MgUser返回登录活动数据,提取LastSignInDateTime并格式化,同时处理未登录用户的空值场景。
  • 经理邮箱获取:展开manager后,直接通过$_.Manager.UserPrincipalName获取经理邮箱,比原脚本的AdditionalProperties更稳定;添加?运算符避免无经理的用户触发报错。
  • CSV导出优化:添加-NoTypeInformation去除CSV头部的冗余类型信息,-Encoding UTF8确保中文内容显示正常。

内容的提问来源于stack exchange,提问作者Bradley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:57:13