powershell sort-object无法按预期工作

powershell sort-object doesn't work as expected

我尝试使用Sort-Object Cmdlet按以下ID对进程进行排序:

1
Get-Process | Sort-Object -Property Id

而且效果很好。在我发现的任何其他示例中,排序工作都很好,但当我尝试使用此一行程序根据员工在Active Directory中的EmployeeID对员工进行排序时:

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

我得到这样的东西:

1
2
3
4
5
6
7
11
1104
1105
1185
119
12
...


get qaduser以字符串形式返回eployeeid,因此sort使用字符串排序机制。要将EmployeeID排序为整数-只需将属性强制转换为此类型:

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


此外,您还可以使用$_u.EmployeeID-as[int]。这不会导致空值错误。

我用"frode f"来解决这个问题。