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

PowerShell中Sort-Object结合Get-Unique仅返回1条结果的问题

问题原因及解决方法

核心问题

你的代码仅返回1条结果,是因为**Sort-Object -Property DistinguishedName的用法错误**,导致排序逻辑失效,最终Get-Unique误判所有值为重复项。

具体分析

  1. 执行$paths = $users.DistinguishedName后,$paths是一个字符串数组(每个元素是用户的DistinguishedName字符串)。
  2. 对字符串数组使用Sort-Object -Property DistinguishedName时,PowerShell会尝试查找每个字符串对象的DistinguishedName属性——但字符串本身没有这个属性,所有元素的排序键都会被判定为$null,排序后所有字符串被视为“同一优先级”的元素。
  3. Get-Unique依赖已正确排序的输入识别重复项,当输入被错误排序(所有元素归为同一组),它只会保留第一个元素,因此最终仅返回1条结果。

修复后的代码

$users = Get-ADUser -Filter *
$paths = $users.DistinguishedName
# 直接对字符串数组排序,无需指定Property参数
$unique_paths = $paths | Sort-Object | Get-Unique

额外优化方案

如果目标是直接获取唯一的用户DistinguishedName,可简化代码:

  • 方式一:用Select-Object -Unique(无需提前排序,逻辑更简洁)
    $unique_paths = (Get-ADUser -Filter *).DistinguishedName | Select-Object -Unique
    
  • 方式二:简化链式调用
    $unique_paths = (Get-ADUser -Filter *).DistinguishedName | Sort-Object | Get-Unique
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 17:07:34