PowerShell:如何按assignedToUser属性排序并去除重复对象?
正确实现方案
你的问题出在Sort-Object的参数用法上——-Property不需要用$_.assignedToUser这种写法,直接传属性名字符串就行,$_.是管道脚本块里引用当前对象的语法,在这里用会导致参数解析错误,进而出现不符合预期的结果。
正确的命令如下:
$i | Sort-Object -Property assignedToUser -Unique
这条命令会先按assignedToUser属性对数组排序,然后自动移除该属性值重复的对象,每个唯一的assignedToUser只会保留排序后出现的第一个对象。
如果需要更灵活的去重逻辑(比如要保留每个assignedToUser对应的最新记录,而非第一个),可以用Group-Object配合筛选:
$i | Group-Object -Property assignedToUser | ForEach-Object { # 示例:保留组内roleAssignmentId最大的对象 $_.Group | Sort-Object roleAssignmentId -Descending | Select-Object -First 1 }
内容的提问来源于stack exchange,提问作者dcaz
相关产品推荐
相关产品推荐

