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

通过PowerShell获取Office 365登录状态:字段标识符问题

嘿,我来帮你搞定Office 365登录状态的字段识别问题!

先明确工具场景,找对字段名

你遇到的问题大概率是混淆了不同工具/API里的字段命名,我分两种最常用的场景给你拆解:

1. 用Microsoft Graph API的情况

如果是调用Graph接口(比如获取登录日志的/auditLogs/signIns端点),登录状态的核心字段是**status**,它是一个嵌套对象,包含三个关键子字段:

  • errorCode:0代表登录成功,非0值对应不同的失败原因(比如500110表示重定向URI不匹配)
  • failureReason:失败时的具体描述文本
  • additionalDetails:额外的错误详情

举个筛选成功登录的请求示例:

GET https://graph.microsoft.com/v1.0/auditLogs/signIns?$filter=status/errorCode eq 0

如果要在代码里解析,你可以这样访问字段(以Python为例):

# 假设response是API返回的登录记录
for sign_in in response.json()['value']:
    status_code = sign_in['status']['errorCode']
    sign_in_result = "成功" if status_code == 0 else f"失败,错误码:{status_code}"
    print(f"登录时间:{sign_in['createdDateTime']},状态:{sign_in_result}")

2. 用PowerShell模块的情况

不管是新的Microsoft Graph PowerShell模块,还是旧的AzureAD模块,登录状态的属性都是**Status**(首字母大写),同样包含ErrorCode和FailureReason子属性:

Microsoft Graph PowerShell示例

# 筛选所有成功的登录记录
Get-MgUserSignIn -Filter "Status/ErrorCode eq 0"

# 自定义输出登录状态文本
Get-MgUserSignIn -Top 10 | Select-Object Id, CreatedDateTime, 
    @{Name="登录状态"; Expression={if($_.Status.ErrorCode -eq 0) {"成功"} else {"失败"}}}

旧AzureAD模块示例

# 列出失败的登录记录
Get-AzureADAuditSignInLogs | Where-Object {$_.Status.ErrorCode -ne 0}
快速排查小技巧

如果你还是不确定字段名,直接拉一条完整的登录记录看结构就清楚了:

  • Graph API:调用/auditLogs/signIns?$top=1,然后把返回的JSON展开看所有字段
  • PowerShell:执行Get-MgUserSignIn -Top 1 | ConvertTo-Json -Depth 10,就能看到完整的属性嵌套结构

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:14:44