You need to enable JavaScript to run this app. PowerShell遍历Azure AD用户:设备数分列与CSV导出问题
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell遍历Azure AD用户:设备数分列与CSV导出问题

Azure AD用户注册设备数统计脚本问题修复

原脚本核心问题定位

  • 数据结构缺陷:脚本将用户信息、设备数作为两次独立的命令输出,没有绑定为同一个对象的关联属性,导致两类数据完全割裂,无法形成规范的独立列展示
  • 导出逻辑错误:Export-Csv 参数和路径之间缺失空格(-append.\cuenta.csv 属于语法错误);逐行单独追加数值到CSV的方式,既不会生成规范的列头,多次写入也会造成CSV列结构错位、数据混乱。

修正后可直接运行的脚本

# 读取待查询的用户ID清单
$targetUsers = Get-Content .\usersid.csv
$finalResult = @()

foreach ($userId in $targetUsers) {
    # 获取对应用户的Azure AD信息
    $userInfo = Get-AzureADUser -ObjectId $userId
    # 计算注册设备数,通过Measure-Object兼容无设备时的空返回场景,避免count值为null
    $deviceTotal = (Get-AzureADUserRegisteredDevice -ObjectId $userId | Measure-Object).Count

    # 封装带固定属性的自定义对象,确保两类数据一一对应
    $finalResult += [PSCustomObject]@{
        用户主体名 = $userInfo.UserPrincipalName
        注册设备数量 = $deviceTotal
    }
}

# 一次性批量导出,避免逐行追加的结构问题,指定编码防止中文乱码
$finalResult | Export-Csv -Path .\cuenta.csv -NoTypeInformation -Encoding UTF8

修复后的效果

  • 导出的CSV自动生成两个独立列,分别对应用户名、注册设备数,两类数据严格一一匹配,不存在错位
  • 全量结果统一一次性写入,彻底解决逐行追加导致的CSV结构损坏问题;对没有注册设备的用户,会自动填值为0,不会出现空值异常
  • 自动补充规范的列头,打开CSV即可直接查看统计结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 09:15:01