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

如何扩展PowerShell分组输出列,统计分组内enabled与new数量?

解决方案

直接在分组后遍历每个分组,统计所需的状态数量并生成结构化对象,最后导出CSV即可。修改后的代码如下:

$u = [System.Collections.Generic.List[psobject]]::New()

# users 是 Get-ADUser 返回的结果
$users | ForEach-Object {
    # 替换成你实际判断 enabled 和 new 的逻辑
    $x = [pscustomobject]@{
        enabled = $_.Enabled # 示例:直接取AD用户的启用状态,可按需求调整
        off = [String]$_.o
        new = $_.Created -gt (Get-Date).AddDays(-30) # 示例:30天内创建的算新用户,可按需求调整
    }
    
    $u.Add($x)
}

# 分组统计并生成结构化结果,最后导出CSV
$u | Group-Object off | Sort-Object Count -Descending | ForEach-Object {
    [pscustomobject]@{
        办公区代码 = $_.Name
        总用户数 = $_.Count
        已启用用户数 = ($_.Group | Where-Object { $_.enabled }).Count
        新用户数 = ($_.Group | Where-Object { $_.new }).Count
    }
} | Export-Csv -Path "办公区用户统计.csv" -Encoding UTF8 -NoTypeInformation

代码说明

  • 遍历分组结果时,通过Where-Object过滤对应状态的用户,再用.Count获取统计数量
  • 生成的新对象包含清晰的统计字段,彻底避免原Group列的混乱输出
  • Export-Csv参数中指定-Encoding UTF8确保中文正常显示,-NoTypeInformation移除CSV开头的冗余类型信息行

注:如果觉得new作为键名不合适,可在生成$x对象时改为更规范的名称(比如IsNewUser),统计时对应修改字段名即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 02:32:43