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

Get-AzureADAuditSignInLogs筛选问题求助:获取指定用户近30天最新登录日志

解决Azure AD登录日志筛选异常问题

问题原因

你的命令误用了PowerShell的-eq运算符,而Azure AD模块的-Filter参数遵循OData v3.0语法,需使用eq而非-eq。另外,未指定UTC时间戳的日期格式,结合UPN筛选时可能触发了API的隐性范围限制,导致仅返回24小时内的日志。

解决方案

方案1:修正OData筛选语法

替换运算符并补充UTC时间戳,确保筛选范围准确:

$auditLogs = Get-AzureADAuditSignInLogs -Filter "createdDateTime gt 2023-04-01T00:00:00Z and UserPrincipalName eq 'pg0011111@contoso.com'" -Top 5

方案2:本地二次筛选规避API限制

先拉取指定日期范围的所有日志,再在本地筛选目标用户的记录:

# 拉取近30天UTC时间范围内的登录日志
$dateFilter = (Get-Date).AddDays(-30).ToUniversalTime().ToString('yyyy-MM-ddTHH:mm:ssZ')
$allLogs = Get-AzureADAuditSignInLogs -Filter "createdDateTime gt $dateFilter"
# 筛选目标用户并取最新5条
$userLogs = $allLogs | Where-Object { $_.UserPrincipalName -eq 'pg0011111@contoso.com' } | Sort-Object createdDateTime -Descending | Select-Object -First 5

注:若日志量极大,此方法可能存在性能损耗,需根据实际情况调整。

方案3:改用Microsoft Graph PowerShell模块

AzureAD模块已逐步弃用,Microsoft Graph模块的筛选逻辑更稳定:

  1. 安装并连接模块:
Install-Module Microsoft.Graph -Force
Connect-MgGraph -Scopes AuditLog.Read.All
  1. 执行筛选命令:
$userLogs = Get-MgAuditLogSignIn -Filter "createdDateTime gt 2023-04-01T00:00:00Z and userPrincipalName eq 'pg0011111@contoso.com'" -Top 5 -Sort "createdDateTime desc"

验证建议

执行命令后检查返回结果的createdDateTime字段,确认是否包含目标日期的记录。若仍有问题,可单独执行UPN筛选(不带日期条件),排查是日期筛选还是组合筛选导致的限制。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 21:45:16