powershell sort-object doesn't work as expected

12,153

Solution 1

Get-QADUser returns eployeeId as a string, thus sort uses string sorting mechanism. To sort employeeIds as integers - just cast property to this type:

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

Solution 2

Also u can use {$_.employeeId -as [int]}. This dont cause error in null.

I take this solution with "Frode F."

Share:
12,153
culter
Author by

culter

Updated on July 30, 2022

Comments

  • culter
    culter over 1 year

    I tried to use sort-object cmdlet to sort processes by Id's here:

    Get-Process | Sort-Object -Property Id
    

    and it works well. In any other example I found, sorting works fine, but when I try to sort employees by their employeeID from Active Directory with this one-liner:

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

    I get something like this:

    11
    1104
    1105
    1185
    119
    12
    ...