求助:获取Azure AD用户邮箱与createdDateTime的PowerShell脚本
获取Azure AD用户邮箱与创建时间的脚本方案
问题原因
Get-AzureADUser默认返回的属性集合中不包含createdDateTime,直接通过Select-Object调用该字段会返回空值,需要从用户的扩展属性中提取,或者在查询时指定包含该属性。
方案一:直接提取扩展属性(效率更高)
使用计算属性从用户对象的ExtensionProperty中提取createdDateTime,同时获取邮箱:
# 获取所有用户,提取邮箱和创建时间 Get-AzureADUser -All $true | Select-Object Mail, @{Name='CreatedDateTime'; Expression={$_.ExtensionProperty.createdDateTime}}
-All $true参数确保获取租户内所有用户,避免分页遗漏- 计算属性将
ExtensionProperty里的createdDateTime映射为可读性更强的字段名
方案二:通过Get-AzureADUserExtension关联数据
如果需要单独获取扩展属性,可先获取用户基础信息,再遍历用户匹配扩展属性:
# 先获取所有用户的基础数据 $allUsers = Get-AzureADUser -All $true # 遍历用户,合并邮箱与创建时间 $allUsers | ForEach-Object { $userExtension = Get-AzureADUserExtension -ObjectId $_.ObjectId [PSCustomObject]@{ Mail = $_.Mail CreatedDateTime = $userExtension["createdDateTime"] } }
前置准备
- 确保已安装AzureAD模块:
Install-Module AzureAD(首次执行需确认安装) - 执行前先登录AzureAD:
Connect-AzureAD,按提示完成身份验证
内容的提问来源于stack exchange,提问作者Kusu0816
相关产品推荐
相关产品推荐

