8

我尝试使用 sort-object cmdlet 按 ID 对进程进行排序:

Get-Process | Sort-Object -Property Id

它运作良好。在我发现的任何其他示例中,排序都可以正常工作,但是当我尝试使用 Active Directory 中的员工 ID 对员工进行排序时:

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

我得到这样的东西:

11
1104
1105
1185
119
12
...
4

2 回答 2

17

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

Get-QADUser -IncludeAllProperties | Sort-Object { [int]$_.employeeId } | select Name, employeeid 
于 2013-01-29T13:58:57.583 回答
2

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

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

于 2016-03-10T14:48:48.280 回答