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

Get-AzureADAuditSignInLogs是否仅返回30天内数据?如何获取更早登录记录

获取Azure AD账户超过30天的登录日志问题解决

问题原因

Get-AzureADAuditSignInLogs cmdlet本身存在查询限制,仅能返回最近30天的登录日志,这是AzureADPreview模块的设计限制,无法通过调整该cmdlet的参数突破此限制。另外需要注意:Azure AD登录日志的保留时长取决于租户许可证:

  • 免费版/基础版:仅保留30天,超过30天的日志会被自动删除,无法获取
  • P1/P2版:最多保留365天,只要日志未被删除,可通过其他方式查询

解决方案

方法1:使用Microsoft Graph PowerShell模块查询

微软已逐步弃用AzureADPreview模块,推荐使用更现代的Microsoft Graph PowerShell模块来查询登录日志,该模块支持根据租户许可证的保留期查询更早的日志:

  1. 安装并导入对应模块:
Install-Module Microsoft.Graph.Identity.SignIns -Force
Import-Module Microsoft.Graph.Identity.SignIns
  1. 连接到Microsoft Graph(需要AuditLog.Read.All权限):
Connect-MgGraph -Scopes AuditLog.Read.All
  1. 查询指定用户的历史登录日志(示例查询90天前的记录):
$userId = "目标用户的Object ID"
# 构造UTC格式的起始时间
$startDateTime = (Get-Date).AddDays(-90).ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ssZ")
# 查询并筛选结果
Get-MgAuditLogSignIn -Filter "UserId eq '$userId' and CreatedDateTime ge $startDateTime" -Top 1 | 
    Select-Object CreatedDateTime, IsInteractive, AppDisplayName

方法2:导出历史登录日志到存储账户

如果需要批量获取更早的日志,可通过Azure门户将登录日志导出到Azure存储账户或Log Analytics工作区:

  • 登录Azure门户,进入Azure Active Directory > 日志 > 登录日志
  • 点击顶部的导出设置,配置导出目标(存储账户/Log Analytics),设置保留期(需符合许可证限制)
  • 导出完成后,可从存储账户下载日志文件,或在Log Analytics中查询分析

注意事项

  • 若租户为免费版/基础版,即使使用上述方法,也无法获取超过30天的登录日志,因为日志已被系统删除
  • 确保执行查询的账户拥有AuditLog.Read.All权限,否则会出现权限不足的错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 04:55:19