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 |
此外,您还可以使用$_u.EmployeeID-as[int]。这不会导致空值错误。
我用"frode f"来解决这个问题。