powershell sort-object无法按预期工作

时间:2013-01-29 13:38:23

标签: powershell powershell-v2.0 powershell-v3.0 quest

我尝试使用sort-object cmdlet按Id在此处对进程进行排序:

Get-Process | Sort-Object -Property Id

它运作良好。在我发现的任何其他示例中,排序工作正常,但是当我尝试使用这个单行程序从Active Directory中的employeeID对员工进行排序时:

Get-QADUser -IncludeAllProperties -SerializeValues | ? {?_.Mail} | select employeeID | sort-object -property employeeID

我得到这样的东西:

11
1104
1105
1185
119
12
...

2 个答案:

答案 0 :(得分:18)

Get-QADUser将eployeeId作为字符串返回,因此sort使用字符串排序机制。 要将employeeId排序为整数 - 只需将属性转换为此类型:

Get-QADUser -IncludeAllProperties | Sort-Object { [int]$_.employeeId } | select Name, employeeid 

答案 1 :(得分:2)

你也可以使用{$ _。employeeId -as [int]}。这不会导致null错误。

我用“Frode F。”来解决这个问题。