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

使用Get-MgAuditLogSignIn获取Azure AD B2C最新SignInLogs遇读取流错误

解决Get-MgAuditLogSignIn的"Stream does not support reading"错误

针对你遇到的Stream does not support reading. (Parameter 'stream')警告,可通过以下步骤解决:

1. 升级Microsoft Graph PowerShell模块

该报错常见于旧版模块的流处理bug,执行以下命令升级到最新版本:

# 需以管理员身份运行PowerShell
Install-Module -Name Microsoft.Graph -Force -AllowClobber

若已安装模块,可直接用Update-Module Microsoft.Graph完成更新。

2. 替换-All参数,改用服务端过滤减少数据量

原代码中-All会一次性拉取所有登录日志,数据量过大时易触发流读取错误。建议在请求阶段就通过-Filter参数在服务端过滤目标租户的日志,避免本地处理海量数据:

优化后的函数示例:

Function Get-LastSignIn {
    Param (
        [string]
        $TenantDomain # Example: "contoso.onmicrosoft.com"
    )
    
    Try {
        # 服务端过滤目标租户日志,按创建时间倒序取最新1条
        $latestSignIn = Get-MgAuditLogSignIn -Filter "userPrincipalName ends with '@$TenantDomain'" `
                                             -Sort "createdDateTime desc" `
                                             -Top 1 `
                                             -ErrorAction Stop
        
        If ($latestSignIn) {
            Return [PSCustomObject]@{
                LastSignIn     = $latestSignIn.createdDateTime
                LastSignedUser = $latestSignIn.userPrincipalName
            }
        }
    }
    Catch {
        Write-Warning "Failed to retrieve last sign-in logs for: $TenantDomain. Error: $($_.Exception.Message)"
    }
    
    Return [PSCustomObject]@{
        LastSignIn     = "N/A";
        LastSignedUser = "N/A"
    }
}

3. 确认租户上下文与权限

运行Connect-MgGraph时需指定正确的B2C租户信息,并确保账号拥有日志读取权限:

Connect-MgGraph -TenantId "你的B2C租户ID" -Scopes "AuditLog.Read.All"

内容的提问来源于stack exchange,提问作者Senior Systems Engineer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 03:20:55